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).Cómo obtener la longitud y la latitud de una dirección de calle programáticamente (y legalmente)
Respuesta
El término que busca es la codificación geográfica y sí Google proporciona este servicio.
Puede echar un vistazo a los documentos de la API de Google Maps aquí para conseguir un comienzo en esto:
http://code.google.com/apis/maps/documentation/services.html#Geocoding
También parece que hay algo que se puede hacer por las direcciones internacionales utilizando Live Maps también:
http://virtualearth.spaces.live.com/blog/cns!2BBC66E99FDCDB98!1588.entry
Si usted quiere hacer esto sin depender de un servicio, entonces se descarga el TIGER Shapefiles a partir 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 le 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 tan bueno como los datos gratuitos, no es perfecto: las últimas calles no están ahí (pueden estar en los datos que usa Google) y las calles pueden estar fuera de su ubicación real para investigar imprecisiones. 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.
OpenStreetMap tiene el objetivo de mapear todo en el mundo, aunque no son muy allá que vale la pena mantenerse al tanto de lo que ofrecen a sus datos bajo una licencia CC
Sin embargo, muchos (la mayoría?) Otros países están solo mapeado por el gobierno o 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
Esto no funcionaría (para esta pregunta, en general, suena bien para los EE. UU.), Ya que la pregunta ya indica que una solución que solo funciona para direcciones de EE. UU. no sería una solución aceptable. – peSHIr
Eso es cierto, pero originalmente la pregunta no decía esto: las ediciones realizadas por el autor dentro de los 15 minutos posteriores a la publicación original no se consideran modificaciones. Aún así, actualizaré la respuesta. –
Además de la mencionada Google geocoding web service, también hay un competir service provided by 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.
Hay que tener en cuenta: si Google realmente piensa que no sabe dónde está su lugar, le devolverá un error 602 que indica 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".
Un jsfiddle con un ejemplo del reemplazo del servicio de Yahoo, ovimaps de Nokia: http://jsfiddle.net/MgjGr/ –
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 libre para que lo usen los consumidores. Si no, tendrá que obtener una licencia para Enterprise Maps.
También puede probar el OpenStreetMapNameFinder, 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.
También puede hacerlo con los servicios web de MapPoint de Microsoft.
Aquí hay un post que explica cómo: http://www.codestrider.com/BlogRead.aspx?b=b5e8e275-cd18-4c24-b321-0da26e01bec5
El enlace anterior parece estar roto –
Google se requiere para mostrar un mapa de Google con sus datos, con un máximo de 2,5 k (era 25k) peticiones HTTP por día. Útil pero tienes que mirar el uso.
Tienen
http://groups.google.com/group/Google-Maps-API/web/resources-non-google-geocoders
(ya que Google ha eliminado esta. Si ve un duplicado o caché, voy enlace a esa.)
... en el que encontré GeoNames que tiene un servicio descargable de bases de datos, servicio web gratuito y un servicio web comercial.
Desafortunadamente, parece que el enlace groups.google.com ya no existe. Gracias por el enlace geonames sin embargo, parece prometedor! – Funka
Punto de corrección/aclaración: Google "v3" API permite 2.500 solicitudes por día (por dirección de IP!), No 25k. Consulte https://developers.google.com/maps/documentation/geocoding/#Limits – Funka
Actualizado. Gracias, Funka. –
Para su uso con Drupal y PHP (y fácilmente modificable):
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;
}
¡Súper! Gracias a Dios, leí toda la respuesta, esa es y puedo encontrar tu respuesta. ¿Debo saber si hay alguna restricción para usar esta url en php normal? como número de solicitud por día? @Nate – Rajesh
R código para obtener la latitud y longitud de una dirección de 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"
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 Otorga solicitudes si ve más de una cierta cantidad, por lo que desea utilizar una clave API en su solicitud HTTP.
que tenía un lote de 100.000 registros que se van codificación geográfica y se encontró con el límite de la API de Google (y ya que era para una aplicación interna de la empresa, hemos tenido que actualizar a su servicio premium, que es $ 10K más)
Así , Usé esto en su lugar: http://geoservices.tamu.edu/Services/Geocode/BatchProcess/ - también tienen una API. (El costo total fue de alrededor de ~ 200 $)
Puede probar esto en JavaScript para 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);
}
});
- 1. Obtener latitud/longitud desde la dirección
- 2. ¿Cómo obtener la longitud y la latitud de cualquier dirección?
- 3. Longitud y latitud desde la dirección IP
- 4. Obtener Latitud Longitud desde una dirección C#
- 5. ¿Cómo obtener la latitud y la longitud para una ciudad o calle en particular sin utilizar google map?
- 6. Obtener latitud y longitud desde la dirección sin el uso de la API de Google
- 7. Obtener latitud y longitud de marcador (onclick)
- 8. Obtener código postal de latitud y longitud?
- 9. Cuál es la forma más sencilla de obtener la latitud y la longitud de un usuario desde una dirección IP
- 10. API de geolocalización de Google: ¿utiliza la longitud y la latitud para obtener la dirección en el cuadro de texto?
- 11. ¿Cómo puedo encontrar la latitud y la longitud desde la dirección?
- 12. Cómo validar latitud y longitud
- 13. obtener la zona horaria utilizando latitud y longitud?
- 14. obtener la latitud y longitud usando código postal
- 15. iphone google maps - dirección usando latitud y longitud
- 16. ¿Cómo obtener la longitud y la latitud de la ubicación actual en iOS 4.0/4.2?
- 17. Cómo obtener la información de latitud y longitud de la imagen
- 18. ¿Cómo obtener ubicación (latitud y longitud) en variable en iOS?
- 19. Obtener el país de latitud longitud
- 20. Mapa de calor de latitud y longitud
- 21. MKMapView Latitud y longitud Coordenadas
- 22. configuración de la tabla de latitud y longitud de MySQL
- 23. ¿Cómo obtener la latitud y la longitud en el mapa en Android?
- 24. Obtener una dirección en la lat par/larga
- 25. ¿La latitud y la longitud pueden encontrar el código postal?
- 26. Obtener resultados de mysql basado en la longitud de latitud
- 27. ¿Cómo obtengo la latitud y la longitud correctas de una foto de iPhone cargada?
- 28. Obtener latitud y longitud desde un archivo GeoTIFF
- 29. Obtener altitud por longitud y latitud en Android
- 30. Encontrar un conjunto de latitudes y longitudes utilizando la latitud, longitud y dirección actual del usuario para ver un objeto
Excelente!La sección "Geocodificación vía HTTP" parece ser lo que estoy buscando. –
Solo asegúrese de cumplir con las reglas de uso. Creo que Google solo permite el uso de esto si muestra las ubicaciones en un mapa de Google. No está permitido usarlo para otros fines, pero debe verificar las reglas de licencia y uso. – peSHIr
v2 (en desuso desde 2010) se está cerrando completamente en solo unos pocos meses (mayo de 2013), ¡así que recomiendo no construir nada nuevo con este! – Funka