Сервис прямого геокодирования¶
Общие сведения¶
Сервис выполняет задачи поиска объектов на карте по произвольной текстовой адресной строке. Используется для поиска объектов на карте по текстовой строке или для получения пространственной составляющей для адресной информации в веб-сайтах, мобильных и настольных приложениях.
Наилучший результат достигается при четкой структурированности задаваемого адреса: регион -> населенный пункт -> улица -> дом. Сервис возвращает структурированное описание объекта (номер дома, улица, населенный пункт, административное подчинение) и его координаты.
Доступны режимы поиска по введенной строке и подсказок по мере введения текста (suggest).
Принципы работы сервиса¶
Сервис работает по протоколу HTTP(S).
Параметры запроса передаются в формате QUERY STRING, значения параметров закодированы в PERCENT-ENCODING.
Запрос к сервису имеет следующий общий формат:
http://<адрес_сервера>/<вид_запроса>?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&<остальные_параметры>
Значения указанных в строке запроса параметров описываются ниже в данном документе.
Результатом запроса является ответ в формате GeoJSON (JSON) в зависимости от вида запроса и параметров запроса, в кодировке UTF-8.
В сервисе реализована возможность выполнения следующих видов запросов:
-
Поисковый запрос объектов по текстовой строке (search).
-
Запрос автозаполнения текстовой строки для поиска (suggest).
Найденные объекты сортируются по релевантности (чем больше совпадение найденного объекта с введенной текстовой строкой, тем выше в списке он находится). При указании сервису опорной точки результаты также сортируются с учетом удаленности от указанной точки.
Сервис выдает результаты как в простом виде для быстрого просмотра, так и в структурированной форме, где адрес разбивается на отдельные элементы. Для каждого из элементов адреса возвращается набор характеристик, в том числе значения кодов ОКТМО, ФИАС, ОКСМ и проч.
Алгоритм поиска умеет исправлять небольшие ошибки, опечатки, различные варианты написания типов адресных элементов, но в любом случае наилучшие результаты поиска достигаются при правильно введенном адресе.
Параметры запросов и принципы их обработки¶
- Принципы обработки параметров:
-
-
обработка параметров проводится без учета регистра (case insensitive);
-
при отсутствии или ошибочном значении необязательного параметра в запросе используется значение по умолчанию;
-
порядок следования параметров в запросе не имеет значения;
-
при передаче нескольких одинаковых параметров в запросе используется значение первого параметра, все остальные значения игнорируются.
-
Параметры запроса представлены в таблице.
N п/п |
Параметр |
Возможные значения |
Значение по умолчанию |
Описание |
---|---|---|---|---|
1 |
guid |
текст |
Ключ лицензии пользователя |
|
2 |
text |
текст |
Строка для поиска |
|
3 |
count |
число |
10 |
Максимальное количество возвращаемых результатов |
4 |
format |
|
geojson:full |
Вид результата запроса на выходе:
|
5 |
mode |
search, geocode |
search |
Режим поиска адреса:
|
6 |
data |
all, address |
all |
Вид данных, среди которых осуществляется поиск:
|
7 |
lang |
ru, en |
ru |
Язык отображения результатов:
|
8 |
spatialin |
|
EPSG:4326 |
Координатная система входных данных:
|
9 |
spatialout |
|
EPSG:4326 |
Координатная система входных данных:
|
10 |
x |
число |
Координата X точки в проекции spatialin. При указании в запросе координат x, y результаты поиска сортируются по релевантности с учетом удаленности от заданной точки |
|
11 |
y |
число |
Координата Y точки в проекции spatialin. При указании в запросе координат x, y результаты поиска сортируются по релевантности с учетом удаленности от заданной точки |
|
12 |
minAddrAccuracy |
число |
0 |
Минимальная степень совпадения найденного адреса с введенной текстовой строкой в диапазоне от 0 до 100 для включения его в результаты поиска |
13 |
minCount |
число |
0 |
Системный параметр, deprecated. Минимальное число результатов, которые выдаются в ответе, если значения параметра minAddrAccuracy > 0 |
14 |
maxCount |
число |
count |
Системный параметр, deprecated. Максимальное число результатов, которые выдаются в ответе, если значения параметра minAddrAccuracy > 0 |
Иерархическая организация адресной информации и типы адресных элементов¶
Для достижения наилучших результатов поиска, особенно в режиме mode=geocode, следует передавать адрес, соблюдая иерархическую последовательность элементов. Эта иерархическая последовательность соответствует официальному административному делению Российской Федерации, а также формату записи адресов.
Иерархические уровни также соответствуют типам объектов, возвращаемым в ответе сервиса:
country - страны мира;
admin - субъекты Российской Федерации (регионы) и соответствующие им объекты других государств;
district_a - административные округа и районы городов федерального значения Российской Федерации и соответствующие им объекты других государств;
admin1 - муниципальные районы и городские округа субъектов Российской Федерации и соответствующие им объекты других государств;
district_a1 - внутригородские территории городов федерального значения и административные единицы городских округов РФ (административные районы города, внутригородские округа, внутригородские районы, сельские территории) и соответствующие им объекты других государств;
admin2 - городские и сельские поселения муниципальных районов Российской Федерации и соответствующие им объекты других государств;
town - населенные пункты Российской Федерации (согласно ОКТМО) и соответствующие им объекты других государств;
district_t - административные единицы населенных пунктов Российской Федерации (внутригородские территории, административные районы и административные округа городов) и соответствующие им объекты других государств;
quarter - отдельные кварталы, микрорайоны, поселки в ранге микрорайонов, входящие в состав более крупных административных подразделений Российской Федерации и соответствующие им объекты других государств;
village - дачные поселки, коттеджные поселки, садоводческие некоммерческие товарищества и партнерства, дачные и садовые участки Российской Федерации и соответствующие им объекты других государств;
road - автомобильные дороги и улицы населенных пунктов Российской Федерации и соответствующие им объекты других государств;
address - номера домов зданий и сооружений Российской Федерации и соответствующие им объекты других государств.
Объекты из уровней district_a, district_a1, district_t, как правило, не встречаются в адресах, поэтому не указываются.
Пример правильно структурированной записи адреса для наилучшего результата геокодирования:
Российская Федерация, город Москва, административный округ Западный, улица Барклая, дом 6 строение 3
Поисковый запрос объектов по текстовой строке (search)¶
Для получения результатов поиска объектов по текстовой строке используются запросы к сервису следующего вида:
http://<адрес_сервера>/search?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&...
Для выполнения запроса нужно задать следующие основные параметры:
текст для поиска (параметр text), чем более структурированный и точный текст записан на входе, тем точнее будут результаты поиска;
режим поиска (параметр mode = search для обычного поиска и mode = geocode для поиска в режиме геокодирования);
вид представления результатов поиска (параметр format).
Также можно задать дополнительные настройки:
изменить максимальное количество результатов поиска (параметр count);
выставить язык для вывода результатов (параметр lang);
установить параметры проекции для вывода результатов (параметры spatialin, spatialout);
задать опорное местоположение для дополнительной сортировки полученных результатов (параметры x, y).
Формат вывода simple удобен для быстрого просмотра результатов поиска.
Формат regular выводит структурированный набор элементов, ссылки на коды классификаторов для каждого элемента и является универсальным форматом для обработки данных.
Формат geosjon:full содержит более удобный вид данных для просмотра, но менее структурирован, чем формат regular.
Примеры поиска адресов¶
Поиск адресов (simple)¶
Пример простого поискового запроса адресов, формат simple:
http://<адрес_сервера>/search?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=барклая 6&data=address&format=simple
В результате выполнения запроса возвращается простой набор результатов для быстрого просмотра в формате JSON:
{
"address": { // Набор найденных адресов.
"0": { // Первый найденный адрес.
"name": "Россия, Москва, улица Барклая, 6", // Найденная текстовая строка адреса.
"x": 37.5040772, // Координата X точки адреса в координатной системе spatialout.
"y": 55.7407656 // Координата Y точки адреса в координатной системе spatialout.
},
"1": { // Второй найденный адрес.
"name": "Россия, Калининградская область, город Калининград, улица Барклая-де-Толли, 6",
"x": 20.5345521,
"y": 54.7493102
}
}
}
Поиск адресов (regular)¶
Тот же запрос с выводом данных в формате regular:
http://<адрес_сервера>/search?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=барклая 6&data=address&format=regular
В данном формате результаты поиска возвращаются в виде структурированного сортированного набора элементов в формате GeoJSON. Каждый элемент содержит собственный набор атрибутов, в том числе коды общероссийских классификаторов:
{
// Набор найденных объектов.
"features": [
// Первый найденный объект.
{
// Bounding box - экстент или прямоугольная геометрическая область, в которой содержится найденный объект.
"bbox": [
37.5040772,
55.7407656,
37.5040772,
55.7407656
],
// Геометрия найденного объекта (точка) в координатной системе spatialout.
"geometry": {
"coordinates": [
37.5040772,
55.7407656
],
"type": "Point"
},
// Параметры найденного объекта.
"properties": {
// Значение точности совпадения введенной адресной строки с найденным объектом, в процентах, от 0 до 100.
"accuracy": 100,
// Массив элементов (составных частей) адреса.
"address": [
// Очередной элемент адреса.
{
// Блок ссылок на внешние классификаторы.
"foreign_keys": {
// Почтовый индекс.
"POSTAL_CODE": "121087"
},
// Внутренний числовой идентификатор элемента адреса.
"id": 16301557,
// Признак вхождения элемента в краткий формат записи адреса (true - входит, false - не входит).
"inShort": true,
// Текст элемента адреса.
"name": "6",
// Тип элемента адреса в соответствии с перечнем типов адресных элементов.
"type": "address"
},
// Параметры следующего элемента найденного адреса.
{
"foreign_keys": {
"AOGUID": "972ce8a4-d994-4236-8da7-eb2d12137f93"
},
"id": 1000100,
"inShort": true,
"name": "улица Барклая",
"type": "road"
},
{
"foreign_keys": {
"OKTMO": "45328000"
},
"id": 8222,
"inShort": false,
"name": "район Филевский парк",
"type": "district_a1"
},
{
"id": 8240,
"inShort": false,
"name": "административный округ Западный",
"type": "district_a"
},
{
"foreign_keys": {
"AOGUID": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
"OKTMO": "45000000"
},
"id": 28077,
"inShort": true,
"name": "Москва",
"type": "admin"
},
{
"foreign_keys": {
"OKSM_2": "RU",
"OKSM_N": 643
},
"id": 28000,
"inShort": true,
"name": "Россия",
"type": "country"
}
],
// Вид найденного объекта (address - адрес или адресный объект).
"dataType": "address",
// Собранные в один блок ссылки на внешние классификаторы.
"foreign_keys": {
// Код адресного объекта ФИАС (AOGUID).
"AOGUID": "972ce8a4-d994-4236-8da7-eb2d12137f93",
// Двухбуквенный код ОКСМ.
"OKSM_2": "RU",
// Числовой код ОКСМ.
"OKSM_N": 643,
// Код ОКТМО.
"OKTMO": "45328000",
// Почтовый индекс.
"POSTAL_CODE": "121087"
},
// Текст найденного объекта в короткой форме записи.
"name": "Россия, Москва, улица Барклая, 6",
// Тип найденного объекта в соответствии с перечнем типов адресных элементов.
"type": "address"
},
"type": "Feature"
},
{
"bbox": [
20.5345521,
54.7493102,
20.5345521,
54.7493102
],
"geometry": {
"coordinates": [
20.5345521,
54.7493102
],
"type": "Point"
},
"properties": {
"accuracy": 100,
"address": [
{
"foreign_keys": {
"POSTAL_CODE": "236029"
},
"id": 22792214,
"inShort": true,
"name": "6",
"type": "address"
},
{
"foreign_keys": {
"AOGUID": "eb805002-4e7a-49ef-b5f2-4aab92fe6d0b",
"POSTAL_CODE": "236009"
},
"id": 1037895,
"inShort": true,
"name": "улица Барклая-де-Толли",
"type": "road"
},
{
"foreign_keys": {
"AOGUID": "912c4e46-5a68-4799-9ee5-f047892a192f"
},
"id": 516003,
"inShort": false,
"name": "микрорайон Северная Гора",
"type": "quarter"
},
{
"foreign_keys": {
"AOGUID": "df679694-d505-4dd3-b514-4ba48c8a97d8",
"OKTMO": "27701000001",
"POSTAL_CODE": "236000"
},
"id": 31085,
"inShort": true,
"name": "город Калининград",
"type": "town"
},
{
"foreign_keys": {
"OKTMO": "27701000"
},
"id": 463592,
"inShort": false,
"name": "городской округ город Калининград",
"type": "admin1"
},
{
"foreign_keys": {
"AOGUID": "90c7181e-724f-41b3-b6c6-bd3ec7ae3f30",
"OKTMO": "27000000"
},
"id": 28039,
"inShort": true,
"name": "Калининградская область",
"type": "admin"
},
{
"foreign_keys": {
"OKSM_2": "RU",
"OKSM_N": 643
},
"id": 28000,
"inShort": true,
"name": "Россия",
"type": "country"
}
],
"dataType": "address",
"foreign_keys": {
"AOGUID": "eb805002-4e7a-49ef-b5f2-4aab92fe6d0b",
"OKSM_2": "RU",
"OKSM_N": 643,
"OKTMO": "27701000001",
"POSTAL_CODE": "236029"
},
"name": "Россия, Калининградская область, город Калининград, улица Барклая-де-Толли, 6",
"type": "address"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
Поиск адресов (geosjon:full)¶
Тот же запрос с выводом данных в формате geosjon:full.
http://<адрес_сервера>search?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=барклая 6&data=address&format=geojson:full
В данном формате результаты поиска возвращаются в формате GeoJSON. В этом формате также присутствует разделение адреса на элементы, только закодировано оно в названиях параметров, а не структурой документа.
В общем случае соответствие параметров и элементов адреса такое:
country - параметры CN*;
admin - параметры R*;
district_a - параметры DA*;
admin1 - параметры A1*;
district_a1 - параметры DA1*;
admin2 - параметры A2*;
town - параметры CT*;
district_t - параметры DT*;
quarter - параметры QT*;
village - параметры VL*;
road - параметры ST*;
address - параметры A*.
- Также в названиях параметров сокращения обозначают:
Каждый найденный объект - это просто плоский набор атрибутов:
{
// Набор найденных объектов.
"features": [
{
// Первый найденный объект.
"bbox": [
// Bounding box - экстент или прямоугольная геометрическая область, в которой содержится найденный объект.
37.5040772,
55.7407656,
37.5040772,
55.7407656
],
// Геометрия найденного объекта (точка) в координатной системе spatialout.
"geometry": {
"coordinates": [
37.5040772,
55.7407656
],
"type": "Point"
},
// Параметры найденного объекта.
"properties": {
// Внутренний числовой идентификатор элемента адреса уровня address (номер дома).
"ADDR_ID": 16301557,
// Номер дома.
"A_NUM": "6",
// Почтовый индекс для номера дома.
"A_POSTCODE": "121087",
// Полное название элемента адреса уровня country.
"CNFNM": "Российская Федерация",
// Краткое название элемента адреса уровня country.
"CNNM": "Российская Федерация",
// Название элемента адреса уровня country без типа.
"CNSNM": "Россия",
// Внутренний числовой идентификатор элемента адреса уровня country.
"CN_COD": 28000,
// Двухбуквенный код ОКСМ (country).
"CN_OKSM_2": "RU",
// Числовой код ОКСМ (country).
"CN_OKSM_N": 643,
// Полное название элемента адреса уровня district_a1.
"DA1FNM": "район Филевский парк",
// Краткое название элемента адреса уровня district_a1.
"DA1NM": "район Филевский парк",
// Название элемента адреса уровня district_a1 без типа.
"DA1SNM": "Филевский Парк",
// Внутренний числовой идентификатор элемента адреса уровня district_a1.
"DA1_COD": 8222,
// Код ОКТМО (district_a1).
"DA1_OKTMO": "45328000",
// Полное название элемента адреса уровня district_a.
"DAFNM": "административный округ Западный",
// Краткое название элемента адреса уровня district_a.
"DANM": "окр Западный",
// Название элемента адреса уровня district_a без типа.
"DASNM": "Западный",
// Внутренний числовой идентификатор элемента адреса уровня district_a.
"DA_COD": 8240,
// Внутренний числовой идентификатор адресного объекта (объекта, которому непосредственно подчинен номер дома).
"OBJ_COD": 1000100,
// Код КЛАДР адресного объекта (объекта, которому непосредственно подчинен номер дома).
"REGCOD": "77000000000081000",
// Внутренний числовой идентификатор элемента адреса уровня region.
"REG_COD": 28077,
// Полное название элемента адреса уровня admin.
"RFNM": "город федерального значения Москва",
// Краткое название элемента адреса уровня admin.
"RNM": "гфз Москва",
// Название элемента адреса уровня admin без типа.
"RSNM": "Москва",
// Код ФИАС (AOGUID) элемента адреса уровня admin.
"R_AOGUID": "0c5b2444-70a0-4932-980c-b4dc0d3f02b5",
// Код ОКТМО элемента адреса уровня admin.
"R_OKTMO": "45000000",
// Системное поле: количество баллов, набранных в процессе поиска для данного объекта.
"SCORE": 8,
// Полное название элемента адреса уровня road.
"STFNM": "улица Барклая",
// Краткое название элемента адреса уровня road.
"STNM": "ул. Барклая",
// Название элемента адреса уровня road без типа.
"STSNM": "Барклая",
// Код ФИАС (AOGUID) элемента адреса уровня road.
"ST_AOGUID": "972ce8a4-d994-4236-8da7-eb2d12137f93",
// Системное поле для формирования адресной строки в формате почтового адреса.
"ST_SA_SKIP_TO_CODE": 28077,
// Значение точности совпадения введенной адресной строки с найденным объектом, в процентах, от 0 до 100.
"accuracy": 100,
// Вид найденного объекта (address - адрес или адресный объект).
"dataType": "address",
// Внутренний идентификатор найденного объекта
"objectIndex": "640569",
// Тип найденного объекта в соответствии с перечнем типов адресных элементов.
"type": "address"
},
"type": "Feature"
},
{
"bbox": [
20.5345521,
54.7493102,
20.5345521,
54.7493102
],
"geometry": {
"coordinates": [
20.5345521,
54.7493102
],
"type": "Point"
},
"properties": {
"A1FNM": "городской округ город Калининград",
"A1NM": "го город Калининград",
"A1SNM": "город Калининград",
"A1_COD": 463592,
"A1_OKTMO": "27701000",
"ADDR_ID": 22792214,
"A_NUM": "6",
"A_POSTCODE": "236029",
"CNFNM": "Российская Федерация",
"CNNM": "Российская Федерация",
"CNSNM": "Россия",
"CN_COD": 28000,
"CN_OKSM_2": "RU",
"CN_OKSM_N": 643,
"CTFNM": "город Калининград",
"CTNM": "г Калининград",
"CTSNM": "Калининград",
"CT_AOGUID": "df679694-d505-4dd3-b514-4ba48c8a97d8",
"CT_COD": 31085,
"CT_OKTMO": "27701000001",
"CT_POSTCODE": "236000",
"OBJ_COD": 1037895,
"QTFNM": "микрорайон Северная Гора",
"QTNM": "мкр Северная Гора",
"QTSNM": "Северная Гора",
"QT_AOGUID": "912c4e46-5a68-4799-9ee5-f047892a192f",
"QT_COD": 516003,
"REGCOD": "39000001000007000",
"REG_COD": 28039,
"RFNM": "Калининградская область",
"RNM": "Калининградская обл",
"RSNM": "Калининградская",
"R_AOGUID": "90c7181e-724f-41b3-b6c6-bd3ec7ae3f30",
"R_OKTMO": "27000000",
"SCORE": 8,
"STFNM": "улица Барклая-де-Толли",
"STNM": "ул. Барклая-де-Толли",
"STSNM": "Барклая-де-Толли",
"ST_AOGUID": "eb805002-4e7a-49ef-b5f2-4aab92fe6d0b",
"ST_POSTCODE": "236009",
"ST_SA_SKIP_TO_CODE": 31085,
"accuracy": 100,
"dataType": "address",
"objectIndex": "2483261",
"type": "address"
},
"type": "Feature"
}
],
"query": "барклая 6", // Текст запроса.
"type": "FeatureCollection"
}
Отличия режимов search и geocode¶
Отличие режимов mode=search (поиск) и mode=geocode (геокодирование) можно проиллюстрировать на следующем примере.
При выполнении поиска строки «московская область камергерский переулок» в режиме search будет найден объект «Москва, Камергерский переулок». Это интуитивно правильный результат для поиска, но в режиме геокодирования такой результат не является допустимым, поскольку в Московской области нет объекта с названием «Камергерский переулок».
Поэтому в случае режима mode=geocode к объектам предъявляются повышенные требования к точности, чтобы снизить вероятность появления ошибок геокодинга к минимуму. В режиме mode=geocode будет найден объект «Московская область», поскольку с точки зрения иерархии это самый близкий возможный объект к заданному в текстовой строке.
Пример запроса и ответа search, формат simple¶
http://<адрес_сервера>/search?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=московская область камергерский переулок&data=address&format=simple&mode=search
{
"address": {
"0": {
"name": "Россия, Москва, Камергерский переулок",
"x": 37.613506469833474,
"y": 55.759898064379826
}
}
}
Пример запроса и ответа geocode, формат simple¶
http://<адрес_сервера>/search?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=московская область камергерский переулок&data=address&format=simple&mode=geocode
{
"address": {
"0": {
"name": "Россия, Московская область",
"x": 37.617629223,
"y": 55.751305723
}
}
}
Запрос автозаполнения текстовой строки для поиска (suggest)¶
Для получения данных с целью создания текстовых подсказок автозаполнения адресной строки используются запросы к сервису следующего вида:
http://<адрес_сервера>/suggest?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&...
Для выполнения запроса нужно задать следующие основные параметры:
текст для поиска (параметр text), не менее трех символов;
вид представления результатов поиска (параметр format);
установить количество результатов поиска (параметр count);
задать опорное местоположение для дополнительной сортировки полученных результатов (параметры x, y).
Также можно задать дополнительные настройки:
выставить язык для вывода результатов (параметр lang);
установить параметры проекции для вывода результатов (параметры spatialin, spatialout).
При выполнении запросов suggest настоятельно рекомендуется указывать опорную точку, относительно которой будет осуществляться сортировка результатов.
Запрос suggest адресов (geojson:suggest) с текстом «мос»¶
Запрос¶
Пример простого запроса suggest адресов, формат geojson:suggest, с опорной точкой в Москве и текстом «мос»:
http://<адрес_сервера>/suggest?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=мос&data=address&format=geojson:suggest&count=5&x=37.587748&y=55.746149
Ответ¶
В результате выполнения запроса возвращаются данные в формате GeoJSON, относящиеся к Москве:
{
"features": [
// Первый найденный объект.
{ // Первый найденный объект.
"geometry": null,
"properties": {
// Вид найденного объекта (address - адрес или адресный объект).
"dataType": "address",
// Массив индексов начала и конца участков текста в строке suggest, которые подсвечиваются пользователю.
"hl": [
[
0,
3
]
],
// Текст, который должен быть помещен в поле поиска при выборе данной текстовой подсказки.
"search": "Россия, Москва",
// Подсказка, показываемая пользователю.
"suggest": "Москва, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
0,
3
]
],
"search": "Россия, Московская область",
"suggest": "Московская область, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
5,
8
]
],
"search": "Россия, Москва, ММДЦ Москва-Сити",
"suggest": "ММДЦ Москва-Сити, Москва, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
21,
24
]
],
"search": "Россия, Москва, жилой комплекс Мечта Москвича",
"suggest": "жилой комплекс Мечта Москвича, Москва, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
0,
3
],
[
18,
21
]
],
"search": "Россия, Москва, Московская аллея",
"suggest": "Московская аллея, Москва, Россия"
},
"type": "Feature"
}
],
"query": "мос", // Текст поискового запроса.
"type": "FeatureCollection" }
Пример запроса и ответа на Санкт-Петербург¶
Тот же запрос с опорной точкой в районе Санкт-Петербурга:
http://<адрес_сервера>/suggest?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=мос&data=address&format=geojson:suggest&count=5&x=30.380906&y=59.911373
В ответе содержатся объекты в окрестностях Санкт-Петербурга:
{
"features": [
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
0,
3
]
],
"search": "Россия, Санкт-Петербург, Московский район",
"suggest": "Московский район, Санкт-Петербург, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
8,
11
]
],
"search": "Россия, Санкт-Петербург, Большая Московская улица",
"suggest": "Большая Московская улица, Санкт-Петербург, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
6,
9
]
],
"search": "Россия, Санкт-Петербург, Малая Московская улица",
"suggest": "Малая Московская улица, Санкт-Петербург, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
0,
3
]
],
"search": "Россия, Санкт-Петербург, Московский проспект",
"suggest": "Московский проспект, Санкт-Петербург, Россия"
},
"type": "Feature"
},
{
"geometry": null,
"properties": {
"dataType": "address",
"hl": [
[
0,
3
]
],
"search": "Россия, Санкт-Петербург, Московское шоссе",
"suggest": "Московское шоссе, Санкт-Петербург, Россия"
},
"type": "Feature"
}
],
"query": "мос",
"type": "FeatureCollection" }
Запрос suggest адресов (geojson:suggestWithCoords) с текстом «мос»¶
Пример простого запроса suggest, формат выдачи данных geojson:suggestWithCoords, с опорной точкой в Москве и текстом «мос»:
http://<адрес_сервера>/suggest?guid=XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX&text=мос&data=address&format=geojson:suggestWighCoords&count=5&x=37.587748&y=55.746149
В результате выполнения запроса возвращаются те же данные, что и в случае формата geojson:suggest, с заполненными данными о геометрии найденных объектов (как правило, в режиме suggest геометрия объектов не требуется, поэтому ее не стоит получать без необходимости):
{
{
"features": [
{
"bbox": [
36.8037544,
55.1422463,
37.9678193,
56.0209193
],
"geometry": {
"coordinates": [
37.617629223,
55.751305723
],
"type": "Point"
},
"properties": {
"dataType": "address",
"hl": [
[
0,
3
]
],
"search": "Россия, Москва",
"suggest": "Москва, Россия"
},
"type": "Feature"
},
...
{
"bbox": [
37.5589111,
55.7866784,
37.566417,
55.7897745
],
"geometry": {
"coordinates": [
37.56260351010832,
55.78806346844892
],
"type": "Point"
},
"properties": {
"dataType": "address",
"hl": [
[
0,
3
],
[
18,
21
]
],
"search": "Россия, Москва, Московская аллея",
"suggest": "Московская аллея, Москва, Россия"
},
"type": "Feature"
}
],
"query": "мос",
"type": "FeatureCollection"
}
Вариант применения подсветки¶
Индексы для применения подсветки, возвращаемые в запросе suggest, можно применить следующим образом:
var hilitedSuggest=rez.items[i].suggest;
for (j = rez.items[i].hl.length-1; j >=0 ; j--)
{
hilitedSuggest=hilitedSuggest.insert(rez.items[i].hl[j][1],'</b>');
hilitedSuggest=hilitedSuggest.insert(rez.items[i].hl[j][0],'<b>');
}
Обработка ошибок¶
Сервис возвращает ошибки в следующем формате:
{
"code": код_ошибки,
"message": "текст_ошибки",
"verboseMessage": "подробный_текст_ошибки"
}
Перечень возможных кодов ошибок и их описание¶
Перечень возможных кодов ошибок и их описание приведены в таблице ниже.
Код ошибки |
Текст ошибки |
HTTP код ответа |
Описание |
---|---|---|---|
1 |
Resource not found |
404 |
Ресурс не найден (неправильный путь в запросе) |
2 |
Resource not initialized |
500 |
Ресурс не инициализирован (правильный запрос, но не загрузились данные) |
3 |
Layer not found |
400 |
Слой не найден (слой в запросе указан неправильно) |
4 |
Layer not initialized |
500 |
Слой не инициализирован (правильный запрос, но не загрузились данные слоя) |
5 |
No license was found |
401 |
Включена проверка лицензии, но не передан ключ |
6 |
License error |
403 |
С переданным ключом нельзя выполнить указанную операцию |
7 |
Bad parameter value |
400 |
Неправильное или неправильно сформированное значение параметра в запросе |
8 |
Service error |
500 |
Общая ошибка сервиса (используется, когда невозможно определить ошибку точнее) |