2011-09-15 3 views
13

질문에 "Determine timezone from latitude/longitude without using web services like Geonames.org"과 같이 geonames 웹 서비스를 시간대로 대체하려면 상업용 (Apache 라이센스, LGPL, Mozilla Public License 등) R-tree을 Java로 구현해야합니다. 나는 foundsomearound을 가졌지 만 누군가 실제로 평가했거나 사용했는지 궁금합니다.Java 상용 R 트리 구현은 무엇입니까?

+1

"상업용 친화적 인 제품"에 대해 자세히 설명해 줄 수 있습니까? – trashgod

+2

LGPL 라이센스가있는 Vivid Solutions의 Java Topology Suite (JTS)에는 R-Tree 구현이 포함되어 있습니다. 내 응용 프로그램에서 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지도 API를 사용하여 검색 한 다음 좀 더 자세한 TZ 정보와 상호 연관시킬 수 있습니다.

GeoNames 대신 EarthTools을 무료로 사용할 수 있습니다. 서비스 자체에는 몇 가지 제한이 있습니다 (요청 수 등).하지만 여전히 좋은 테스트를 거쳐 잘 작동합니다.

두 번째로 - GeoNames 대신 EarthTools을 무료로 사용할 수 있습니다. 서비스 자체에는 몇 가지 제한이 있습니다 (요청 수 등).하지만 여전히 좋은 테스트를 거쳐 잘 작동합니다.

세 번째로 - DB로 데이터를 가져 오는 데 신경 쓰면 대부분의 현재 DB 구현에서 사용할 수있는 지리 공간적 색인을 제공합니다. 귀하의 응용 프로그램에 포함 된 정보가 필요하다면 H2Database (임베디드 Java DB)를 H2Spatial과 함께 추가로 사용할 수 있습니다. 시도해 보았지만 완전히 추천 할 수는 없습니다. Neo4j는 훌륭한 공간 인덱스 구현을 가지고 있습니다.

GeoSpatial searches으로 사용할 수 있습니다. 멋지 며, 빠르고 쉽게 구현할 수 있습니다.

: 난 당신이 내가 다시 잠시에게 테스트 한 것들 중 일부를 찾을 수 아래가 아닌 이상 ... SOLR 내 DB 검색을 마이그레이션하는 프로세스의 중간에 실제로 마지막

합니다만,

  • JSI - LGPL
  • GeoTools - LGPL, 잔인한, 당신에게 당신이 필요로하는 것보다 훨씬 더 줄 것이다 ...하지만이 좋아요! 거기에 더

아마도 몇하지만 지금까지 테스트 한 것 ...

+0

답변 해 주셔서 감사합니다. 내가 조사 할 때 EarthTools를 발견했지만, 저를 방해 한 것은 "이 서비스의 사용은 * 현재 * 무료입니다."라는 것이 었습니다. 솔루션이 무한정 무료로 유지된다는 것을 알 필요가 있었기 때문에 이것은 나를위한 쇼 스토퍼였습니다. –

+0

Solr 또는 GeoTools와 함께 갈 것입니다. 둘 다 훌륭합니다. –

13
0

RTREE 간단한 자바 클래스 : https://github.com/hadmir/rtree/blob/master/RTree.java

모든 오브젝트는 두 INT [] 배열 내부에 저장되어있는, 그래서 (파일에) 지속 정말 쉽습니다. 또한 새로운 rect를 추가해도 객체가 생성되지 않는다는 사실은 RTree에 수백만 개의 직사각형을 삽입 할 수 있으며 JVM이 불에 타지 않는다는 것을 의미합니다. 이것은 객체 수 (object counts)가 대개 엄청난 지리적 프로젝트에 유용합니다.

2 차원 직사각형 만 저장됩니다. 따라서 복잡한 객체의 경우 경계 사각형을 찾아야합니다. Query는 "query rectangle"과 교차하거나 중복되는 모든 rect (rect의 ID)를 반환합니다.