Wie man eine Stadt geocodiert

8

Ich weiß, dass ich einfach eine beliebige Anzahl von Geokodierungs-APIs aufrufen kann, um dies für mich durchzuführen. Dies ist mehr eine Neugier als alles andere.

Wie kann jemand (wie Google) aus einem Städtenamen einen Breiten- und Längengrad machen? Wenn man mit Google Maps herumspielt, scheint es, dass eine Stadt die meiste Zeit auf die Innenstadt ausgerichtet ist, aber es scheint keinen Grund zu geben, warum eine Straßenecke über eine andere Straßenecke gezogen wird.

Ich bin nur gespannt, welchen Algorithmus ein Geokodierungsdienstleister für die Durchführung einer solchen Aktion verwenden würde.

Jason Whitehorn
quelle

Antworten:

5

Die Platzierung der Etiketten dient häufig dazu, die Lesbarkeit der Karte zu verbessern, anstatt direkt von den Daten gesteuert zu werden. Oft wird eine kartografische Verschiebung der ursprünglichen Geometrien durchgeführt, um die Lesbarkeit der Karte zu verbessern. 41Latitude hatte einen großartigen Artikel über die Platzierung von Stadtlabels, an dem Sie interessiert sein könnten.

Der USGS GeoNames aka GNIS (ein häufig verwendeter gemeinfreier Gazetteer, der z. B. von Geonames.org, Wikipedia, OpenStreetMap verwendet wird) bietet diesen Hinweis :

... Die Richtlinie zum Digitalisieren von Flächenmerkmalen verlangt, dass die Primärkoordinaten im Zentrum genommen werden, aber die Lage des Zentrums einer Großstadt ist manchmal etwas subjektiv.

Wenn Sie das Zentrum einer Stadt algorithmisch auswählen möchten, können Sie den Schwerpunkt eines Polygons verwenden, das die Stadtgrenzen abgrenzt, oder vielleicht etwas Anspruchsvolleres wie die Verwendung des Zentrums der Alpha-Form .

scw
quelle
Wird es wirklich durch Berechnung von Zentroiden gemacht - in Wirklichkeit? ... Sie haben Recht mit der Kennzeichnung, aber das war nicht die Frage.
Underdark
Da eine Stadt kein Punktphänomen ist, wird bei der Platzierung von Etiketten häufig ein einzelner geokodierter Ort in großen und mittleren Maßstäben verwendet, und in kleinen Maßstäben ist die Präzision weniger wichtig.
scw
Meinst du nicht kleine und mittlere Maßstäbe? (Weltkarte = kleiner Maßstab, Stadtplan = großer Maßstab)
Sean
@ Sean ja, Tippfehler vom Umschreiben; danke für das Heads-up
scw
3

Ich bezweifle, dass es dafür einen universellen Algorithmus gibt. Geokodierungsanbieter kaufen ihre Adressdaten von einem Anbieter. Dieser Anbieter - oder wer auch immer die Daten sammelt - entscheidet einfach, wo sich das „Stadtzentrum“ befindet (basierend auf seiner Kenntnis des Gebiets).

Unterdunkel
quelle
0

Dies ist möglicherweise nicht die Antwort, nach der Sie wirklich suchen, könnte aber eine alternative Lösung sein (von Statistikern bewertet):

Wenn Sie die Geocodes einiger Städte kennen und auch die Entfernungsmatrix zwischen den Städten kennen, können Sie beispielsweise ein MDB durchführen , um die Geocodes jeder Stadt basierend auf den Entfernungen zu berechnen. Einige Geocodes sind nur erforderlich, um die "Oberseite" und "Unterseite" der Karte zu erhalten, da MDS eine wirklich genaue Karte Ihrer Städte zeichnet :)

Aber zurück zur Frage: eine wirklich gute! Ich kann definitiv leicht Breiten- und Längengrade in einer Stadt mit Hilfe der Geokodien von Häusern an den Straßenecken berechnen, habe aber keine genaue Vorstellung davon, wie jemand die Geokodien von Städten berechnen könnte, ohne z. B. die oben gezeigte Entfernungsmatrix zu kennen.

Ich gehe davon aus, dass Google (und andere) die Karten nur von denen kaufen, die sie haben (wie es in Pastete sicher an mehreren Stellen gemacht wurde, siehe diesen Artikel von cnet), oder sie müssten diese erfinden, indem sie alle Websites bereisen, die dies könnten verbrauchen viele Ressourcen.

daroczig
quelle
0

Hier bei Geocode.Farm werden die Grenzdaten gespeichert und anschließend mithilfe eines Algorithmus ein Quadrat oder ein Kreis erstellt (abhängig von der Form der Grenzen). Das Zentrum wird dann berechnet und das verwenden wir für die zurückgegebenen Koordinaten.

Haftungsausschluss : Ich arbeite für Geocode Farm

Geocode.Farm Staff
quelle