Google Map : Tester l'existence d'un point + calcul distance
12 messages • Page 1 sur 1
Consultez la formation Google Maps, News, Images de WebRankInfo / Ranking Metrics
Google Map : Tester l'existence d'un point + calcul distance
Bonjour a tous !
Je galère un peu avec l'API google Map...
J'ai un formulaire, l'utilisateur rentre son adresse. Ensuite, je veux calculer son itinéraire vers un point fixe.
Le probleme, c'est que lorsqu'il entre une adresse inexistante, la carte buggue. Du coup je veux tester l'existe du point avant de calculer l'itinéraire...
Et pour tester l'existence du point :
Le probleme vient bien de ma fonction testpoint() car si je remplace if(testpoint(adresse)) par if(1), ça fonctionne...
Merci d'avance pour votre aide !
Je galère un peu avec l'API google Map...
J'ai un formulaire, l'utilisateur rentre son adresse. Ensuite, je veux calculer son itinéraire vers un point fixe.
Le probleme, c'est que lorsqu'il entre une adresse inexistante, la carte buggue. Du coup je veux tester l'existe du point avant de calculer l'itinéraire...
- Code: Tout sélectionner
var geocoder = new GClientGeocoder();
// Ma fonction sensée tester l'existence du point
function testpoint(address){
geocoder.getLatLng(address,
function(point){
if (!point){
alert(address + " n'a pas été trouvé.");
return 0;
}
else
return 1;
});
}
Et pour tester l'existence du point :
- Code: Tout sélectionner
if(testpoint(adresse)){
// Mon calcul d'itinéraire, et tout...
}
Le probleme vient bien de ma fonction testpoint() car si je remplace if(testpoint(adresse)) par if(1), ça fonctionne...
Merci d'avance pour votre aide !
Dernière édition par numerodix le Mer Oct 15, 2008 9:22, édité 1 fois.
getLatLng ne renvoie rien, et certainement pas ce que renvoie ton callback.
Il faut que ton callback affecte une valeur à une variable globale (ou à quelque chose dans un objet que tu lui passerais en paramètre), et que tu vérifies cette valeur.
Jacques.
Il faut que ton callback affecte une valeur à une variable globale (ou à quelque chose dans un objet que tu lui passerais en paramètre), et que tu vérifies cette valeur.
Jacques.
Merci pour vos réponses !
Finalement, j'ai fais comme ça :
Par contre, j'ai un autre soucis maintenant...
J'ai une liste de marqueurs (en dur). J'ai mon formulaire ou l'utilisateur entre sa ville.
Une fois sa ville récupérée, je calcule les itinéraires vers tous les points.
Ils s'affichent tous sur la carte. Et justement, je ne souhaite afficher que le plus court...
Voici mon code :
est-il possible de calculer la duree du trajet, sans l'afficher ?
J'ai trouvé cette fonction mais je n'arrive pas à l'appliquer : getDuration().seconds;
Merci d'avance !
Finalement, j'ai fais comme ça :
- Code: Tout sélectionner
var geocoder2 = new GClientGeocoder();
geocoder2.getLatLng(adresse, function(point){
if (!point){
alert(adresse + " n'existe pas.");
}
else{
// Mon calcul d'itinéraire...
}
});
Par contre, j'ai un autre soucis maintenant...
J'ai une liste de marqueurs (en dur). J'ai mon formulaire ou l'utilisateur entre sa ville.
Une fois sa ville récupérée, je calcule les itinéraires vers tous les points.
Ils s'affichent tous sur la carte. Et justement, je ne souhaite afficher que le plus court...
Voici mon code :
- Code: Tout sélectionner
directionsPanel = document.getElementById("route");
directions = new GDirections(map,directionsPanel);
directions.load("from:"+adresse+" to:"+magasin1.adresse);
directions2 = new GDirections(map,directionsPanel);
directions2.load("from:"+adresse+" to:"+magasin2.adresse);
directions3 = new GDirections(map,directionsPanel);
directions3.load("from:"+adresse+" to:"+magasin3.adresse);
est-il possible de calculer la duree du trajet, sans l'afficher ?
J'ai trouvé cette fonction mais je n'arrive pas à l'appliquer : getDuration().seconds;
Merci d'avance !
C'est pourtant tout marqué dans la doc:
http://code.google.com/apis/maps/docume ... Directions
Il suffit de créer l'objet GDirections sans lui donner de map ou de panel, et il ne l'affichera pas. Et ensuite a priori tu fais un directions.getDistance.meters ou directions.getDuration.seconds et hop.
(ceci dit je n'ai jamais essayé)
Jacques.
http://code.google.com/apis/maps/docume ... Directions
Il suffit de créer l'objet GDirections sans lui donner de map ou de panel, et il ne l'affichera pas. Et ensuite a priori tu fais un directions.getDistance.meters ou directions.getDuration.seconds et hop.
(ceci dit je n'ai jamais essayé)
Jacques.
- Code: Tout sélectionner
directions = new GDirections();
directions.load("from:"+adresse[1]+" to:"+magasin1.adresse);
alert(directions.getDuration.seconds);
L'alert me renvoie "undefined"...
J'ai presque réussit !
L'alerte m'affiche les bonnes valeurs.
Le soucis c'est que je veux exploiter ces données à l'extérieur du GEvent.addListener().
Mais si je fais un alert(iti.distance); par exemple, il ne m'affiche rien...
- Code: Tout sélectionner
directions = new GDirections();
directions.load("from:"+adresse[1]+" to:"+magasin1.adresse);
GEvent.addListener(directions,"load", function() {
var mesure = directions.getDistance().meters;
var duree = directions.getDuration().seconds;
var iti = new dist(mesure,duree);
alert("Distance en metres : "+iti.distance+"\nTemps en secondes : "+iti.duree);
});
L'alerte m'affiche les bonnes valeurs.
Le soucis c'est que je veux exploiter ces données à l'extérieur du GEvent.addListener().
Mais si je fais un alert(iti.distance); par exemple, il ne m'affiche rien...
ta variable iti doit être déclarée de façon globale > il ne faut par mettre
mais
sinon tu peux ajouter un listener sur le chargement
qui te te permet de balancer la fonction
- Code: Tout sélectionner
var iti=...
mais
- Code: Tout sélectionner
iti=...
sinon tu peux ajouter un listener sur le chargement
- Code: Tout sélectionner
GEvent.addListener(directions, "load", onGDirectionsLoad);
qui te te permet de balancer la fonction
- Code: Tout sélectionner
function onGDirectionsLoad()
{
ce que tu veux
}
J'ai enlevé le var de iti et ça me fait la même chose...
- Code: Tout sélectionner
directions = new GDirections();
directions.load("from:"+adresse[1]+"to:"+magasin1.adresse);
GEvent.addListener(directions,"load", function() {
mesure = directions.getDistance().html;
duree = directions.getDuration().html;
mesure = mesure.replace(" "," ");
iti = new dist(mesure,duree);
});
alert("Trajet : Votre domicile - "+magasin1.nom+"\nDistance : "+iti.distance+"\nTemps de trajet : "+iti.duree);
J'arrive a avoir mon alerte !
Mais iti est vide...
Mais iti est vide...
- Code: Tout sélectionner
function dist(distance,duree){
this.distance = distance;
this.duree = duree;
}
var iti = new dist('','');
directions = new GDirections();
directions.load("from:"+adresse[1]+" to:"+magasin1.adresse);
GEvent.addListener(directions,"load", function() {
var mesure = directions.getDistance().html;
var duree = directions.getDuration().html;
mesure = mesure.replace(" "," ");
iti.distance = mesure;
iti.duree = duree;
});
alert("Trajet : Votre domicile - "+magasin1.nom+"\nDistance : "+iti.distance+"\nTemps de trajet : "+iti.duree);
c'est quoi ça ?
perso je viens de faire un test,
rend "duree" disponible à l'extérieur.
- Code: Tout sélectionner
var iti = new dist('','');
var mesure = directions.getDistance().html;
var duree = directions.getDuration().html;
mesure = mesure.replace(" "," ");
iti.distance = mesure;
iti.duree = duree;
perso je viens de faire un test,
- Code: Tout sélectionner
duree = directions.getDuration().html;
rend "duree" disponible à l'extérieur.
Duree et mesure ne sont pas disponibles a l'extérieur pour moi... :/
- Code: Tout sélectionner
directions = new GDirections();
directions.load("from:"+adresse[1]+"to:"+magasin1.adresse);
GEvent.addListener(directions,"load", function() {
mesure = directions.getDistance().html;
duree = directions.getDuration().html;
mesure = mesure.replace(" "," ");
});
iti = new dist(mesure,duree);
alert("Trajet : Votre domicile - "+magasin1.nom+"\nDistance : "+iti.distance+"\nTemps de trajet : "+iti.duree);
12 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Maps, Google News et Google Images : apprenez comment optimiser le référencement de votre site pour la recherche universelle et notamment Google Maps, Google Actualités et Google Images. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Calculer l'indice de co-occurrence et le ratio E/F
- Google achète Measure Map
- L'algorithme BlockRank
- Google Labs lance Google Alternate Views
- Accord stratégique entre Google et TeleAtlas (TomTom)
- Tutorial Google Maps API
- Plein de chiffres incroyables sur Google Maps
- Google Dance : c'est parti ! Update de juillet 2002
- La Google Dance : description...
- Tester son positionnement dans Exalead avec Agent Web Ranking
Consultez la description détaillée des produits ou services de Google suivants : Google Measure Map
- Test de redirection
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum