Вызовы GeoLocation API для EVE RESTful API

Я легко могу хранить данные геолокации в MongoDB с работающим сервером Eve RESTful API. Итак, я храню данные, например:

loc : {
  lng: 13.01111,
  lat: 51.01111
}

Проверка и т. д. работает хорошо.

Но: мне не удалось найти способ получить данные геолокации из REST API. Есть примеры запросов, которые отлично работают на командной строки, но, похоже, нет возможности запросить API надлежащим образом.

  1. Есть ли способ бросить MongoDB, например запросы, к REST API или
  2. который является предпочтительным способом настройки API для такой цели.

Чтобы прояснить ситуацию: уже есть 2d-индекс, и запрос geoWithin в mongo-cmd работает нормально. Речь идет о том, как делать запросы через REST API.


person Ralf Marmorglatt    schedule 10.03.2014    source источник


Ответы (2)


Это не упоминается, но это должно поддерживаться. Я не увлекаюсь географией, но я только что попытался выполнить запрос $near, и он вернул ошибку операции, потому что в моей базе данных отсутствовал необходимый 2dindex. Это означает, что команда была правильно передана в базу данных.

Если вы используете клиент для отдыха, такой как Postman, синтаксис должен быть примерно таким (для простоты я использую $near):

?where={"loc": {"$near": {"$geometry":{"type": "Point", "coordinates": [13,51]}}, "$maxDistance": 100}}

Если вы используете app.get метод, не забудьте json.loads свой запрос. Надеюсь это поможет.

person Nicola Iarocci    schedule 11.03.2014

Точки в MongoDB могут храниться как объекты точек GeoJSON,

 loc : {
            type: 'Point',
            coordinates: [13.0111, 51.0111]
        };

или устаревшие пары координат.

loc : [13.01111, 51.01111]

Коллекция должна иметь индекс (либо 2dsphere, либо 2d соответственно) для эффективной обработки запросов.

Я почти уверен, что в EVE есть встроенный оператор geoWithin. Это просто не работает, потому что вы запрашиваете недопустимый формат местоположения.

person ffflabs    schedule 10.03.2014
comment
Как я уже упоминал, запросы в командной строке работают нормально. Но это правда, я упустил упомянуть, что я уже создал 2D-индекс и сделал несколько успешных запросов geoWithin в командной строке. Я не уверен, что в EVE есть оператор geoWithin, и, насколько я вижу, он нигде не упоминается в документах. - person Ralf Marmorglatt; 10.03.2014