saber obtener mis mapa longitud lector latitud google geográficas geograficas ejemplos coordenadas con como buscar web-services api geolocation geocoding street-address

web-services - obtener - mapa con coordenadas geográficas



Cómo obtener longitud y latitud para una dirección de calle programáticamente(y legalmente) (13)

Además del servicio web de geocodificación de Google antes mencionado, también existe un servicio competidor proporcionado por Yahoo . En un proyecto reciente donde la geocodificación se hace con la interacción del usuario, incluí el soporte para ambos. La razón es que he descubierto que, especialmente fuera de los EE. UU., Su manejo de ubicaciones más oscuras varía ampliamente. A veces Google tendrá la mejor respuesta, a veces Yahoo.

Uno debe saber: si Google realmente piensa que no sabe dónde está su lugar, le devolverá un error 602 indicando un error. Yahoo, por otro lado, si puede sacar una ciudad / provincia / estado / etc. de su mala dirección, devolverá la ubicación del centro de esa ciudad. Entonces debes prestar atención a los resultados que obtienes para ver si realmente son lo que quieres. Hay campos auxiliares en algunos resultados que le informan sobre esto: Yahoo llama a este campo "precisión" y Google lo llama "precisión".

Supuestamente, es posible obtener esto de Google Maps o de algún servicio de este tipo. (Las direcciones de EE. UU. Solo no son lo suficientemente buenas).




Los términos de servicio de Google le permitirán utilizar su API de geocodificación de forma gratuita si su sitio web es, a su vez, gratuito para que lo usen los consumidores. Si no, tendrá que obtener una licencia para Enterprise Maps.


Para usar con Drupal y PHP (y se puede modificar fácilmente):

function get_lat_long($address) { $res = drupal_http_request(''http://maps.googleapis.com/maps/api/geocode/json?address='' . $address .''&sensor=false''); return json_decode($res->data)->results[0]->geometry->location; }



Puedes probar esto en JavaScript para una ciudad como Kohat

var geocoder = new google.maps.Geocoder(); var address = "kohat"; geocoder.geocode( { ''address'': address}, function(results, status) { var latitude = results[0].geometry.location.lat(); var longitude = results[0].geometry.location.lng(); alert(latitude+" and "+longitude); } });


Si quiere hacer esto sin depender de un servicio, entonces descarga los archivos TIGER Shapefiles del Censo de EE. UU.

Usted busca la calle que le interesa, que tendrá varios segmentos. Cada segmento tendrá una dirección de inicio y una dirección final, e interpolará a lo largo del segmento para encontrar el lugar en el que se encuentra el número de su casa.

Esto te proporcionará un par de lon / lat.

Tenga en cuenta, sin embargo, que los servicios en línea emplean una gran cantidad de comprobación y corrección de direcciones, que también debe duplicar para obtener buenos resultados.

También tenga en cuenta que, a pesar de lo buenos que son los datos gratuitos, no es perfecto: las últimas calles no están allí (pueden estar en los datos que utiliza Google) y las calles pueden estar fuera de su ubicación real debido a imprecisiones en la encuesta. Pero para el 98% de las necesidades de geocodificación, funciona perfectamente, es gratis y usted controla todo para reducir las dependencias en su aplicación.

Openstreetmaps tiene el objetivo de mapear todo en el mundo, aunque no están del todo allí, vale la pena mantener el control ya que proporcionan sus datos bajo una licencia CC

Sin embargo, muchos (¿la mayoría?) Otros países solo son mapeados por el gobierno o los servicios por los cuales debe pagar una tarifa. Si no necesita geocodificar muchos datos, entonces usar Google, Yahoo o algunos de los otros servicios gratuitos de mapeo mundial puede ser suficiente.

Si tiene que geocodificar una gran cantidad de datos, lo mejor será que arrendar datos de mapas de un proveedor importante, como teleatlas.

-Adán


Si quieres hacer esto en Python:

import json, urllib, urllib2 address = "Your address, New York, NY" encodedAddress = urllib.quote_plus(address) data = urllib2.urlopen("http://maps.googleapis.com/maps/api/geocode/json?address=" + encodedAddress + ''&sensor=false'').read() location = json.loads(data)[''results''][0][''geometry''][''location''] lat = location[''lat''] lng = location[''lng''] print lat, lng

Tenga en cuenta que Google parece acelerar las solicitudes si se ve más de una cierta cantidad, por lo que desea utilizar una clave API en su solicitud HTTP.



También puede probar el NameFinder , que contiene datos de calle de código abierto y tipo wiki para (potencialmente) todo el mundo. NameFinder dejará de existir a fines de agosto, pero Nominatim es su reemplazo.


Tenía un lote de 100.000 registros para ser código geográfico y cumplí con el límite de la API de Google (y dado que era para una aplicación empresarial interna, tuvimos que actualizar a su servicio premium que es de $ 10K más)

Entonces, usé esto en su lugar: http://geoservices.tamu.edu/Services/Geocode/BatchProcess/ - también tienen una API. (el costo total fue alrededor de ~ 200 $)


Código R para obtener la latitud y la longitud de una calle

# CODE TO GET THE LATITUDE AND LONGITUDE OF A STREET ADDRESS WITH GOOGLE API addr <- ''6th Main Rd, New Thippasandra, Bengaluru, Karnataka'' # set your address here url = paste(''http://maps.google.com/maps/api/geocode/xml?address='', addr,''&sensor=false'',sep='''') # construct the URL doc = xmlTreeParse(url) root = xmlRoot(doc) lat = xmlValue(root[[''result'']][[''geometry'']][[''location'']][[''lat'']]) long = xmlValue(root[[''result'']][[''geometry'']][[''location'']][[''lng'']]) lat [1] "12.9725020" long [1] "77.6510688"