Клуб API Карт

Модуль Регионы в API 2.0 и названия регионов из сервиса геокодирования яндекс

tatjana.grigorkina
16 июля 2013, 18:52

Почему не совпадают названия регионов, если их получать из сервиса геокодирования http://geocode-maps.yandex.ru/ и подгружать модуль Регионы?

 

Примеры:

модуль:ответ геокодирования

Алтай : Республика Алтай

Бурятия : Республика Бурятия

Ханты-Мансийский автономный округ - Югра : Ханты-Мансийский автономный округ

 ... и так далее

 

Каким образом связать одно с другим (регионы, полученные геокодир. и из модуля), если не по названию? IDшники в модуле Регионы не подходят, т.к. в ответе геокодирования нет никаких IDшников. И ладно бы эти ID соответствовали хотя бы "автомобильным" номерам регионов, но они словно сгенерированы рандомом, прошу прощения.

 

Как быть?

Прописывать в коде каждую несостыковку? Думаю, все понимают, что это неправильно. Даже если бы было одно несовпадающее название, а их море.

Искать вхождение подстроки в строке? Ок, подстроку "Алтай" можно найти в строке "республика Алтай", а вот подстроку "Ханты-Мансийский автономный округ - Югра" в строке "Ханты-Мансийский автономный округ"?

завязаться на пересечение строк?

один "костыль" хуже другого.

 

Считаю это достаточно критичным багом и недоработкой. Просьба принять к сведению.

11 комментариев
Подписаться на комментарии к посту
Названия не совпадают потому, что сервис регионы предоставляет данные сервиса "OpenStreetMap". К этим данным Яндекс никакого отношения не имеет и контролировать их не может.
Вы можете зайти на osm.org и исправить данные так, как вам кажется правильным.
tatjana.grigorkina
16 июля 2013, 19:11

но зато Яндекс имеет отношение к своему модулю Регионы и может как-то свалидировать названия с "OpenStreetMap".

 

Или хотя бы задать разумные IDшники  для "своих" регионов.

Не может, слияние проприетарных и открытых данных запрещено лицензией OSM.

Расскажите зачем Вам нужно связывать результаты геокодирования и контент сервиса "Регионы",

может что-нибудь подскажем.

tatjana.grigorkina
17 июля 2013, 10:18

добрый день.

есть ряд филиалов по всей России. Чтобы облегчить работу контент-менеджера, сделано так, что когда он просто вносит на сайт строку с адресом, идет запрос в геокодирование, и оттуда подтягивается вся нужная инфа, регион в т.ч. - и все это записывается в нашу БД. "Наши" адреса можно уже группировать по регионам. Лишних запросов в геокод каждый раз при рендере карты, само собой, не происходит, все уже записано.

А вывод инфы на сайте происходит при помощи карты России (от яндекса), нужно подсвечивать "наши" регионы, и выводить "нашу" инфу по клику. И получается так, что есть определенный массив данных, уже сгруппированных по регионам, их бы подцепить да и проставить на карте, без повторных запросов в геокод... - но к регионам на карте России от яндекса этот массив данных имеет оч.слабое отношение. Да, ряд костылей я уже написала в старте темы, могу написать еще такой же ряд, но это все не по уму.

К сожалению, как уже сказал   мы не можем править данные от OSM,

но Вы можете сами связать их области с нашими, используя osmId, который отдает для каждой области сервис регионы, и полное название региона из геокодера.

Это можно сделать через обычный javascript-объект типа:

var holder = {

    "151234": "Республика Саха",

    ...

}

и затем Вы можете по полному соответствию значения из этого хэша получить соотв. ключ и подсветить нужный регион.

Вполне себе решение без костылей.

Либо как вариант отдельная табличка в БД, но это кажется слишком overhead

 

tatjana.grigorkina
17 июля 2013, 11:20

Спасибо, и есть надежда, что ваши ID не будут меняться?

 

 

Если Вы про osmId из сервиса регионы, то это скорее вопрос к OSM,

но думаю они их не будут менять.

В геокодере никаких id нет в принципе.

tatjana.grigorkina
17 июля 2013, 11:34

понятно. ну пусть так, ок.

спасибо за помощь и оперативность.

tatjana.grigorkina,
здравствуйте! расскажите как решили задачу? у меня так же проблема, получаю по координатам точки на карте регион через геокодер яндекса, а название не совпадает с названием что в модуле регионы яндекса.

Таблица соответсвий кодов КЛАДР(первые две цифры можете использовать как "автомобильный" номер) и регионов OSM

 

[[770000000000,102269],[780000000000,337422],[10000000000,253256],[40000000000,145194],[220000000000,144764],[280000000000,147166],[290000000000,140337],[300000000000,112819],[20000000000,77677],[310000000000,83184],[320000000000,81997],[30000000000,145729],[330000000000,72197],[340000000000,77665],[350000000000,115106],[360000000000,72181],[50000000000,109876],[790000000000,147167],[750000000000,145730],[370000000000,85617],[60000000000,253252],[380000000000,145454],[70000000000,109879],[390000000000,103906],[80000000000,108083],[400000000000,81995],[410000000000,151233],[90000000000,109878],[100000000000,393980],[420000000000,144763],[430000000000,115100],[110000000000,115136],[440000000000,85963],[230000000000,108082],[240000000000,190090],[450000000000,140290],[460000000000,72223],[470000000000,176095],[480000000000,72169],[490000000000,151228],[120000000000,115114],[130000000000,72196],[500000000000,51490],[510000000000,2099216],[830000000000,274048],[520000000000,72195],[530000000000,89331],[540000000000,140294],[550000000000,140292],[560000000000,77669],[570000000000,72224],[580000000000,72182],[590000000000,115135],[250000000000,151225],[600000000000,155262],[610000000000,85606],[620000000000,71950],[630000000000,72194],[640000000000,72193],[140000000000,151234],[650000000000,394235],[660000000000,79379],[150000000000,110032],[670000000000,81996],[260000000000,108081],[680000000000,72180],[160000000000,79374],[690000000000,2095259],[700000000000,140295],[710000000000,81993],[170000000000,145195],[720000000000,140291],[180000000000,115134],[730000000000,72192],[270000000000,151223],[190000000000,190911],[860000000000,140296],[740000000000,77687],[200000000000,109877],[210000000000,80513],[870000000000,151231],[890000000000,191706],[760000000000,81994]]

Модуль регионов полностью построен на основе данных OSM, но, при этом, полностью привязан к КЛАДРу.

Стоит отметить что в OSM ну очень много "других" названий регионов и райнов.