https://github.com/tripolskypetr/openstreetmap-list-addresses
https://github.com/tripolskypetr/openstreetmap-list-addresses
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tripolskypetr/openstreetmap-list-addresses
- Owner: tripolskypetr
- Created: 2024-03-03T18:10:04.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-03-03T20:13:41.000Z (over 1 year ago)
- Last Synced: 2025-02-12T10:31:30.773Z (8 months ago)
- Size: 3 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Как получить список всех адресов в городе
> Нужна машина на linux (Ubuntu 22.04.2 LTS x86_64), минимум 16gb оперативной памяти и 500gb на жестком диске
## Дампим адреса
0. Гуглим `openstreetmap dump adresses`
1. Скачиваем и собираем [addressextract](https://github.com/flohoff/addressextract)
2. Скачиваем и собираем [Osmconvert](https://wiki.openstreetmap.org/wiki/Osmconvert)
3. Скачиваем [planet.osm](https://planet.openstreetmap.org/) в формате `*.pbf`
4. Получаем город в [openstreetmap.org/relation](https://www.openstreetmap.org/relation/2216724#map=11/41.2931/69.2993). Нажмите экспорт, скопируйте координату из ссылки для пункта 5
5. Запускаем команду `./osmconvert planet*.pbf -b=ЛЕВО,НИЗ,ПРАВО,ВЕРХ -o output.pbf` (например: `./osmconvert planet*.pbf -b=69.0547,41.1949,69.5433,41.3908 -o=output.pbf`), примерно час времени
6. Запускаем команду `./addressextract/addressextract -i output.pbf > addresses.json`
7. Добавляем пробелы и переносы строк (опционально) `npx prettier -w ./addresses.json`
8. Высчитываем общий набор полей `node -e "console.log(require('./addresses.json').addresses.reduce((acm, cur) => ({...acm, ...cur}), {}))"`
## Сериализуем структуру в адрес
```javascript
{
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` - номер домаНе нужно
7. `postcode` - почтовый код (опционально)
## Дополнительно
P.S. проблемы с `addressextract`, так как `libgdal30` выпилили из репо Ubuntu 23.10. Ежели чем пытаться установить или запуститься из-под докера, проще пересобраться, там буквально 3 минуты делов если без виртуалки
## Переводим на русский
