2016-07-14 28 views
1

In Python. Ich habe den Namen der Stadt/Postanschrift und möchte die Koordinaten eines Polygons herausfinden. Ich habe an vielen Orten darüber gelesen, konnte aber keine konkrete Anleitung bekommen.Get Stadt Polygon von Name

Dieser Code verwendet, um mir den Standort Lat lange, bei der Eingabe des Standortnamens, aber es funktioniert nicht! Plus, Ich möchte das Polygon aus dem Stadtnamen und nicht den Speicherort abrufen. Ich habe auch diese Website gefunden. http://overpass-turbo.eu/ wo ich den Namen der Stadt eingeben und die Polygonkoordinaten herunterladen kann, aber ich möchte das nicht jedes Mal manuell machen. Wenn ich 100 Städte habe, möchte ich sie nicht eins nach dem anderen eingeben und Geoson-Dokumente für alle herunterladen und sie dann in meinen Python-Abfragen wiederverwenden. Gibt es eine API, eine bessere Möglichkeit?

EDIT: Dies ist das Format des Exports.

{ 
    "type": "FeatureCollection", 
    "generator": "overpass-turbo", 
    "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.", 
    "timestamp": "2016-07-14T03:50:02Z", 
    "features": [ 
    { 
     "type": "Feature", 
     "id": "relation/127864", 
     "properties": { 
     "@id": "relation/127864", 
     "admin_level": "6", 
     "alt_name": "Soton", 
     "borough": "yes", 
     "boundary": "administrative", 
     "designation": "unitary_authority", 
     "name": "Southampton", 
     "name:ja": "サウサンプトン", 
     "name:ru": "Саутгемптон", 
     "name:sr": "Саутемптон", 
     "ons_code": "00MS", 
     "operator": "Southampton City Council", 
     "place": "city", 
     "population": "228600", 
     "ref:gss": "E06000045", 
     "ref:lau:1": "UKJ3200", 
     "ref:nuts:3": "UKJ32", 
     "source:ons_code": "OS_OpenData_CodePoint Codelist.txt", 
     "source:ref:gss": "ONS_OpenData", 
     "source:ref:lau:1": "ONS_OpenData", 
     "source:ref:nuts:3": "ONS_OpenData", 
     "type": "boundary", 
     "website": "http://www.southampton.gov.uk/", 
     "wikipedia": "en:Southampton", 
     "@geometry": "bounds" 
     }, 
     "geometry": { 
     "type": "Polygon", 
     "coordinates": [ 
      [ 
      [ 
       -1.479005, 
       50.8715095 
      ], 
      [ 
       -1.3219862, 
       50.8715095 
      ], 
      [ 
       -1.3219862, 
       50.9561307 
      ], 
      [ 
       -1.479005, 
       50.9561307 
      ], 
      [ 
       -1.479005, 
       50.8715095 
      ] 
      ] 
     ] 
     } 
    } 
    ] 
} 

Die geometrie.koordinaten ist was ich suche!

+0

„! * Dieser Code verwendet, um mich um den Ort zu geben, aber nicht mehr *“ - wenn diese Was Sie fragen, müssen Sie erklären, was es tun soll und was es tut - Fehler, falsche Ausgabe, etc. "* Gibt es eine API *" - wenn das Ihre Frage ist, sind Produktempfehlungen oder externe Ressourcenanfragen Off-Thema. "Gibt es einen besseren Weg?" - Wenn das deine Frage ist, musst du definieren, was "besser" für dich bedeutet und was du sonst noch versucht hast. "* Dies ist das Format des Exports. *" - Wenn dies Ihre Frage ist, sollten Sie Ihren Code wirklich bis jetzt haben ... genauer gesagt ... – TessellatingHeckler

+0

@TesselingHeckler Der Teil in Fett ist was ich bin Auf der Suche nach! – Blabber

Antwort

0

Ich bin mir nicht ganz sicher, was Ihre Frage ist. Aber Ihre Export gegeben, können Sie die Koordinaten aus ihm heraus mit:

export = """{ 
    "type": "FeatureCollection", 
    [..] 
    }""" 

import json 
results = json.loads(export) 
print results['features'][0]['geometry']['coordinates'][0] 

Versuchen Sie es online: https://repl.it/CbtH/0

+0

Dieser Code funktioniert. Ich hatte das schon versucht. Mein Punkt war ich habe viele Städte. Meine Frage war, diese nicht jedes Mal von der Website für jede Stadt zu exportieren. Gibt es eine automatische, API-basierte Art und Weise dies zu tun. – Blabber