Mostrar/Ocultar

 Calcular distancia sin mostrar mapa 🗺️ Foro Programación de Google Earth y Maps 🗺️


Foro de Programación de Google Earth y Maps Foro de Programación de Google Earth y Maps: Programación con las APIs de Google: Google Earth, Google Maps, KML, Aplicaciones Moviles
SubForos: Java - Kmz - Google Maps - Herramientas - Html - Javascript - Excel - Php - Programacion
Página 1 de 1 - Tema con 18 Mensajes y 29232 Lecturas
Último Mensaje:
Autor Mensaje

TonyJ
Usuario Reciente

Usuario Reciente
Registrado:
18-05-2010
Mensajes: 4

Votos: 0 👍
Enlaces Calcular distancia sin mostrar mapa
Responder citando
Wenas a tod@s.
He buscado en el foro pero no he encontrado un tema similar.

Lo que necesito es calcular la distancia que hay entre dos direcciones utilizando el API de Google Maps, pero sin mostrar ningún mapa.

¿Es posible? ¿Cómo?

Gracias Sonriente
Ir arriba TonyJ Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Buenos días TonyJ. No creo que haya ningún modo, la clase GRoute dispone del método GetDistance(), pero el constructor de GRoute (es el de GDirections) exige en la sintaxis una clase de mapa

De todos modos puede hacer que el contenedor de mapa sea pequeño, tal vez lo suficiente para que no te moleste.
Ir arriba _polifemo Compartir:

TonyJ
Usuario Reciente

Usuario Reciente
Registrado:
18-05-2010
Mensajes: 4

Votos: 0 👍
Responder citando
Gracias por la respuesta.

Si, había pensado en la posibilidad de ocultar el mapa de alguna forma.
Lo que dices es una buena opción.
Ir arriba TonyJ Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
TonyJ, que ayer me equivoqué. Pues el parámetro Gmap del constructor GDirections es un parámetro opcional. Si instancias GDirections con el parámetro panel, podras hacer lo que quieres.

Echale un ojo a esto:
code.google.com/ ...Directions

Un saludo y mil perdones.
Ir arriba _polifemo Compartir:

Jorge555
Usuario Reciente

Usuario Reciente
Registrado:
30-05-2010
Mensajes: 3

Votos: 0 👍
Responder citando
Hola,
Lo que yo estoy intentando hacer es obtener la distancia por carretera entre dos coordenadas mediante google maps, y hacerlo mediante código. ¿Podría alguien echarme una mano?
Gracias de antemano y saludos
Ir arriba Jorge555 Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Prueba con el código que te adjunto

Lo suyo habría sido utilizarel método getDistance() de la clase GDirections, pero no he conseguido averiguar como convertir el objeto que me devuelve a un string (ni con string(), ni con .ToString()).

He supuesto queal igual que TonyJ tampoco quieres cargar el mapa en la web. Pruebalo, lo adaptas a tus necesidades y ya me cuentas.




Espero que TonyJ se haya dado cuenta que si es posible, hacer lo que quería. No se si habrá leido los posts posteriores a su intervención.

Un saludo a ambos.

gmaps.txt   Google Maps Ver en Google Maps
 Nombre:  gmaps.txt
 Tamaño:  820 Bytes
 Descargado:  390 veces
Ir arriba _polifemo Compartir:

Jorge555
Usuario Reciente

Usuario Reciente
Registrado:
30-05-2010
Mensajes: 3

Votos: 0 👍
Responder citando
Muchas gracias _polifemo.
He probado el código y lo estoy adaptando, y parece que me vale.
La única pega es que como quería utilizarlo para hacer miles d comprobaciones, me encontré con que tuve que utilizar un tiempo de espera d unos segundos entre cada petición a googlemaps, ya que si no no las procesa, así que me tarda muxo. Pero muxas gracias d toas formas, porque por lo menos ya consegui algo!
Ir arriba Jorge555 Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Efectivamente cada objeto GDirections se toma su tiempo en procesar la query. Pero puedes utilizar varios objetos GDirections simultáneamente.

Establece un contador equivalente al número de peticiones (o una cantidad que no sea desbordante) y creas un objeto nombrtado como "directons"&"nº de consulta". Así deberias poder procesar un número X de consultas simultáneamente.
Ir arriba _polifemo Compartir:

Jorge555
Usuario Reciente

Usuario Reciente
Registrado:
30-05-2010
Mensajes: 3

Votos: 0 👍
Responder citando
En principio lo estoy haciendo de 1 en 1 las peticiones, porque así es más facil a la hora de irlas escribiendo a fichero. Sin embargo, me tarda 1 día lo cual no es un problema, salvo por el hecho de que creo q al cabo de unas horas google maps deja de aceptar las peticiones durante un tiempo.
Sabes si hay un tiempo máximo o número máximo para el envío de peticiones a google maps?
Gracias
Ir arriba Jorge555 Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Pues no tengo ni idea, y tampoco encuentro nada al respecto en la documentación.

