После того как не нашёл несколько нужных поликлиник, зашёл на сайт департамента здравоохранения Москвы (mosgorzdrav.ru) и увидел, что там в более-менее систематизированном виде есть основная информация о поликлиниках (и ещё аптеках, больницах, …).
Написал парсер (python + scrapy + phonenumbers), который вытащил следующую (основную и легкопарсимую) информацию (кусок кода с комментами):
class Item(scrapy.item.Item):
# example for response:
# Городская поликлиника № 46 Амбулаторный центр
# 105064, г. Москва, ул. Казакова, д. 17А
# Справочная служба: (499) 267-77-65, 267-79-06
# www.mosgorzdrav.ru/gp46
name = Field() # u"Городская поликлиника № 46 Амбулаторный центр"
address = Field() # u"г. Москва, ул. Казакова, д. 17А"
phones = Field() # ["+7 499 267-77-65", "+7 499 267-79-06"]
website = Field() # u"www.mosgorzdrav.ru/gp46"
Столкнулся с проблемой: естественно, что на mosgorzdrav.ru в описании нет osm node id, но есть адрес. Пробовал nominatim (через веб-интерфейс http://nominatim.openstreetmap.org), ему был не по зубам адрес, взятый с сайта (“г. Москва, ул. Фруктовая, д. 12”), когда убрал статусные названия (“Москва, Фруктовая, 12”) нашёл. Однако через python-интерфейс к нему (geopy) не сработал ни один из вариантов. Только после изменения на “12, Фруктовая, Москва” он нашёл координаты… но не те. Как можно по адресу получить node id?
Если эта проблема будет решена, то я правильно понимаю, что для импорта в osm через josm хорошо подойдёт osmsync?
Как оценивает сообщество данный импорт?
Исходники, информация об использовании и пример извлечённой информации (в csv) находятся здесь: https://bitbucket.org/rominf/osm-mosgorzdav.