Геопространственные запросы через Google Cloud Datastore - PullRequest
0 голосов
/ 27 сентября 2019

В документации для Google Cloud Datastore подробно описан тип данных Географическая точка [1].В то время как в библиотеке Java нет строго соответствующего класса, существует класс LatLng [2], который представляется каноническим эквивалентом.

Хотя я могу хранить значение просто отличнои я могу запросить точные местоположения, предоставив полностью построенный экземпляр LatLng, подобный следующему:

ofy.load().type(Site.class) // Site is a custom class, whose latLng field is a LatLng-type
        .filter("latLng", LatLng.of(26.329,127.744))
        .first()
        .now()

Я не могу выполнить неточные запросыизначально, по крайней мере, не на консоли.Хотя я могу вроде сделать что-то подобное в Objectify:

ofy.load().type(Site.class)
        .filter("latLng >", LatLng.of(26.0,127.0))
        .filter("latLng <", LatLng.of(90,127.750))
        .first()
        .now()

Мой вопрос: есть ли встроенная / первоклассная поддержка геопространственных запросов в хранилище данных?Или этот тип координатной геометрии - «хакерство» - единственный приемлемый способ выполнения таких поисков / запросов?


[1] https://cloud.google.com/datastore/docs/concepts/entities#geographical_point [2] https://googleapis.dev/java/google-cloud-clients/0.111.0-alpha/com/google/cloud/datastore/LatLng.html

...