Сбор и геокодирование адресов всех домов с портала mosopen
npm i
или
yarn
доступные скрипты:
parse
- сбор адресовaggregate
- агрегация в списокgeocode
- геокодирование(алиас наgeocode:dadata
)geocode:dadata
- использование сервиса dadatageocode:geoconcept
- использование сервиса geoconcept
all
- последовательный запускparse
,aggregate
иgeocode
все шаги(parse
, aggregate
, geocode
) запускаются последовательно, с помощью
npm run all
можно запустить сразу все. предварительно запустив Chrome в дебаг
режиме. Подробнее тут.
в директории src/tasks
находятся задачи на парсинг, запускать можно
последовательно и передавать результат с прошлого шага в следующую задачу
как сделано в src/index.ts
.
собрать регионы -> собрать улицы региона -> собрать дома на этих улицах
команда для парсинга всех адресов:
npm run parse
результат записывается в addresses.json со следующим форматом:
[
{
"full_name": "Полное название района",
"link": "Ссылка района на портале",
"name": "Сокращенное название района",
"code": "Код района на портале(транслит сокращенного названия)",
"streets": [
{
"id": "Уникальный ID улицы на портале",
"link": "Ссылка улицы на портале",
"name": "Название улицы",
"houses": [
{
"full_name": "Адрес с улицей и номером дома",
"link": "Ссылка дома на портале",
"name": "Номер дома"
}
]
}
]
}
]
данные берутся из addresses.json и помещаются в addresses_list.json
команда для аггрегации адресов(только после сбора адресов):
npm run aggregate
на выходе будут данные следующего формата:
Название города(Москва), название улицы, номер дома
[
"Москва, Проспект 60-летия Октября, дом 3, строение 1",
"Москва, Проспект 60-летия Октября, дом 23, корпус 1",
"Москва, Большая Черёмушкинская улица, дом 22",
"Москва, Большая Черёмушкинская улица, дом 25 А, строение 7"
]
на данный момент поддерживаются два геокодера, dadata
и geoconcept
.
список адресов берется из addresses_list.json и адреса с координатами записываются в addresses_with_geo.json
для работы геокодера нужен запущенный Chrome в режиме дебага, CDP URL
необходимо передать в переменной cdp_url либо через файл .env
,
либо через аргумент cdp_url
(--cdp_url=ws://...
)
geoconcept
npm run geocode:geoconcept
dadata
npm run geocode:dadata
или(dadata)
npm run geocode