Подтвердить что ты не робот

Java-коммерческая реализация R-дерева?

Мне нужна коммерческая реклама (Apache License, LGPL, Mozilla Public License и т.д.) R-tree реализация на Java, чтобы замените geonames веб-сервис для часовых поясов, как предлагается в вопросе "определить часовой пояс с широты/долгота без использования веб-сервисов, таких как Geonames.org". У меня найдено some вокруг, но мне было интересно, оценил ли кто-то или использовал их на практике.

4b9b3361

Ответ 1

Ответ 2

Прежде всего, позвольте мне указать, что если вы будете искать ближайший город из данных координат, это может быть не в том же часовом поясе! То, что вам действительно нужно, на мой взгляд, - это информация об этой административной принадлежности - минимум будет страной, но в некоторых случаях это должно быть даже больше, то есть состояние. Эта информация может быть получена с помощью API Карт Google, а затем скорректирована с более подробной информацией TZ.

существует бесплатная альтернатива GeoNames - EarthTools. Есть некоторые ограничения для самой службы (количество запросов и т.д.), Но все же это хорошо, проверено и работает для меня отлично.

Во-вторых, есть бесплатная альтернатива GeoNames - EarthTools. Есть некоторые ограничения для самой службы (количество запросов и т.д.), Но все же это хорошо, проверено и работает для меня отлично.

В-третьих, если вы хотите импортировать данные в БД, большинство текущих реализаций БД предоставляют геопространственные индексы, которые вы можете использовать. Если вам нужна эта информация, встроенная в ваше приложение, вы можете использовать H2Database (встроенный Java DB) с H2Spatial дополнение - хотя я пробовал это и я не могу рекомендовать его полностью. Neo4j имеют отличную реализацию пространственного индекса

Дополнительно Вы можете использовать Solr для GeoSpatial search. Это хорошо, быстро и легко реализовать. Я на самом деле находится в середине процесса переноса моих запросов БД на Solr...

Наконец, но не в последнюю очередь, ниже вы найдете некоторые из тех, которые я тестировал некоторое время назад:

  • JSI - LGPL
  • GeoTools - LGPL, излишний, даст вам гораздо больше, чем вам нужно... но это здорово!

Возможно, еще немного, но те, которые я тестировал до сих пор...

Ответ 3

Простой Java-класс RTree, созданный мной: https://github.com/hadmir/rtree/blob/master/RTree.java

Все объекты хранятся внутри двух массивов int [], поэтому очень легко сохранить (в файл). Кроме того, факт, что добавление новых прямоугольников не создает никаких объектов, означает, что вы можете вставлять миллионы прямоугольников в RTree, а JVM не будет гореть в пламени. Это полезно для геопроектов, где количество объектов обычно велико.

Сохраняются только 2D-прямоугольники (поэтому для сложного объекта вам нужно найти ограничивающий прямоугольник). Query возвращает все прямоугольники (IDs rects), пересекающиеся или перекрывающиеся с "прямоугольником запроса".