2011-09-15 11 views
13

"Determine timezone from latitude/longitude without using web services like Geonames.org"のように、geonamesウェブサービスをタイムゾーンに置き換えるには、商用の(Apache License、LGPL、Mozilla Public Licenseなど)R-treeをJavaで実装する必要があります。私はfoundsomearoundを持っていますが、実際に誰かが評価したり使用したりしているのだろうかと思いました。Javaの商用に適したRツリーの実装ですか?

+1

"商業的に好意的な"ものが何かについて詳しく説明できますか? – trashgod

+2

LGPLライセンスを持つVivid SolutionsのJava Topology Suite(JTS)には、Rツリーの実装が含まれています。私はアプリケーションでJTSを正常に使用しましたが、JTS R-Treeの実装では使用しませんでした。 http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/index/strtree/STRtree.html –

+2

Rツリーの実装ではなく、最近のバージョンのApache Luceneは効率的な地理空間検索をサポートしています。詳細は、http://www.ibm.com/developerworks/opensource/library/j-spatial/を参照してください。 –

答えて

2

まず、指定された座標から最も近い都市を検索すると、同じタイムゾーンにない可能性があります。あなたが本当に必要としているのは、私の意見では、行政との関係についての情報です。最小は国ですが、場合によってはそれ以上の状態、すなわち国家でなければなりません。その情報はGoogle Maps APIで取得してから、より詳細なTZ情報に関連付けることができます。

GeoNamesに代わる無料の方法があります。EarthToolsです。サービス自体(要求数など)にはいくつかの制限がありますが、依然として良好で、テストされており、うまく機能しています。

次に、GeoNamesに代わる無料の代替方法があります。EarthToolsです。サービス自体(要求数など)にはいくつかの制限がありますが、依然として良好で、テストされており、うまく機能しています。

第3の理由 - データをDBにインポートするのが気になる場合は、現在のDB実装のほとんどが、使用できる空間インデックスを提供します。あなたのアプリケーションに埋め込まれた情報が必要な場合は、H2Spatialを追加したH2Database(埋め込みJava DB)を使用することができます。私はそれを試しましたが、完全にはお勧めできません。 Neo4jは大きな空間インデックスを実装しています

さらにをGeoSpatial searchesに使用できます。これは素早く、実装が簡単です。

:あなたは、私はしばらく前にテストしてみたもののいくつかを見つけるの下に私は、

... Solrのに私のDB検索の移行プロセスの途中で実際に最後だけど、少なくともではありません

  • JSI - LGPL
  • GeoTools - LGPL、やり過ぎは、あなたが必要なものよりもはるかに多くを与えるだろう...しかし、それは素晴らしいことです!そこより

おそらくいくつかが、私がこれまでテストしたもの...

+0

答えをありがとう。私が研究していたときに私はEarthToolsを見つけましたが、私を抑止したのは「これらのサービスの使用は現在*無料*です」ということでした。これは解決策が無期限に残っていることを知る必要があるため、私にとってはショーストッパーでした。 –

+0

私はSolrやGeoToolsと一緒に行くつもりです - どちらも素晴らしいです。 –

13
0

RTREE単純なJavaクラスは: https://github.com/hadmir/rtree/blob/master/RTree.java

すべてのオブジェクトは2のint []配列の内部に格納されているので、(ファイルに)永続化するために非常に簡単です。また、新しいRectを追加してもオブジェクトが作成されないという事実は、RTreeに数百万の長方形を挿入できることを意味し、JVMは炎で燃え尽きることはありません。これはオブジェクト数が通常は膨大なジオプロジェクトに便利です。

2次元矩形のみが格納されます(複雑なオブジェクトの場合は、境界矩形を見つける必要があります)。クエリは、「クエリー矩形」と交差または重複するすべての矩形(矩形のID)を返します。

関連する問題