La deuxième question, quant à elle, est "solutionnable" par exemple en s'inspirant de ce site : http://www.touraineverte.com/
phig
Le 22/09/2013 21:43, titou44 a écrit :
bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
Le 22/09/2013 21:43, titou44 a écrit :> bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
salut. deux solutions: 1 géocoder les deux adresses et utiliser une formule de calcul ( la formule de calcul de distance est dans la requete dessous) je te donne ma vieille fonction de géocodage Google adaptée en API v2:
PROCEDURE geocode(sadr1,sadr2,scp, sville) LOCAL sstatus,s,s2,sSreq,sSxml est une chaîne rrlat,rrlong est un réel sadr1=SansEspace(sadr1) sadr2=SansEspace(sadr2) SI Val(scp)<>0 ALORS scp=NumériqueVersChaîne(Val(scp),"05d") FIN
//ssreq="http://maps.google.com/maps/geo?q="+s+"&output=csv&oe=utf8&sensorúlse&key="+Gsggkey sSreq="http://maps.googleapis.com/maps/api/geocode/xml?address="+s+"&output=xml&sensorúlse®ion=fr" SI HTTPRequête(sSreq) ALORS s2=HTTPDonneRésultat(httpRésultat) SI XMLDocument("sxml",s2) ALORS sstatus=XMLLit("sxml","/GeocodeResponse/status") SI sstatus="OK" ALORS
FIN XMLTermine("sxml") SINON //erreur("Requete Maps impossible",ssreq) s2=HTTPDonneRésultat(httpEntête) sstatus="ERR XML "+sSreq+CR+s2 FIN FIN
// gsgoogle+=s2+tab
RENVOYER(rrlat+TAB+rrlong+TAB+sstatus)
ca existe en natif dans WD je crois, mais c'est moins éducatif :)
2 - stocker les geocodes de villes ( ou de client) ans une bdd ( celle des communes dans mon cas) et une requete sql de recherche.
sReqdist=ChaîneConstruit("select %3*acos(cos(WL.conversion(%1,'degree','radian'))*cos(WL.conversion(commune.gglat,'degree','radian'))*cos(WL.conversion(commune.gglong,'degree','radian')-WL.conversion(%2,'degree','radian'))+sin(WL.conversion(%1,'degree','radian'))*sin(WL.conversion(commune.gglat,'degree','radian'))) as distance,nom,adresse1,adresse2,ville,cp,tel,commune,gglong,gglat from commune where distance<%4 order by distance asc",rlata,rlonga,rayonterre,rayonkm)
ou : - rayonterre est une constante (~c67.445 pour Bordeaux , ca varie selon le //) - rayon km est le rayon de recherche - rlata,rlonga sont les coordonnées du centre de la recherche
hope this help ;)
Le 22/09/2013 21:43, titou44 a écrit :
bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes
dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre
les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
Le 22/09/2013 21:43, titou44 a écrit :> bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes
dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre
les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
salut.
deux solutions:
1 géocoder les deux adresses et utiliser une formule de calcul
( la formule de calcul de distance est dans la requete dessous)
je te donne ma vieille fonction de géocodage Google adaptée en API v2:
PROCEDURE geocode(sadr1,sadr2,scp, sville)
LOCAL
sstatus,s,s2,sSreq,sSxml est une chaîne
rrlat,rrlong est un réel
sadr1=SansEspace(sadr1)
sadr2=SansEspace(sadr2)
SI Val(scp)<>0 ALORS
scp=NumériqueVersChaîne(Val(scp),"05d")
FIN
//ssreq="http://maps.google.com/maps/geo?q="+s+"&output=csv&oe=utf8&sensorúlse&key="+Gsggkey
sSreq="http://maps.googleapis.com/maps/api/geocode/xml?address="+s+"&output=xml&sensorúlse®ion=fr"
SI HTTPRequête(sSreq) ALORS
s2=HTTPDonneRésultat(httpRésultat)
SI XMLDocument("sxml",s2) ALORS
sstatus=XMLLit("sxml","/GeocodeResponse/status")
SI sstatus="OK" ALORS
FIN
XMLTermine("sxml")
SINON
//erreur("Requete Maps impossible",ssreq)
s2=HTTPDonneRésultat(httpEntête)
sstatus="ERR XML "+sSreq+CR+s2
FIN
FIN
// gsgoogle+=s2+tab
RENVOYER(rrlat+TAB+rrlong+TAB+sstatus)
ca existe en natif dans WD je crois, mais c'est moins éducatif :)
2 - stocker les geocodes de villes ( ou de client) ans une bdd ( celle
des communes dans mon cas) et une requete sql de recherche.
sReqdist=ChaîneConstruit("select
%3*acos(cos(WL.conversion(%1,'degree','radian'))*cos(WL.conversion(commune.gglat,'degree','radian'))*cos(WL.conversion(commune.gglong,'degree','radian')-WL.conversion(%2,'degree','radian'))+sin(WL.conversion(%1,'degree','radian'))*sin(WL.conversion(commune.gglat,'degree','radian')))
as distance,nom,adresse1,adresse2,ville,cp,tel,commune,gglong,gglat from
commune where distance<%4 order by distance
asc",rlata,rlonga,rayonterre,rayonkm)
ou :
- rayonterre est une constante (~c67.445 pour Bordeaux , ca varie
selon le //)
- rayon km est le rayon de recherche
- rlata,rlonga sont les coordonnées du centre de la recherche
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
Le 22/09/2013 21:43, titou44 a écrit :> bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
salut. deux solutions: 1 géocoder les deux adresses et utiliser une formule de calcul ( la formule de calcul de distance est dans la requete dessous) je te donne ma vieille fonction de géocodage Google adaptée en API v2:
PROCEDURE geocode(sadr1,sadr2,scp, sville) LOCAL sstatus,s,s2,sSreq,sSxml est une chaîne rrlat,rrlong est un réel sadr1=SansEspace(sadr1) sadr2=SansEspace(sadr2) SI Val(scp)<>0 ALORS scp=NumériqueVersChaîne(Val(scp),"05d") FIN
//ssreq="http://maps.google.com/maps/geo?q="+s+"&output=csv&oe=utf8&sensorúlse&key="+Gsggkey sSreq="http://maps.googleapis.com/maps/api/geocode/xml?address="+s+"&output=xml&sensorúlse®ion=fr" SI HTTPRequête(sSreq) ALORS s2=HTTPDonneRésultat(httpRésultat) SI XMLDocument("sxml",s2) ALORS sstatus=XMLLit("sxml","/GeocodeResponse/status") SI sstatus="OK" ALORS
FIN XMLTermine("sxml") SINON //erreur("Requete Maps impossible",ssreq) s2=HTTPDonneRésultat(httpEntête) sstatus="ERR XML "+sSreq+CR+s2 FIN FIN
// gsgoogle+=s2+tab
RENVOYER(rrlat+TAB+rrlong+TAB+sstatus)
ca existe en natif dans WD je crois, mais c'est moins éducatif :)
2 - stocker les geocodes de villes ( ou de client) ans une bdd ( celle des communes dans mon cas) et une requete sql de recherche.
sReqdist=ChaîneConstruit("select %3*acos(cos(WL.conversion(%1,'degree','radian'))*cos(WL.conversion(commune.gglat,'degree','radian'))*cos(WL.conversion(commune.gglong,'degree','radian')-WL.conversion(%2,'degree','radian'))+sin(WL.conversion(%1,'degree','radian'))*sin(WL.conversion(commune.gglat,'degree','radian'))) as distance,nom,adresse1,adresse2,ville,cp,tel,commune,gglong,gglat from commune where distance<%4 order by distance asc",rlata,rlonga,rayonterre,rayonkm)
ou : - rayonterre est une constante (~c67.445 pour Bordeaux , ca varie selon le //) - rayon km est le rayon de recherche - rlata,rlonga sont les coordonnées du centre de la recherche
hope this help ;)
Eric H.
Le 22/09/2013, titou44 a supposé :
bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes dans un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre les 2 adresses ?
merci par avance ?
titou44 chez libresurf.com
ps : wd15
Salut,
Va voir le projet Orthdromie !
@+
Le 22/09/2013, titou44 a supposé :
bonjour
encore une nouvelle demande de mon client technophile
peut-on simplement en connnaisant une adresse avoir la liste des villes dans
un périmètre de n km ?
ou autre approche : j'ai 2 adresses, comment connaitre la distance entre les
2 adresses ?