• No se han encontrado resultados

Obtener Latitud y Longitud

N/A
N/A
Protected

Academic year: 2021

Share "Obtener Latitud y Longitud"

Copied!
5
0
0

Texto completo

(1)

Codigo:

Codigo:

javascript:

javascript:

voidvoid

(

(

prompt

prompt

(

(

''''

,gA

,gA

pplication.

pplication.

ge

ge

tMap

tMap

()

()

.

.

ge

ge

tC

tC

e

e

nt

nt

e

e

r

r

()));

()));

Major opción

Major opción

http://www.agenciacreativa.net/coordenadas_google_maps.php

http://www.agenciacreativa.net/coordenadas_google_maps.php

http://stevemorse.org/jcal/latlon.php

http://stevemorse.org/jcal/latlon.php

http://www.sunearthtools.com/dp/tools/pos_earth.php

http://www.sunearthtools.com/dp/tools/pos_earth.php

http://perso.wanadoo.es/juckar/

http://perso.wanadoo.es/juckar/

http://rahsuarez.wordpress.com/2010/06/12/convertir-latitud-longitud-al-geography-point-sql-server-2008/

sql-server-2008/

(2)

OTRA FORMA

Obtener la latitud y longitud de una dirección con Google Maps

y C#

Cuando trabajamos con Google Mapsusamos las latitudes y longitudes para definir los puntos, el centro del mapa, etc« Si no c onocemos esos d atos, pero sí la dirección de la ubicación, podemos ³geolocalizar  ³, es decir obtener las coordenadas con el objecto  ³geocoder ³.

Para poder obtener las coordenadas directamente vía C# y nogeolocalizar con javascript usaremos el objeto de C#WebRequesty WebResponsepara obtener directamente desde Google los datos que necesitamos y poder tratarlos en n uestra aplicación.

La idea es hacer las petiticiones a la URL de geolocalización de Google que es la siguiente:http://maps.google.com/maps/geo?q=Direccion

A esta url, se le deben especificar los siguientes parámetros:

q-> es la dirección que que remos geolocalizar

output -> es como queremos obtener la información del servicio. Puede ser xml, kml, csv o  json

key -> nuestra keyde la api de google.

En resumidas cuentas, nos queda una URL así, vamos a usar el formato CSV, así que lo especifico ya en el ejemplo:

http://maps.google.com/maps/geo?q=Mataro&output=csv&key=MI-KEY-API La url anterior debería mostrar en nuestros navegadores algo así:

200,4,41.5375002,2.4452776

Esos son los datos que necesitamos, una tira de valores separados por comas para poder trabajar con ellos.

El primer valor es el código de respuesta de la petición. Existen diferentes códigos en función de si todo ha ido bien, si se ha producido un error o si simplemente, la dirección no s e puede encontrar. Aquí hay una tabla que relaciona estos códigos:

y 200:No se han producido errores, la dirección se analizó correctamente y se devolvió su código

geográfico.

y 400:No se ha podido analizar correctamente la solicitud de ruta

y 500:No se ha podido procesar correctamente la solicitud de ruta o de c ódigos geográficos, sin

saberse el motivo exacto del fallo.

y 601:Falta el parámetro HTTP q o no tiene valor alguno. En las solicitudes de códigos geográficos,

esto significa que se ha especificado una dirección vacía. En las solicitudes de ruta, esto significa que no se ha especificado ninguna consulta.

y 602:No se ha encontrado una ubicación geográfica que se corresponda con la dirección

especificada. Esto puede deberse a que la dirección sea relativamente nueva o a que no sea correcta.

y 603:El código geográfico de la dirección indicada o de la ruta para la consulta de ruta

proporcionada no pued e devolverse por motivos jurídicos o c ontractuales.

y 604:El objeto GDirections no pudo calcular la ruta entre los puntos mencionados en la consulta.

Esto suele deberse a que no hay ni nguna ruta disponible entre los dos puntos o a que no tenemos datos para extraer rutas en la región en cuestión.

y 610:La clave proporcionada no es v álida o no coincide con el dominio para el cual se ha indicado y 620: La clave proporcionada ha sobrepasado el límite de solicitudes en un período de 24 horas.

El segundo grupo, es el 4 en el ejemplo, nos indica la precisión del resultado, de nuevo, hayuna tabla para relacionar todo esto:

y 0 Ubicación desconocida. y 1 Precisión a nivel de país.

(3)

y 2 Precisión a nivel de región (estado, provincia, prefectura, etc.). 3 Precisión a nivel d e subregión

(condado, municipalidad, etc.).

y 4 Precisión a nivel de ciudad o puebl o. y 5 Precisión a nivel de código postal. y 6 Precisión a nivel de calle.

y 7 Precisión a nivel de intersección. y 8 Precisión a nivel de dirección.

Y por último, los 2 restantes valores, lo que realmente queremos s aber,la latitud y la longitud.

Ahora solo nos queda hacer que nues tra aplicación recoja esos valores con un par de funciones simples:

stringconstructuirGeoURL(string direccion){ stringgeoURL = "";

if(direccion != ""){

direccion = direccion.Trim();

direccion = direccion.Replace(" ", "+");

geoURL = @"http://maps.google.com/maps/geo? q=###ADDRESS###& output=###OUTPUT###&key=###KEY###";

//Sustitución de las variables

geoURL = geoURL.Replace("###ADDRESS###", direccion); geoURL = geoURL.Replace("###OUTPUT###","csv");

geoURL = geoURL.Replace("###KEY###", ApiGoogle); }

returngeoURL; }

Con la función construirGeoURL(), vamos ha obtener la URL que después vamos a usar en la función cargarLatitudLatitud() que nos va a dar la latitud, longitud y el código d e respuesta de la petición.

voidcargarLatitudLatitud(string geoURL){ stringcsvValues = ""; stringLatitud = ""; stringLongitud = ""; stringRespuesta_geo = ""; try {

WebRequestobjWebRequest = WebRequest.Create(geoURL); WebResponseobjWebResponse = objWebRequest.GetResponse();

Stream objWebStream = objWebResponse.GetResponseStream();

using (StreamReaderobjStreamReader = new StreamReader(objWebStream)) {

csvValues = objStreamReader.ReadToEnd(); }

if (csvValues != null) {

string[] geoValues = csvValues.Split(new char[] { ',' }); if (geoValues.Length> 0)

{

Respuesta_geo = geoValues[0].ToString(); Latitud = geoValues[2].ToString();

Longitud = geoValues[3].ToString(); }

(4)

}

catch (Exception exp){

Response.Write(exp.Message); }

}

Para poder usar la función cargarLatitudLatitud(), hay que importar los espacios de nombres siguientes:

<%@ import Namespace="System.Net" %> <%@ import Namespace="System.IO" %>

Como podéis ver, el uso del objectoWebRequesty WebResponsees sencillo y nos permite trabajar con el servicio de Google Maps para geolocalizar directamente desde nuestras

aplicaciones C#.

¿Se os ocurre alguna forma de aprovechar otra característica de Google Maps sobre C#? Etiquetas: C#, geocoder, google, googlemaps, latitudes y longitudes

Esta entrada se publicó el 20de Marzo de 2009a las12:34 pm y está guardada bajo Programación de páginas Web. Puedes seguir cualquier respuesta a esta entrada mediante la fuente RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

12

Comentarios en ³Obtener la latitud y longitud de una dirección con Google Maps

y C#´

ane

dice:

Noviembre7, 2009en 2:53 pm

es q en internet no hay un estupido mapa de coordenadas geograficas??????

Elias

dice:

Mayo 3, 2010en 3:54 am

Muchas Gracias!!!, estoy haciendo u na aplicación en C#, donde bajo el mapa de Google

StaticMap y lo presento en una picture box para posteriormente guardar la imagen en una base de datos y lo que me hacia falta era una manera de buscar las latitudes y longitudes de una dirección dada.

Solo me gustaría preguntarte si hay alguna manera mas eficiente de hacer este proceso ya que mi programa tarda mucho tiempo en bajar la imagen.

Muchas gracias por este articulo esta muy buen o. : )

ddelgado

dice:

Mayo 3, 2010en8:33 am Hola, Eias,

El proceso tarda por la velocidad de conexión a Internet. Una forma de agilizarlo es ejecutando el programa en un servidor con un ancho de banda (de bajada) mucho mayor. Fíjate que hablo de un servidor por algo. Sin embargo, tienes que tener en cue nta que e xiste un límite de peticiones (diferentes) por API en un día. Revisa la documentación de Gmaps en Google«

Alejandro

dice:

Noviembre 26, 2010en9:14 pm

Olle gracias ppero una pre gunta cuando mando la geoUrl me aparece solo El error Y un Cero pero le doy la direccion bien y me devuelve eso nose si podrias ayudarme

Alejandro

dice:

Noviembre 26, 2010en9:40pm

o como l epaso la direccionpor que yo solo le di el nombre como por ejemplo culiacan

Luis

dice:

Diciembre1, 2010en10:10pm

Se puede obtener C# la direccion a partir de la longitud y latitud?

ddelgado

dice:

Diciembre 2, 2010en 3:13 pm

@Luis En efecto, solo es cuestión de seguir la documentación de la API de GoogleMaps en C#. Hace poco desarrollamos un sistema de d etección de geolocalizaciónvia GPS en C# de

(5)

dispositivos, para la ubicación de dispositivos portátiles de alquiler bastante chulo, haciendo servir todo esto.

Si encuentras dificultades con algún punto de la API, comént anoslo más concretamente. Un saludo,

ddelgado

dice:

Diciembre 2, 2010en 3:16pm

@Alejandro, para poder saber cuál es tu problema, nec esitaría que postees parte de tu código. De todas formas, te adelanto que los más útil es seguir la documentación de la API de Google. En cualquier caso, si te encuentras p erdido, lánzame el código y lo comentamos

Un saludo,

Luis

dice:

Enero 4, 2011en 2:22 am

Tengo el gps TM2200. Segun el manual envia su EMEI y a continuacion hay que envi arle en

binario el codigo 1para que empieze a enviar datos.

Lo hago asi pero no recibo ningun dato. El primero que recibo es el EMEI, que es un codigo de 15

digitos, a c ontinuacion le envio en binario el1, pero no recibo nada. Con el hyperterminalsi que

veo todos los codigos NMEA. Hay alguna otra forma de hacerlo?. Saludos, Luis

pablo

dice:

Enero 25, 2011en12:40pm Hola!

Muchas gracias por el post, me ha sido de mucha ayuda en un proyecto que estoy haciendo con Google Maps.

Un saludo y gracias de nuevo!

vale

dice:

Marzo8, 2011en6:12 am

necesito encontrar la latlong de muchas direcciones (de casas) hay algun programa que me permita sitematizar esto. es decir que lea la direccion de alguna lista y que devuelva en la misma lista la latitud y longitud?. sonmas de 500 casas o tengo que hacerlo manualmente?

gracias

ddelgado

dice:

Marzo8, 2011en8:37am

Lo puedes programar, si te es factible. Programarlo no es muy complicado. Yo llevaría ese listado de 500direcciones a una mini base de datos, para que después te sea mucho más fácil extraer la

información de la latitud y longitud de estas casas cuando quqieras, supong o que programando un sistema de representación.

Pero manualmente es de masiado trabajo. Si no puedes pr ogramar, contrata a alguien que lo haga or ti, en estos casos se gradece. No debería costarte más de 2 o 3 horas.

Si te avenuturas a hacerlo por tu cuenta, cualquier cosa pásate por aquí y la vemos. Un saludo,

Referencias

Documento similar

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

El iusnaturalismo había ofrecido, en su función crítica y a través de algunas de sus corrientes, una teoría deontológica de la Revolución, es decir, una teoría del derecho a