Partie finale d'OpenStreetMap: remplir la hiérarchie d'adresses

Dans la toute première partie , nous avons découpé une ville conditionnelle d'un grand ensemble de données et laissé uniquement les données contenant une adresse. Les adresses ont été interprétées comme appartenant à cette ville. Ceux. savaient exactement dans quel pays ils se trouvaient, dans quelle région, etc. Mais que se passe-t-il si nous avons besoin des adresses non pas d'une localité, mais d'une région entière, voire de plusieurs pays? Comment savez-vous d'où il vient?

Et bien que dans OpenStreetMap, il soit possible d'indiquer sur chaque maison dans quel pays, région et plus bas dans la hiérarchie il se trouve, en Russie, une méthode abrégée est utilisée - c.-à-d. seulement rue et numéro de maison. Tout le travail de singe sur la structuration de l'adresse sera fait pour nous par l'ordinateur. Il le fera plus rapidement et plus correctement, si, bien sûr, toutes les données nécessaires sont à sa disposition.

Entraînement

J'expérimenterai à Saransk , ou plutôt dans son quartier urbain - en le découpant avec un rectangle, avec la couverture suivante: limite inférieure (45 54), supérieure (45,5 54,3). J'enregistre la coupe de la décharge au format pbf, car l'outil suivant fonctionne avec:

osmconvert -b=45,54,45.5,54.3 RU-local.o5m -o=SaranskGO.pbf

Maintenant, l'idée est d'ajouter des balises à tous les bâtiments avec une adresse dans laquelle ils se trouvent. Cela sera calculé par l'entrée de la géométrie de la maison dans le contour de la colonie. Pour cela, nous avons besoin du plugin OsmAreaTag pour l' osmose (une description plus détaillée du plugin de l'auteur ). L'auteur a publié la version compilée du plugin ici . L'osmose elle-même peut être prélevée sur le github . Il s'agit d'une application Java , il est donc clair de quoi elle ne fonctionnera pas.

Installer le plugin

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.osm

tag-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.

Figure 1 addr: city n'est pas la même chose que addr: city-auto
.1 addr:city addr:city-auto

On peut voir que des villages entiers sont mal désignés. Ce ne sont que des ordures au nom de la colonie. C'est la confusion de la ville de Saransk et de la municipalité du même nom, qui comprend plusieurs colonies. Ou vice versa, à la place du nom du village, le nom de la colonie rurale y est inscrit. Sur le territoire de la ville elle-même, vous pouvez voir plusieurs dizaines de points où il y avait des fautes de frappe dans le nom. Comme je l'ai déjà dit: laissez ce métier aux machines, où vous pouvez faire une erreur, une personne fera une erreur.

Désormais, seul le nom de la colonie a été attribué. La même chose peut être faite par analogie pour la liaison aux colonies et aux régions des pays.




All Articles