Как сохранить и искать GeoData в AppEngine?

В моем приложении я хочу хранить географические данные (долгота и широта). Затем я хочу спросить, "какое место находится в этом регионе". Подобный SQL-запросу не может использоваться, начиная с "Фильтры Неравенства Позволяются На Одном Свойстве Только" в тексте ссылки GQL

Вы знаете о другом решении, как хранить эти данные в базе данных AppEngine и попросить их с GQL?

7
задан Ondra 3 June 2010 в 21:33
поделиться

2 ответа

Я успешно использовал проект с открытым исходным кодом geomodel для хранения и запроса данных о широте/долготе в хранилище данных App Engine. В нем используется geohash для обеспечения запроса по одному свойству, он доступен как для Python, так и для Java, и поскольку он с открытым исходным кодом, вы можете модифицировать код в соответствии с вашим конкретным случаем, если это необходимо.

Стоит также отметить, что на Google I/O пару недель назад было объявлено, что хранилище данных когда-нибудь (надеюсь, скоро) обеспечит встроенную поддержку геопространственных запросов и запросов к датам, используя кривую Гильберта внутри. Это позволит выполнять быстрые запросы по ограничивающей рамке или даже по произвольному многоугольнику. Вы можете посмотреть видео этого выступления в Интернете, чтобы узнать больше подробностей, это довольно интересное обсуждение.

7
ответ дан 7 December 2019 в 07:40
поделиться

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

0
ответ дан 7 December 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: