Запросы Geohash в Хранилище Google Cloud

Я новичок в geohashing и хочу реализовать его в Google Cloud Datastore.

Моя цель - хранить данные lat / long в форме geohash, а затем запрашивать для всех Entities около 400 метров от заданного lat / long.

Кто-нибудь сделал это успешно и эффективно?

Есть некоторые краевые случаи с geohashing, где вам нужно проверить соседние ячейки, но я хочу избежать запроса слишком большого количества точек данных, которые я не буду использовать.

В конце концов, это звучит так, как будто мне нужно будет рассчитать расстояние между данным lat / long и всеми возвращаемыми объектами, чтобы убедиться, что они составляют х метров от заданного lat / long.

Тогда возникает другая проблема, как я могу реализовать курсор с набором результатов?

Вот некоторые из проблем, которые я определил. Если у кого-нибудь есть советы и советы или какой-то код (на Java ) о том, как делать geohashing с Datastore, я был бы очень признателен! Спасибо!

Всего 1 ответ


Хранилище данных плохо подходит для этого.

Но согласно этому ответу

https://stackoverflow.com/a/1037891/4458510

похоже, есть модуль, который вы можете настроить, который пытается обеспечить некоторый уровень этой функции в хранилище данных, но это, вероятно, не будет идеальным: https://code.google.com/archive/p/geomodel/

Поэтому я думаю, это зависит от ваших потребностей. Если вам нужно, чтобы это было сделано правильно, вы можете выбрать другое решение для хранения данных, которое правильно поддерживает геопространственные функции: https://cloud.google.com/storage-options/

Мне нужно было сделать что-то подобное, так вот как я это сделал в Datastore, и это было достаточно для моих нужд. Https://stackoverflow.com/a/45602189/4458510


Есть идеи?

10000