Im allerersten Teil haben wir eine bedingte Stadt aus einem großen Datensatz herausgeschnitten und nur Daten mit einer Adresse darin belassen. Die Adressen wurden als zu dieser Stadt gehörend interpretiert. Jene. wusste genau, in welchem Land sie waren, in welcher Region und so weiter. Aber was ist, wenn wir die Adressen nicht eines Ortes, sondern einer ganzen Region oder vielleicht sogar mehrerer Länder benötigen? Woher weißt du, woher er kommt?
Und obwohl in OpenStreetMap für jedes Haus angegeben werden kann, in welchem Land, in welcher Region und weiter unten in der Hierarchie es sich befindet, wird in Russland eine abgekürzte Methode verwendet - d. H. nur Straße und Hausnummer. Alle Affenarbeiten zur Strukturierung der Adresse werden vom Computer für uns erledigt. Er wird es schneller und korrekter machen, wenn ihm natürlich alle notwendigen Daten zur Verfügung stehen.
Ausbildung
Ich werde in Saransk oder besser gesagt in seinem Stadtviertel experimentieren - indem ich es mit einem Rechteck ausschneide, mit der folgenden Abdeckung: der unteren Grenze (45 54), der oberen (45,5 54,3). Ich speichere den Schnitt aus dem Speicherauszug im PDF-Format, da das folgende Tool damit funktioniert:
osmconvert -b=45,54,45.5,54.3 RU-local.o5m -o=SaranskGO.pbfJetzt besteht die ganze Idee darin, allen Gebäuden Tags mit einer Adresse hinzuzufügen, in der sie sich befinden. Dies wird durch Eingabe der Geometrie des Hauses in die Kontur der Siedlung berechnet. Dazu benötigen wir das OsmAreaTag- Plugin für die Osmose (eine detailliertere Beschreibung des Plugins vom Autor ). Der Autor hat hier die kompilierte Version des Plugins gepostet . Die Osmose selbst kann vom Github aufgenommen werden . Dies ist eine Java- Anwendung, daher ist klar, ohne was sie nicht funktioniert.
Plugin installieren
osmosis osmareatag plugins , . , windows c:\Users\<>\.openstreetmap\osmosis\plugins c:\Users\<>\AppData\Roaming\openstreetmap\osmosis\plugins. , osmareatag-1.3.zip plugins.
. :
<?xml version="1.0" encoding="UTF-8"?>
<tag-processing>
<area id="national-boundary" cache-file="national-boundary.idx">
<match type="relation">
<tag k="boundary" v="administrative"/>
<tag k="admin_level" v="2"/>
</match>
</area>
<transform>
<name>Country</name>
<match>
<tag k="building" v=".*"/>
<tag k="addr:housenumber" v=".*"/>
<inside area="national-boundary"/>
</match>
<output>
<add-tag k="addr:country" v="${ISO3166-1}" context-area="national-boundary"/>
</output>
</transform>
</tag-processing> — . area id, , . match , OSM, . , .. . cache-file OSM . - , - , . , .
— , transform. match , : inside , area .
, output , , , , , national-boundary ISO3166-1. , .
, , , . . , , .
:
<?xml version="1.0" encoding="UTF-8"?>
<tag-processing>
<area id="place">
<match>
<tag k="place" v="city|town|village|hamlet|isolated_dwelling|allotments"/>
</match>
</area>
<transform>
<name>Place</name>
<match>
<tag k="building" v=".*"/>
<tag k="addr:housenumber" v=".*"/>
<inside area="place"/>
</match>
<output>
<add-tag k="addr:city-auto" v="${name}" context-area="place"/>
</output>
</transform>
</tag-processing> addr:city-auto, , OSM. osm-xml, . :
call osmosis-0.48.3\bin\osmosis.bat --read-pbf SaranskGO.pbf --lp --tag-area-content file=tag-building-addr-place.xml --write-xml SaranskGO.place.osmtag-building-addr-place.xml - , .
.. - , . , . . .
<way id="103738775" version="2" timestamp="2019-09-20T18:28:15Z" uid="10124028" user="MarinaAR" changeset="74731679">
<nd ref="1197639591"/>
<nd ref="1197639690"/>
<nd ref="1197639206"/>
<nd ref="1197639237"/>
<nd ref="1197639591"/>
<tag k="building" v="yes"/>
<tag k="addr:city" v=""/>
<tag k="addr:street" v=" "/>
<tag k="addr:housenumber" v="5"/>
<tag k="addr:city-auto" v=""/>
</way>, . , , , CSV, QGIS. OSM, OSM , .. - . CSV.

Es ist zu sehen, dass ganze Dörfer falsch bezeichnet sind. Dies ist nur Müll im Namen der Siedlung. Dies ist die Verwirrung der Stadt Saransk und der gleichnamigen Gemeinde, zu der mehrere Siedlungen gehören. Oder umgekehrt, dort wird anstelle des Dorfnamens der Name der ländlichen Siedlung eingetragen. Auf dem Territorium der Stadt selbst können Sie mehrere Dutzend Punkte sehen, an denen der Name Tippfehler enthielt. Wie ich bereits sagte: Überlassen Sie dieses Geschäft Maschinen, auf denen Sie einen Fehler machen können. Eine Person wird einen Fehler machen.
Jetzt wurde nur noch der Name der Siedlung vergeben. Gleiches gilt analog für die Bindung an Siedlungen und Regionen von Ländern.