Нужна машина на linux (Ubuntu 22.04.2 LTS x86_64), минимум 16gb оперативной памяти и 500gb на жестком диске
-
Гуглим
openstreetmap dump adresses
-
Скачиваем и собираем addressextract
-
Скачиваем и собираем Osmconvert
-
Скачиваем planet.osm в формате
*.pbf
-
Получаем город в openstreetmap.org/relation. Нажмите экспорт, скопируйте координату из ссылки для пункта 5
-
Запускаем команду
./osmconvert planet*.pbf -b=ЛЕВО,НИЗ,ПРАВО,ВЕРХ -o output.pbf
(например:./osmconvert planet*.pbf -b=69.0547,41.1949,69.5433,41.3908 -o=output.pbf
), примерно час времени -
Запускаем команду
./addressextract/addressextract -i output.pbf > addresses.json
-
Добавляем пробелы и переносы строк (опционально)
npx prettier -w ./addresses.json
-
Высчитываем общий набор полей
node -e "console.log(require('./addresses.json').addresses.reduce((acm, cur) => ({...acm, ...cur}), {}))"
{
bbox: [ 69.2036071, 41.2533611, 69.2037432, 41.2534634 ],
geomcounty: 'Chilonzor Tumani',
id: '1182666580',
lat: '41.253412',
lon: '69.203675',
source: 'way',
street: "Bunyodkor shoh ko'chasi",
housenumber: '1',
city: 'Ташкент',
postcode: '100000',
place: 'Chilonzor 20 mavze',
housename: "Bahtiyor Do'koni"
}
Нужно
city
- городgeomcounty
- районplace
- кварталstreet
- улицаhousename
- имя дома (опционально)housenumber
- номер дома
Не нужно
postcode
- почтовый код (опционально)
P.S. проблемы с addressextract
, так как libgdal30
выпилили из репо Ubuntu 23.10. Ежели чем пытаться установить или запуститься из-под докера, проще пересобраться, там буквально 3 минуты делов если без виртуалки