Как получить список всех адресов в городе

Нужна машина на linux (Ubuntu 22.04.2 LTS x86_64), минимум 16gb оперативной памяти и 500gb на жестком диске

Дампим адреса

  1. Гуглим openstreetmap dump adresses

  2. Скачиваем и собираем addressextract

  3. Скачиваем и собираем Osmconvert

  4. Скачиваем planet.osm в формате *.pbf

  5. Получаем город в openstreetmap.org/relation. Нажмите экспорт, скопируйте координату из ссылки для пункта 5

  6. Запускаем команду ./osmconvert planet*.pbf -b=ЛЕВО,НИЗ,ПРАВО,ВЕРХ -o output.pbf (например: ./osmconvert planet*.pbf -b=69.0547,41.1949,69.5433,41.3908 -o=output.pbf), примерно час времени

  7. Запускаем команду ./addressextract/addressextract -i output.pbf > addresses.json

  8. Добавляем пробелы и переносы строк (опционально) npx prettier -w ./addresses.json

  9. Высчитываем общий набор полей 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"
}

Нужно

  1. city- город
  2. geomcounty - район
  3. place - квартал
  4. street - улица
  5. housename - имя дома (опционально)
  6. housenumber - номер дома

Не нужно

  1. postcode - почтовый код (опционально)

Дополнительно

P.S. проблемы с addressextract, так как libgdal30 выпилили из репо Ubuntu 23.10. Ежели чем пытаться установить или запуститься из-под докера, проще пересобраться, там буквально 3 минуты делов если без виртуалки

Переводим на русский

./translate.png