Página 1 de 1 - Tema con 18 Mensajes y 29323 Lecturas
|
Ver más mensajes sobre Calcular distancia sin mostrar mapa en el foro
|
Autor |
Mensaje |
_polifemo
SuperExpert Registrado: 27-11-2009 Mensajes: 436
Votos: 0 👍
|
|
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.
Nombre: |
gmaps.txt |
Tamaño: |
820 Bytes |
Descargado: |
390 veces |
|
|
|
Ir arriba
|
Compartir:
|
|
Jorge555
Usuario Reciente Registrado: 30-05-2010 Mensajes: 3
Votos: 0 👍
|
|
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
|
Compartir:
|
|
_polifemo
SuperExpert Registrado: 27-11-2009 Mensajes: 436
Votos: 0 👍
|
|
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
|
Compartir:
|
|
Jorge555
Usuario Reciente Registrado: 30-05-2010 Mensajes: 3
Votos: 0 👍
|
|
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
|
Compartir:
|
|
_polifemo
SuperExpert Registrado: 27-11-2009 Mensajes: 436
Votos: 0 👍
|
|
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
|
Compartir:
|
|
Google_Master
Admin Registrado: 01-06-2006 Mensajes: 16225
Votos: 0 👍
|
|
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
|
Compartir:
|
|
Frunx
Usuario Reciente Registrado: 30-07-2010 Mensajes: 1
Votos: 0 👍
|
|
No se si funcionara, pero has probado con (String) getDistance().meters
|
|
|
Ir arriba
|
Compartir:
|
|
Vitogq
Usuario Reciente Registrado: 20-09-2010 Mensajes: 1
Votos: 0 👍
|
|
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
|
Compartir:
|
|
_polifemo
SuperExpert Registrado: 27-11-2009 Mensajes: 436
Votos: 0 👍
|
|
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
|
Compartir:
|
|
TonyJ
Usuario Reciente Registrado: 18-05-2010 Mensajes: 4
Votos: 0 👍
|
|
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
Saludos
|
|
|
Ir arriba
|
Compartir:
|
|
TonyJ
Usuario Reciente Registrado: 18-05-2010 Mensajes: 4
Votos: 0 👍
|
|
¡¡Toma ya!!
Perdon por el mensaje, resulta que ya lo habíais comentado
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
|
Compartir:
|
|
_polifemo
SuperExpert Registrado: 27-11-2009 Mensajes: 436
Votos: 0 👍
|
|
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
|
Compartir:
|
|
Google_Master
Admin Registrado: 01-06-2006 Mensajes: 16225
Votos: 0 👍
|
|
Ir arriba
|
Compartir:
|
|
|