Tal vez GoogleMaster, que conoce mas los entresijos del funcionamiento web pueda aportar algún dato; o un modo de eludir el problema.
Ir arriba _polifemo Compartir:

Google_Master
Admin

Admin
Registrado:
01-06-2006
Mensajes: 16223
Visitar sitio web del autor Perfil de Twitter Perfil de Facebook
Votos: 0 👍
Responder citando
SI tienes tu clave de uso de Google Maps (es gratuita) no deberia darte problemas. Son 15.000 consultas al día desde una misma IP:
code.google.com/ ...s/faq.html
No se que te puede estar sucediendo.

_________________
Cada vez que sacio una curiosidad, me nacen diez...
Ir arriba Google_Master Compartir:

Frunx
Usuario Reciente

Usuario Reciente
Registrado:
30-07-2010
Mensajes: 1

Votos: 0 👍
Responder citando
No se si funcionara, pero has probado con (String) getDistance().meters
Ir arriba Frunx Compartir:

Vitogq
Usuario Reciente

Usuario Reciente
Registrado:
20-09-2010
Mensajes: 1

Votos: 0 👍
Responder citando
frunx Escribio:
no se si funcionara, pero has probado con (String) getDistance().meters

Hola estoy probado ese metodo pero no va el error es que gdir.getDistance() is null

Code::
    function load() {
        if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map"));

            gdir = new GDirections(map, document.getElementById("directions"));
            GEvent.addListener(gdir, "error", handleErrors);

........

        }
    }

    function setDirections(fromAddress, toAddress, locale) {
//        alert (fromAddress + " : " + toAddress + " : " + locale);
        gdir.load("from: '" + fromAddress + "' to: " + toAddress, { "locale": locale });
        document.getElementById("distancia").value = gdir.getDistance().meters; 
    }
Ir arriba Vitogq Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Bueno, parece que con el nuevo API esta cuestión está muy mejorada. Me he topado con un ejemplo que funciona corrrectamente aquí: briancray.com/ ...-maps-api/

Además en los nuevos ejemplos del API podemos encontraruna función que se debería consultar: code.google.com/ ...gable.html

La función:

function computeTotalDistance(result) {
var total = 0;
var myroute = result.routes[0];
for (i = 0; i < myroute.legs.length; i++) {
total += myroute.legs[i].distance.value;
}
total = total / 1000.
document.getElementById("total").innerHTML = total + " km";
}


Donde result es la propiedad directions de la clase DirectionsRenderer.
Ir arriba _polifemo Compartir:

TonyJ
Usuario Reciente

Usuario Reciente
Registrado:
18-05-2010
Mensajes: 4

Votos: 0 👍
Responder citando
Hola a todos,

Antes de anda, mis disculpas por abandonar un hilo que yo mismo había abierto.
Y por supuesto, gracias por las respuestas.

Dejé el tema olvidado pero ahora vuelvo a retomarlo.
Tengo que revisar lo que habéis escrito por aquí, pero voy a añadir algo más:
He encontrado un enlace que da una solución:
briancray.com/ ...-maps-api/

Espero que os sirva Sonriente

Saludos
Ir arriba TonyJ Compartir:

TonyJ
Usuario Reciente

Usuario Reciente
Registrado:
18-05-2010
Mensajes: 4

Votos: 0 👍
Responder citando
¡¡Toma ya!!
Perdon por el mensaje, resulta que ya lo habíais comentado Sacando la lengua

Pero ahora surge la duda:
¿se puede utilizar el API sin necesidad de mostrar el mapa?
Lo digo porque según las condiciones de uso, es necesario mostrarlo.

Saludos
Ir arriba TonyJ Compartir:

_polifemo
SuperExpert

SuperExpert
Registrado:
27-11-2009
Mensajes: 436

Votos: 0 👍
Responder citando
Bienvenido de nuevo TonyJ.

No es necesario mostrar el mapa ni la versión 2 del API ni en la 3ª. De hecho me equivoqué en mi primera respuesta.

Tienes el ejemplo en la dirección que has linkeado. Exáctamente aquí briancray.com/ ...index.html .

Un saludo.
Ir arriba _polifemo Compartir:

Google_Master
Admin

Admin
Registrado:
01-06-2006
Mensajes: 16223
Visitar sitio web del autor Perfil de Twitter Perfil de Facebook
Votos: 0 👍
Responder citando
Polifemo, que bueno eres. Aplausos Aplausos Aplausos
Ir arriba Google_Master Compartir:
Mostrar mensajes de anteriores:   
SubForos: Java - Kmz - Google Maps - Herramientas - Html - Javascript - Excel - Php - Programacion
 Responder al tema   Versión Imprimible
Todas las horas son GMT + 1 Hora
Página 1 de 1 - Tema con 18 Mensajes y 29232 Lecturas - Última modificación: 14/12/2010




RSS: Foro Programación de Google Earth y Maps RSS - Ultimos Mensajes
Cambiar a:  


Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
No Puedes adjuntar archivos en este foro
Tu puedes descargar archivos en este foro



Mostrar/Ocultar Últimas Fotos del Foro