Геокодинг

Сервис геокодинга развернут на сайте geocode.kosmosnimki.ru. Доступ к нему можно получить по URL http://geocode.kosmosnimki.ru/GeoSearch.ashx с помощью HTTP GET запроса. Ответ представляет собой текст в кодировке UTF-8, его содержание и формат задается параметрами:

  • RequestType – назначение запроса: для поиска объекта по названию и по идентификатору имеет значения SearchObject (по умолчанию) и Id соответственно
  • SearchString – условие поиска, набор ключевых слов (название, адрес) в виде строки юникод символов, закодированной в URL формате.
  • ID – идентификатор объекта
  • WithoutGeometry – ответ должен формироваться с данными о геометрии объекта (0, по умолчанию) или без них (1); вывод данных с геометрией объекта в ответе в формате XML не предусмотрен и параметр игнорируется
  • Format – формат ответа, допустимые значения: JSON (по умолчанию), JSONP, XML
  • IsStrongSearch – поиск должен вестись только по полным формам слов в SearchString (1, по умолчанию), кроме этого может вестись и по неполному последнему ключевому слову (0)
  • Limit – ограничение на количество найденных объектов в ответе, множество результатов одного запроса разбивается на определенные наборы как страницы
  • PageNum – номер страницы с набором результатов (первая страница – 0)
  • ShowTotal – необходимо сообщить в ответе количество всех найденных объектов (1), по умолчанию эти данные не требуются (0)
  • CallbackName – имя функции обратного вызова для ответа в формате JSONP

Пример: http://geocode.kosmosnimki.ru/GeoSearch.ashx?IsStrongSearch=0&Limit=10&SearchString=%u043C%u043E%u0441%u043A – вывести в формате JSON первые десять из найденных объектов с их геометрическими данными, как результат нестрогого поиска по строке “моск”

Обратный геокодинг

Дополнительно параметр RequestType может иметь значения:

  • Location – поиск наибольшего по площади объекта, полностью попадающего в заданную прямоугольную область или наименьшего, охватывающего ее
  • Nearest – поиск объекта ближайшего к точке, указанной либо явно, либо являющейся центром заданной прямоугольной области
  • SearchObject – поиск объектов, содержащих заданную точку (если не задан параметр SearchString)

В параметре GeometryJSON задаются координаты условия поиска, в виде Javascript объекта в формате JSON с полями: type – WKT тип (POINT, POLYGON) и coordinates – строка с массивом координат точек ([[долгота, широта], …]).

Пример: http://geocode.kosmosnimki.ru/GeoSearch.ashx?RequestType=Location&GeometryJSON=%7B%22type%22%3A%22POLYGON%22%2C%22coordinates%22%3A%5B%5B%5B38.09672355651856%2C55.73401170183414%5D%2C%5B38.09672355651856%2C55.75458856818039%5D%2C%5B38.210020065307624%2C55.75458856818039%5D%2C%5B38.210020065307624%2C55.73401170183414%5D%2C%5B38.09672355651856%2C55.73401170183414%5D%5D%5D%7D&WithoutGeometry=1

Формат JSON

Ответ является Javascript кодом массива найденных объектов. Объекты имеют поля:

  • ObjCode – идентификатор объекта в базе геокодинга
  • ObjName – название объекта
  • ObjNameEng – название, записанное некириллическими символами
  • ObjAltName – альтернативное название
  • ObjAltNameEng – альтернативные название, записанное некириллическими символами
  • TypeCode – идентификатор типа объекта
  • TypeName – название типа объекта
  • Parent – родительский объект аналогичной структуры в формате JSON
  • Path – массивом строковых пар ([[название типа, название объекта], …]), представляющий иерархию зависимостей объекта
  • Priority – заданное относительное положение в наборе результатов
  • CntrLat – широта центра объекта
  • CntrLon – долгота центра объекта
  • MinLat – широта самой южной точки
  • MinLon – долгота самой западной точки
  • MaxLat – широта самой северной точки
  • MaxLon – долгота самой восточной точки
  • IsForeign – объект расположен в РФ (true/false)
  • CountryCode – код страны
  • Geometry – геометрические данные, объект в формате JSON с полями: type – WKT тип (POINT, LINESTRING, POLYGON) и coordinates – массив координат точек ([[долгота, широта], …])
  • OneOf – количество всех найденных объектов
Формат JSONP

Ответ является Javascript кодом вызова фунции с именем, переданным в параметре CallbackName и аргументом, являющимся массивом объектов, соответствующих описанию в разделе “Формат JSON”

Формат XML

Ответ является XML документом и содержит тэги:

  • GeoObjects – набор результатов поиска
  • GeoObject – найденный объект
  • Name – название
  • ObjCode – идентификатор
  • TypeCode – название типа
  • CenterLongtitude – широта центра объекта
  • CenterLatitude – долгота центра объекта
  • MinLongtitude – долгота самой западной точки
  • MinLatitude – широта самой южной точки
  • MaxLongtitude – широта самой северной точки
  • MaxLatitude – долгота самой восточной точки
  • Path – перечисление по порядку иерархии зависимостей объекта, замыкающейся самим объектом
  • Region – объект, содержащий найденный объект
  • RegionInfo – первый тэг указывает название типа, второй название объекта
  • Priority – заданное относительное положение в наборе результатов
  • IsForeign – объект расположен в РФ (true/false)
  • CountryCode – код страны
  • OneOf – количество всех найденных объектов

Таблица типов оъектов https://docs.google.com/spreadsheet/ccc?key=0AhW-2ossPtOgdDVhOUw2NUlmUFRZT1lpbnVZWXcxQlE#gid=0

Координаты указываются в десятичных градусах.

В API Геомиксер доступ к сервису геокодинга выполняется с помощью SearchAdress.ashx, расположенного в виртуальном каталоге SearchObject на сайте сервера Геомиксер. Параметры запроса полностью совпадают с перечисленными выше, но Format игнорируется и ответ представлен всегда в формате JSONP.

Для поиска по базе объектов OSM нужно указать в запросе параметр UseOSM равный 1.