Как мне запросить объекты, которые находятся “поблизости”, с помощью свойства GeoPt в Google App Engine?

StackOverflow https://stackoverflow.com/questions/1033240

Вопрос

Как я должен создать запрос GQL, который возвращает ближайшие объекты (из моего текущего местоположения) на основе их свойства GeoPt?Должен ли я просто создать функцию 'distance', которая вычисляет для набора объектов с достаточно близким расстоянием?

Заранее благодарю!

Это было полезно?

Решение

App Engine не обрабатывает свойства GeoPt специально - в нем нет встроенной пространственной индексации.Однако существует ряд сторонних библиотек, которые добавляют поддержку пространственного индексирования.Лучшим из них (на мой взгляд) является геомодель.

Другие советы

Вы можете хранить местоположения в App Engine в структуре Quadtree .

Вот одно описание того, как это будет сделано: Географические запросы в Google App Engine

Полагаю, я собираюсь сделать что-то вроде экскаватора, но вот оно:

Я искал решение этой проблемы и натолкнулся на официальные документы Google: https://cloud.google.com/appengine/docs/java/search / query_strings # Java_Queries_on_geopoint_fields

Я действительно думаю, что Google должен был сделать немного больше шума по этому поводу. Я нахожу странным, что у них есть урок на Python для того, чтобы сделать то же самое, но ничего не говорит о том, как сделать это для Java.

Геохеш устанавливает очень близкие точки в разных хешах, поэтому предпочтителен другой или следующий слой. Вы можете сделать радиус, квадратный тест внутренней / внешней формы или даже любую математическую форму и проверить, находится ли точка внутри нашей внешней формы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top