2012-11-18 18 views
8

Voglio sapere fino a che punto una coordinata geografica specifica proviene da un elenco di città ("lontano" che indica la distanza euclidea tra la coordinata e la città, non tenendo conto delle strade). Per questo ho bisogno di trovare un riquadro di delimitazione per ciascuna città, tutte situate in Israele.Ottenere bounding-box della città

This post discute le caselle di delimitazione dei paesi, ma ho bisogno di queste a livello di città.

C'è un modo per ottenere queste informazioni per una lunga lista di città, oltre a disegnare rettangoli a mano su una mappa ed estrarre le coordinate?

risposta

10

È possibile trovare il riquadro di delimitazione di tali città allo www.mapdevelopers.com/geocode_bounding_box.php. Entrando in una città verrà visualizzata una casella su una mappa e verrà indicata la latitudine e la longitudine di ciascun lato. Spero che questo ti fornisca le informazioni di cui hai bisogno.

1

Penso che non siano necessarie caselle di delimitazione, ma confini di città. Perché con le scatole di delimitazione la tua analisi sarà molto approssimativa, e per ottenere un riquadro di delimitazione hai comunque bisogno di un confine.

Se ora hai solo un elenco di città, devi ottenere i dati spaziali, i confini di tutte le tue città. Per trovare questi dati puoi provare this links. Suggerirei di controllare Open Street Maps. Quindi puoi utilizzare qualsiasi software GIS (ad esempio, GIS quantistico open source) e calcolare lì le distanze euclidee tra il tuo punto e i confini della città.

Spero che questo aiuti.

3

Per un lungo elenco di città, utilizzare Google Geocoding service. Una volta impostato, puoi utilizzare qualsiasi lingua per accedere all'API REST. Ad esempio, è possibile utilizzare la popolare libreria standard requests per Python.

Oppure, puoi utilizzare Google Maps di Google Java API, Python API o JavaScript API. Ognuna di queste contiene il servizio Google Geocoding.

Vedere alcuni semplici esempi della libreria Python e Java qui: https://developers.google.com/maps/documentation/webservices/client-library.

Ecco lo schema per i risultati Geocoding:

results[]: { 
types[]: string, 
formatted_address: string, 
address_components[]: { 
    short_name: string, 
    long_name: string, 
    postcode_localities[]: string, 
    types[]: string 
}, 
partial_match: boolean, 
place_id: string, 
postcode_localities[]: string, 
geometry: { 
    location: LatLng, 
    location_type: GeocoderLocationType 
    viewport: LatLngBounds, 
    bounds: LatLngBounds 
} 
} 

La casella di delimitazione si trova nella variabile geometry>viewport e assomiglia a questo

"viewport" : { 
      "northeast" : { 
       "lat" : 37.4238253802915, 
       "lng" : -122.0829009197085 
      }, 
      "southwest" : { 
       "lat" : 37.4211274197085, 
       "lng" : -122.0855988802915 
      } 
     } 
Problemi correlati