Uma vez eu precisava obter um subconjunto limpo da cidade a partir de dados brutos do OSM (porque é muito conveniente, compacto e simplesmente bonito). Para minha surpresa, não encontrei uma receita pronta, e é por isso que levei um pouco de suor para concluir esta tarefa.
Em vista do exposto, considero meu dever compartilhar minha experiência.

Suponha que eu queira obter um subconjunto de Chisinau (por quê? ... está quente lá, minha casa está lá, minha mãe está lá)
Obviamente, não estamos interessados no
Planet.osm , mas existe o
geofabrik , mas o planeta é cortado em shmatka bastante grande -
http://download.geofabrik.de/europe/moldova.htmlPortanto, a fronteira da cidade está nos
dados brutos .
É fácil obter um campo de teste de um relacionamento, o fazemos com as mãos ou com a ajuda de qualquer utilitário adequado, por exemplo,
este .
III ... agora a
osmose entra em
jogo .
Temos o osm de toda a Moldávia e a faixa limitadora de Chisinau. Isso é suficiente para obter o site da cidade a partir de um arquivo XML (OSM) bruto:
osmosis --read-xml file="moldova.osm" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm"
Da mesma forma, você pode extrair dados do arquivo PBF (Protocolbuffer Binary Format):
osmosis --read-pbf file="moldova.osm.pbf" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm"
Você pode
ler um pouco mais sobre osmose
aqui .
Bem, o subconjunto finalizado precisa ser aberto com urgência no JOSM ou importado para um projeto pessoal!

UPD:
Como o
zverik observou, todas as
opções acima serão muito mais fáceis de usar usando * osmium-tool * (
das docas )
1. Baixe o conjunto de dados do país
2. Extraia a fronteira da cidade
osmium getid -r -t moldova-latest.osm.pbf r1691801 -o kishinev-boundary.osm
3. Extraia a cidade do conjunto de dados
osmium extract -p kishinev-boundary-with-tags.osm moldova-latest.osm.pbf -s simple -o kishinev.osm
Preste atenção ao flak
-s simplesEsta é uma estratégia de extração e existem apenas três:
1. -s
simple - aparar estradas ao longo da fronteira
2. -s
complete_ways - não corta estradas de fronteira (
padrão )
3. -s
smart - extrai dependências de estradas nas fronteiras
O formato do arquivo de saída é determinado por sua extensão no comando
OSMIUM é uma ferramenta extremamente poderosa, conveniente e útil que é agradável de usar.