Wialon позволяет определить координаты по известному адресу, или наоборот по известным координатам определить адрес. Запросы используемые для этих целей рассмотрены ниже.
Внимание! Для запуска данного примера на Wialon Kit во всех запросах следует заменить https://hst-api.wialon.com на https://kit-api.wialon.com, а для входа в систему использовать логин и пароль своей учетной записи или логин и пароль демо-пользователя: kitdemo kitdemo или логин и пароль демо-пользователя: kitdemo kitdemo.
Определить адрес по известным координатам можно при помощи запроса gis_geocode. В качестве примера определим адрес точки с координатами: 27.516643322771575 в.д. и 53.91069937030936 с.ш. Формат строки результата установим в 1255211008 - Улица, Дом, Город, Регион, Страна.
https://{host}/gis_geocode? coords=[{ "lon":27.516643322771575, "lat":53.91069937030936 }] &flags=1255211008 &uid=50935
Результат выполнения:
["ул. Скрыганова, 6А, Минск, Беларусь"]
Если же не нужна такая точность в определении адреса, то можно поменять формат ответа, например на 1255211008 - Улица.
https://{host}/gis_geocode? coords=[{ "lon":27.516643322771575, "lat":53.91069937030936 }] &flags=1073741824 &uid=50935
Результат выполнения:
["ул. Скрыганова"]
Суть данного вида поиска заключается в том, что все критерии поиска указываются явно. В качестве примера рассмотрим запрос, из входных данных которого нам известно только название улицы - скрыганова. Допустим мы ходим узнать какие дома есть на этой улице и получить первые три в ответе. Для того, чтобы указать, что должен быть осуществлен поиск дома следует установить флаг 0×4, так же, чтобы результирующий JSON содержал координаты нужно установить флаг 0×400. Так же добавим в результат название карты и поля с форматированной строкой адреса, это флаги 0×200 и 0×100 соответственно. Про формат запроса gis_search и значения его параметром можно прочитать в разделе Координаты: Простой поиск.
https://{host}/gis_search? street=скрыганова &flags=1796 &count=3 &indexFrom=0 &uid=50935
Результат выполнения:
{ "items": [{ "name": "1", "map": "belarus_country_by.sas", "x": 27.5150909424, "y": 53.908618927, "path": "Скрыганова ул.; Минск; ; Беларусь", "formatted_path": "Скрыганова ул., 1, Минск, Беларусь" }, { "name": "11", "map": "belarus_country_by.sas", "x": 27.5157699585, "y": 53.9108581543, "path": "Скрыганова ул.; Минск; ; Беларусь", "formatted_path": "Скрыганова ул., 11, Минск, Беларусь" }, { "name": "13", "map": "belarus_country_by.sas", "x": 27.5159492493, "y": 53.9113693237, "path": "Скрыганова ул.; Минск; ; Беларусь", "formatted_path": "Скрыганова ул., 13, Минск, Беларусь" }], "more": 1 }
В результате были получены координаты трех домов с данной улицы.
Данный поиск удобен тем, что не нужно явно указывать, что из критериев поиска является названием города, а что страны и так далее. Для запроса достаточно одной фразы, слова в которой могут идти в произвольном порядке. Так же при данном поиске не указываются флаги форматирования, так как по умолчанию данный запрос возвращает поля с отформатированным адресом, координаты и название карты.
https://{host}/gis_searchintelli? phrase=6а%20скрыганова%20минск &count=2 &indexFrom=0 &uid=50935
Результат выполнения:
[{ "items": [{ "name": "6а", "map": "belarus_gurtam_geod.sas", "x": 27.5166873932, "y": 53.9106521606, "path": "Скрыганова ул.; Минск; ; Беларусь", "formatted_path": "Скрыганова ул., 6а, Минск, Беларусь" }], "country": "", "region": "", "city": "минск", "street": "скрыганова", "house": "6А", "flags": 4, "more": 0 }]
Значение поля «flags» равное 4, говорит о том, что поиск был осуществлен с точностью до дома. Подробнее о запросе gis_searchintelli можно прочитать в разделе Координаты: Интеллектуальный поиск.
|