Совсем недавно на хабре была статья от AirBnb — «Создавая карту мира». Хорошая и красивая статья про административное деление мира. Один минус — у статьи один комментарий, и то мой.
![](https://habrastorage.org/r/w1560/files/adc/533/6bb/adc5336bb3354a22ad2df64f9a9a27f1.png)
Вы наверное замечали, что Google.Карты умеют подсвечивать контура городов. С недавнего времени такое есть и на Яндекс.Картах. Мало кто знает, что геометрия есть и на eSosedi.
А вот когда такая возможность появится на вашем сайте — теперь зависит только от тебя %username%.
P.S.: 3 признака того, что год минувший все сделал красиво: 1. Районы 2. Кварталы. 3. Детализация до «Жилые массивы» доступна для некоторых городов.
OSMeRegions — это и библиотека и сервис, который позволяет отображать данные административного деления на основе OpenStreetMap на карте. Старшый брат модуля регионов Яндекс.Карт.
Изначальная задача заключалась в попытке улучшить адресацию гео-привязанных обьектов на esosedi. Потому что работа у нас такая. Как говорилось на спарке:
Все началось с стандарта ISO3166-2, который определяет буквенную индексацию стран и регионов. Москва, для примера — RU-MOW. Лично мне никогда не нравилось адресация обьектов на «гео» сайтах — в урле нет никакого «ЧПУ подобного» указания локации. Все ссылки одинаковые и не понятно про что идет речь. Одновременно были проблемы с геокодером — с определением административного адреса.
В общем это была присказка, впереди было обьединение данных OSM с GeoNames, парсинг Wikipedia, реализация прямых и обратный геокодеров, нахождение смерти Кащеевой, и написание пачки «детранслитеризаторов» чтобы получить читабельные нашим человеком названия регионов.
![](https://habrastorage.org/files/0a0/da8/121/0a0da8121ad748e49f5accc9c545cd82.gif)
(не умею я такие гифки делать, картинка из топика AirBnb)
Что вы хотите — раскрашивать страны по некой схеме, или делать из Новой Москвы Старую — ваше дело.
Команда только одна:
Где addr — имя региона мира(или просто мира), код страны или региона в формате 3166-2, или OpenStreetMap RelationId. А остальное — схемы, фильтры, рекомбинации — по желанию.
Рекомбинация — это когда уже на клиенте вы сами определяете как собрать регионы.
P.S.: Сервис может содержать, содержит и будет содержать ошибки.
P.P.S.: Ручка отдачи данных будет работать «вечно» на свой страх и риск. Когда начинала писаться эта статья я хотел дополнить эту фразу «покуда евро по 70 не будет». Как в воду глядел. Но ни что не мешает сохранять json файлы данных себе.
P.P.P.S.: Лицензия простая, но не одна — esosedi(CC BY-SA), OSM(CC-BY-SA+ODbL), Wikipedia(CC BY-SA), GeoNames(CC BY). Отдельное спасибо всеми забытому geo.webnabor.com.
Образно говоря:
Эта история началась 7 лет назад, в 2008 году, в глубинах Wikimapia. Это топик писался два раза с промежутком в год, и в итоге написан на полтора года позже первых сроков. Было много интерлюдий, комедий и трагедий, и сейчас время антракта. Кушать подано — github.com/esosedi/regions
Пользуясь случаем проведу опрос — хотели ли бы вы такую карту административных делений?А то она у меня есть:
![](https://habrastorage.org/files/adc/533/6bb/adc5336bb3354a22ad2df64f9a9a27f1.png)
Вы наверное замечали, что Google.Карты умеют подсвечивать контура городов. С недавнего времени такое есть и на Яндекс.Картах. Мало кто знает, что геометрия есть и на eSosedi.
А вот когда такая возможность появится на вашем сайте — теперь зависит только от тебя %username%.
Для достижения эффекта достаточно зайти на data.esosedi.org или GitHub, ознакомиться с документацией библиотеки osmeRegions и начать использовать.
P.S.: 3 признака того, что год минувший все сделал красиво: 1. Районы 2. Кварталы. 3. Детализация до «Жилые массивы» доступна для некоторых городов.
OSMeRegions — это и библиотека и сервис, который позволяет отображать данные административного деления на основе OpenStreetMap на карте. Старшый брат модуля регионов Яндекс.Карт.
Изначальная задача заключалась в попытке улучшить адресацию гео-привязанных обьектов на esosedi. Потому что работа у нас такая. Как говорилось на спарке:
«Представим, что в вашем городе есть Улица Ленина. Так вот — в соседнем городе она тоже есть».
Все началось с стандарта ISO3166-2, который определяет буквенную индексацию стран и регионов. Москва, для примера — RU-MOW. Лично мне никогда не нравилось адресация обьектов на «гео» сайтах — в урле нет никакого «ЧПУ подобного» указания локации. Все ссылки одинаковые и не понятно про что идет речь. Одновременно были проблемы с геокодером — с определением административного адреса.
В общем это была присказка, впереди было обьединение данных OSM с GeoNames, парсинг Wikipedia, реализация прямых и обратный геокодеров, нахождение смерти Кащеевой, и написание пачки «детранслитеризаторов» чтобы получить читабельные нашим человеком названия регионов.
![](https://habrastorage.org/files/0a0/da8/121/0a0da8121ad748e49f5accc9c545cd82.gif)
(не умею я такие гифки делать, картинка из топика AirBnb)
Что вы хотите — раскрашивать страны по некой схеме, или делать из Новой Москвы Старую — ваше дело.
Команда только одна:
osmeRegions.geoJSON(addr, options, callback)
Где addr — имя региона мира(или просто мира), код страны или региона в формате 3166-2, или OpenStreetMap RelationId. А остальное — схемы, фильтры, рекомбинации — по желанию.
Hint: relationId можно получить зайдя на нужное место на esosedi — вся информация так указана. Либо воспользоваться «навигатором» на data.esosedi.org — он для этого и создан.Это не какой-то там topojson, это АПИ к «ручке» которая готова отдавать вам данные по паре сотен тысяч административных элементов. При этом из ручки выходит GeoJSON, которым можно кормить тот же d3. В общем это решение.
Мир![]() |
Большая Москва![]() |
Старая Москва (рекомбинация)![]() |
Новая Москва![]() |
Крым Наш (рекомбинация)![]() |
Крым Ваш![]() |
Рекомбинация — это когда уже на клиенте вы сами определяете как собрать регионы.
P.S.: Сервис может содержать, содержит и будет содержать ошибки.
P.P.S.: Ручка отдачи данных будет работать «вечно» на свой страх и риск. Когда начинала писаться эта статья я хотел дополнить эту фразу «покуда евро по 70 не будет». Как в воду глядел. Но ни что не мешает сохранять json файлы данных себе.
P.P.P.S.: Лицензия простая, но не одна — esosedi(CC BY-SA), OSM(CC-BY-SA+ODbL), Wikipedia(CC BY-SA), GeoNames(CC BY). Отдельное спасибо всеми забытому geo.webnabor.com.
Образно говоря:
esosedi, « Участники OpenStreetMap», Wikipedia, GeoNames(Хотя они и не требуют)
Эта история началась 7 лет назад, в 2008 году, в глубинах Wikimapia. Это топик писался два раза с промежутком в год, и в итоге написан на полтора года позже первых сроков. Было много интерлюдий, комедий и трагедий, и сейчас время антракта. Кушать подано — github.com/esosedi/regions