Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Coucou,
voila pb encapsulant les sdk de google earth et de virtual earth.
tout ceci sous pb6.5.
Auteur : Pick himself !
et cela donne ...
version 3.2
les sources et l'executable se trouvent dans ce fichier zip...
servez vous !
R: pour que cela fonctionne, il faut avoir des droits pour accéder au lien de google mapi et de virtual earth. ainsi qu'à d'autres liens. oui, il faut surtout avoir Accès sur le Net
Hors ligne
je ne te rajoutes pas de pépites, tu en as assez...
Hors ligne
je mettrai ce soir, les codes sources de mon seveur web.
pour l'utilisation des api...
il s'agit ici d'un savant mélange d'utilisation de google map et de virtual earth...
et encore, il y a tellement de possibilité.
Hors ligne
Bonjour à tous !
Sublime fonctionnalité !
Dis moi Pick Ouic, est-il nécessaire d'avoir Google Earth installé, où suffit-il
d'avoir un accès au net pour avoir l'information ?
Hors ligne
il faut juste avoir accès à internet, et internet explorer...
Hors ligne
voci les codes sources
bien sur, si vous pouvez optimiser, alors, je suis preneur.
étant super mega debutant en la matiere...
du fichier itinerairedist.php
<?php $latidep = isset($_GET['latidep']) ? strval($_GET['latidep']) : ''; $longidep = isset($_GET['longidep']) ? strval($_GET['longidep']) : ''; $latiarriv = isset($_GET['latiarriv']) ? strval($_GET['latiarriv']) : ''; $longiarriv = isset($_GET['longiarriv']) ? strval($_GET['longiarriv']) : ''; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script> <script> var map = null; var latid = <?php echo $latidep ?> ; var longid = <?php echo $longidep ?> ; var latia = <?php echo $latiarriv ?> ; var longia = <?php echo $longiarriv ?> ; function GetMap() { map = new VEMap('myMap'); map.SetDashboardSize(VEDashboardSize.Small); map.LoadMap(); map.GetRoute(new VELatLong(latid,longid), new VELatLong(latia,longia), VEDistanceUnit.Kilometers, VERouteType.Shortest, onGotRoute); } function onGotRoute(route) { var routeinfo=" PBADonf Itineraire suivant la Distance:\n"; routeinfo+="Distance totale: "; routeinfo+= route.Itinerary.Distance+" "; routeinfo+= route.Itinerary.DistanceUnit+"\n\n"; var steps=""; var len = route.Itinerary.Segments.length; for(var i = 0; i < len ;i++) { steps+=route.Itinerary.Segments[i].Instruction+" -- ("; steps+=route.Itinerary.Segments[i].Distance+") "; steps+=route.Itinerary.DistanceUnit+"\n"; } routeinfo+="Chemin:\n"+steps; alert(routeinfo); } </script> </head> <body onload="GetMap();"> <div id='myMap' style="position:absolute; width:620px; height:480px;"></div> </body> </html>
du fichier itinerairetemps.php
<?php $latidep = isset($_GET['latidep']) ? strval($_GET['latidep']) : ''; $longidep = isset($_GET['longidep']) ? strval($_GET['longidep']) : ''; $latiarriv = isset($_GET['latiarriv']) ? strval($_GET['latiarriv']) : ''; $longiarriv = isset($_GET['longiarriv']) ? strval($_GET['longiarriv']) : ''; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script> <script> var map = null; var latid = <?php echo $latidep ?> ; var longid = <?php echo $longidep ?> ; var latia = <?php echo $latiarriv ?> ; var longia = <?php echo $longiarriv ?> ; function GetMap() { map = new VEMap('myMap'); map.SetDashboardSize(VEDashboardSize.Small); map.LoadMap(); map.GetRoute(new VELatLong(latid,longid), new VELatLong(latia,longia), VEDistanceUnit.Kilometers, VERouteType.Quickest, onGotRoute); } function onGotRoute(route) { var routeinfo="PBADonf Itineraire suivant le Temps:\n"; routeinfo+="Distance totale: "; routeinfo+= route.Itinerary.Distance+" "; routeinfo+= route.Itinerary.DistanceUnit+"\n\n"; var steps=""; var len = route.Itinerary.Segments.length; for(var i = 0; i < len ;i++) { steps+=route.Itinerary.Segments[i].Instruction+" -- ("; steps+=route.Itinerary.Segments[i].Distance+") "; steps+=route.Itinerary.DistanceUnit+"\n"; } routeinfo+="Chemin:\n"+steps; alert(routeinfo); } </script> </head> <body onload="GetMap();"> <div id='myMap' style="position:absolute; width:620px; height:480px;"></div> </body> </html>
du fichier GoogleMapsHTTPRequest.class.php
<?php /** * Google Maps HTTP Request 1.0 * * Copyright (C) 2007 Özgür Karatag <oezguer@karatag.de> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * @class googleRequest * @version V1.0 04 April 2007 * @author Özgür Karatag <oezguer@karatag.de> * @copyright 2007 Özgür Karatag */ class googleRequest { /** * @var string gKey * @access private */ var $gKey; /** * @var int code * @access private */ var $code; /** * @var int Accuracy * @access private */ var $Accuracy; /** * @var float latitude * @access private */ var $latitude; /** * @var float longitude * @access private */ var $longitude; /** * @var string address * @access private */ var $address; /** * @var string city * @access private */ var $city; /** * @var string country * @access private */ var $country; /** * @var string error * @access private */ var $error; /** * @constructor * @param string address * @param string city * @param string country * @param string zip * @author Özgür Karatag * @description Constructor */ function googleRequest($address = '', $city = '', $country = '', $zip = '') { if (strlen($address) > 0 && strlen($city) > 0 && strlen($country) > 0 && strlen($zip) > 0) { $this->setcode($address, $city, $country, $zip); } } /** * @function setcode * @param string address * @param string city * @param string country * @param string zip * @author Özgür Karatag * @description Sets the value */ function setcode($address = '', $city = '', $country = '', $zip = '') { $this->address = $address; $this->city = $city; $this->country = $country; $this->zip = $zip; } function setGoogleKey($value) { $this->gKey = $value; } /** * @function GetRequest * @author Özgür Karatag * @description Gets the CSV-File of Google */ function GetRequest() { if (strlen($this->gKey) > 1) { $q = str_replace(' ', '_', $this->address.','.$this->zip.'+'.$this->city.','.$this->country); if ($d = @fopen("http://maps.google.com/maps/geo?q=$q&output=csv&key=".$this->gKey, "r")) { $gcsv = @fread($d, 30000); @fclose($d); //echo "<br />CSV:".$gcsv; $tmp = explode(",", $gcsv); //print_r($tmp); $this->code = $tmp[0]; $this->Accuracy = $tmp[1]; $this->latitude = $tmp[2]; $this->longitude = $tmp[3]; } else { $error = "NO_CONNECTION" ; } } else { $error = "No Google Maps Api Key" ; } } /* * @function getVar * @returns mixed * @param $name * @author Özgür Karatag * @description Gets the value of $name */ function getVar($name) { return $this->{$name}; } } ?>
du fichier geocodage.php
<?php // Include the GoogleMapsHTTPRequest class include_once('./GoogleMapsHTTPRequest.class.php'); $country = isset($_GET['country']) ? strval($_GET['country']) : ''; $address = isset($_GET['address']) ? strval($_GET['address']) : ''; $city = isset($_GET['city']) ? strval($_GET['city']) : ''; $zip = isset($_GET['zip']) ? strval($_GET['zip']) : ''; /** * Paut your Google Maps Api Key Here! * If You don't have a Key yet? You can get it here: http://www.google.com/apis/maps/signup.html */ $GoogleMapsApiKey = 'ABQIAAAAXiJ9xfdQ_FKnEIDXbMeECBSX4T64UzcOUGI9Qb2IZBVd4YSnyhTXrKQH2gff6PKiKjl6IVxjutX5MA'; $ga = new googleRequest($address, $city, $country, $zip); $ga->setGoogleKey($GoogleMapsApiKey); $ga->GetRequest(); // You can use the result to place your Mark in the Map echo '<br />LATITUDE: '.$ga->getVar('latitude'); echo '<br />LONGITUDE: '.$ga->getVar('longitude'); ?>
et du fichier geolocalisation.php
<?php $lati = isset($_GET['lati']) ? strval($_GET['lati']) : ''; $longi = isset($_GET['longi']) ? strval($_GET['longi']) : ''; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Application Google Map</title> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAXiJ9xfdQ_FKnEIDXbMeECBSX4T64UzcOUGI9Qb2IZBVd4YSnyhTXrKQH2gff6PKiKjl6IVxjutX5MA" type="text/javascript"></script> </head> <body style="margin: 0px; padding: 0px;"> <div id="map" style="width: 620px; height: 480px"></div> <script type="text/javascript"> //<![CDATA[ /* Variable qui va correspondre à l'affichage de la carte dans la "div" */ var map = new GMap2(document.getElementById("map")); /* Centre la carte aux coordonnées indiquées et réalise un zoom de niveau 5 */ var point = new GLatLng(<?php echo $lati ?>, <?php echo $longi ?>); /* Centre la carte aux coordonnées indiquées et réalise un zoom de niveau 15 */ map.setCenter(point, 16); /* Cette ligne permet de bloquer le déplacement sur la carte à l'aide de la souris map.disableDragging(); */ /* map.addControl(new GLargeMapControl()); */ map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); /* Attacher un marqueur au point "point" demandé */ // map.addOverlay(new GMarker(point)); var marker = new GMarker(point, {draggable: true}); GEvent.addListener(marker, "dragstart", function() { map.closeInfoWindow(); }); GEvent.addListener(marker, "dragend", function() { map.closeInfoWindow(); }); map.addOverlay(marker); //]]> </script> </body> </html>
Hors ligne
J'ai modifié un peu le code pour avoir que google ...
on supprime ddlb_iti
sur le bonton cb_1 on code :
string ls_url long ll_row String ls_adresse inet linet_main n_cst_internet luo_data ll_row = dw_param.getrow() if ll_row > 0 then dw_param.accepttext() ls_url = "http://skeod.free.fr/directionsAdvanced.php?" ls_adresse = 'fromAddress='+trim(dw_param.getitemstring(1,'adressedep')) + ' ' + trim(dw_param.getitemstring(1,'code_postaldep')) + ' '+ trim(dw_param.getitemstring(1,'villedep')) +' ' + trim(dw_param.getitemstring(1,'paysdep')) ls_url = ls_url + ls_adresse + '&' ls_adresse = 'toAddress='+ trim(dw_param.getitemstring(1,'adressearriv')) + ' '+ trim(dw_param.getitemstring(1,'code_postalarriv'))+ ' ' + trim(dw_param.getitemstring(1,'villearriv')) +' ' + trim(dw_param.getitemstring(1,'paysarriv')) ls_url = ls_url + ls_adresse // on lance la page internet de la carte ole_Browser.Object.Navigate(ls_url) end if
et pour le fichier directionsAdvanced.php
<?php $fromAddress = isset($_GET['fromAddress']) ? strval($_GET['fromAddress']) : ''; $toAddress = isset($_GET['toAddress']) ? strval($_GET['toAddress']) : ''; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Kheops itineraire</title> <script src="http://maps.google.com/?file=api&v=2.x&key=ABQIAAAAXiJ9xfdQ_FKnEIDXbMeECBSX4T64UzcOUGI9Qb2IZBVd4YSnyhTXrKQH2gff6PKiKjl6IVxjutX5MA" type="text/javascript"></script> <style type="text/css"> v\:* { behavior:url(#default#VML); } body { font-family: Verdana, Arial, sans serif; font-size: 11px; margin: 2px; } table.directions th { background-color:#EEEEEE; } img { color: #000000; } </style> <script type="text/javascript"> //<![CDATA[ var map; var gdir; var geocoder = null; var addressMarker; var fromAddress = "<?php echo $fromAddress ?>"; var toAddress = "<?php echo $toAddress ?>"; var locale = "fr"; function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); gdir = new GDirections(map, document.getElementById("directions")); GEvent.addListener(gdir, "load", onGDirectionsLoad); GEvent.addListener(gdir, "error", handleErrors); setDirections(fromAddress, toAddress, locale); } } function setDirections(fromAddress, toAddress, locale) { gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale }); } function handleErrors(){ if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code); // else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS) <--- Doc bug... this is either not defined, or Doc is wrong // alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_KEY) alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code); else alert("An unknown error occurred."); } function onGDirectionsLoad(){ // Use this function to access information about the latest load() // results. // e.g. // document.getElementById("getStatus").innerHTML = gdir.getStatus().code; // and yada yada yada... } //]]> </script> </head> <body onload="load()" onunload="GUnload()"> <form action="#" onsubmit="setDirections(this.from.value, this.to.value, locale); return false"> </form> <br/> <table class="directions"> <tr><th>Itineraire </th><th>Map</th></tr> <tr> <td valign="top"><div id="directions" style="width: 275px"></div></td> <td valign="top"><div id="map" style="width: 310px; height: 400px"></div></td> </tr> </table> </body> </html>
Hors ligne
pour le point deplacé, avec le pointeur... oui... une nouvelle version devrait voir le jour d'ici fin de semaine...
recuperation de la lalitude et longitude. et un code special pb...sorti des entrailles de jdobozc...
sinon, oui, tu peux mettre en image le resultat ?
ca affiche un itineraire ? et ca indique le sens des routes ou rue à prendre ?
je preferre pouvoir positionner par rapport aux X Y d'un point depart à un point arrivée. c'est plus précis..
et je ne pense pas avoir vu cela chez goole maps API, donc utilisation de virtuel earth API.
mais merci encore pour tes recherches...
c'est mega fun ! (surtout , je vois que je ne suis pas le seule à etre interesser par cette technologie...)
Hors ligne
Hors ligne
Il serait aussi interessant de pouvoir calculer un itineraire en passant par n points
ou n peut varier
Hors ligne
il faut trouver la formule qui permet de rattacher plusiseurs points...
peut etre en cumulant plusiseurs fois la fonction Depart à Arrivée, ca pourrait fonctionner ?
Bon, bien sur, tout ceci ne represente pas forcement l'exactitude de google maps ou virtual earth...
si c'est pour utiliser dans une entreprise de transport, il faudra tenir compte de la vitesse des vehicules, ainsi que d'autres parametres...
Hors ligne
J'ai trouvé
il faut mettre
function setDirections(fromAddress, toAddress, locale) {
gdir.load("from: " + fromAddress + " to: " + toAddress,
{ "locale": locale })
avec toAddress = adress1 + " to: " + address2 + " to: " + address3 + .....
exemple de page html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Kheops itineraire</title> <script src=" http://maps.google.com/?file=api&v=2.x&key=ABQIAAAAi44TY0V29QjeejKd2l3ipRTRERdeAiwZ9EeJWta3L_JZVS0bOBQlextEji5FPvXs8mXtMbELsAFL0w" type="text/javascript"></script> <style type="text/css"> v\:* { behavior:url(#default#VML); } body { font-family: Verdana, Arial, sans serif; font-size: 11px; margin: 2px; } table.directions th { background-color:#EEEEEE; } img { color: #000000; } </style> <script type="text/javascript"> //<![CDATA[ var map; var gdir; var geocoder = null; var addressMarker; var fromAddress = "88 avenue d'argenteuil 92600 asnieres sur seine France"; var toAddress = "210 bd macdonald 75019 Paris to: 150 rue de flandre 75 Paris"; var locale = "fr"; function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); gdir = new GDirections(map, document.getElementById("directions")); GEvent.addListener(gdir, "load", onGDirectionsLoad); GEvent.addListener(gdir, "error", handleErrors); setDirections(fromAddress, toAddress, locale); } } function setDirections(fromAddress, toAddress, locale) { gdir.load("from: " + fromAddress + " to: " + toAddress , { "locale": locale }); } function handleErrors(){ if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code); // else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS) <--- Doc bug... this is either not defined, or Doc is wrong // alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_KEY) alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code); else alert("An unknown error occurred."); } function onGDirectionsLoad(){ // Use this function to access information about the latest load() // results. // e.g. // document.getElementById("getStatus").innerHTML = gdir.getStatus().code; // and yada yada yada... } //]]> </script> </head> <body onload="load()" onunload="GUnload()"> <form action="#" onsubmit="setDirections(this.from.value, this.to.value, locale); return false"> </form> <br/> <table class="directions"> <tr><th>Itineraire </th><th>Map</th></tr> <tr> <td valign="top"><div id="directions" style="width: 275px"></div></td> <td valign="top"><div id="map" style="width: 310px; height: 400px"></div></td> </tr> </table> </body> </html>
Dernière modification par JCZ (05-06-2007 16:34:48)
Hors ligne
Bonjour,
Au fait pick ouic, c'est forcément avec IE, ou c'est indépendant du browser ?
Hors ligne
pour la version pb, il faut IE. car l'ole encapsule IE.
Hors ligne
une version 2 vient d'eclore...
vous la trouverez sur le premier post...
quoi de neuf :
recuperation des coordonnées d'un pointeur placé.
recuperation de l'indicateur d'un itinéraire de route.
Hors ligne
pick ouic a écrit:
pour la version pb, il faut IE. car l'ole encapsule IE.
Purée, c'est un peu contraignant ... Il n'y aurait pas une façon de faire de manière
à rendre cela indépendant du navigateur (plus grande compatibilité) ?
(Oui, je sais, les entreprises utilises majoritairement IE ... )
En tout cas, bravo pour l'outil !
Hors ligne
pas mal pour le coup du fichier directionsAdvanced.php
quelques remarques :
y a t'il moyen d'avoir un tracé d'itineraire suivant la distance ou le temps ? (ca, c'est tres demandé ! surtout pour un suivi de gps...)
y a t'il moyen de passer aussi via des coordonnées X et Y ?
je mettrai les codes sources php d'ici fin de semaine.
Hors ligne
pick ouic a écrit:
y a t'il moyen d'avoir un tracé d'itineraire suivant la distance ou le temps ? (ca, c'est tres demandé ! surtout pour un suivi de gps...)
y a t'il moyen de passer aussi via des coordonnées X et Y ?
Je vais chercher.
Pour les coordonnées je ne crois pas (ils se basent sur les adresses parce que c’est réel alors que des
coordonnées peuvent être au milieu d’un immeuble)
Sur le principe si on peut transformer des coordonnées en adresse c’est gagné …
Pour d'avoir un tracé d'itineraire suivant
Le temps je pense que tu veux dire l'heure de départ je crois avoir vue cela
La distance je ne comprends pas ...
Je vous tiens au courant
Hors ligne
L'itinéraire selon la Distance --> c'est la distance kilometrique la plus courte... le chemin le plus court
L'itinéraire selon le Temps --> le chemin le plus rapide... ce qui ne veut pas dire que la distance est plus courte
Hors ligne
fichier geolocalisation.php
<?php $lati = isset($_GET['lati']) ? strval($_GET['lati']) : ''; $longi = isset($_GET['longi']) ? strval($_GET['longi']) : ''; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Application Google Map</title> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAXiJ9xfdQ_FKnEIDXbMeECBSX4T64UzcOUGI9Qb2IZBVd4YSnyhTXrKQH2gff6PKiKjl6IVxjutX5MA" type="text/javascript"></script> </head> <body style="margin: 0px; padding: 0px;"> <div id="map" style="width: 620px; height: 480px"></div> <input type="hidden" id="lat" name="latitude" size="30" /> <input type="hidden" id="lng" name="longitude" size="30" /> <script type="text/javascript"> //<![CDATA[ /* Variable qui va correspondre à l'affichage de la carte dans la "div" */ var map = new GMap2(document.getElementById("map")); /* Centre la carte aux coordonnées indiquées et réalise un zoom de niveau 5 */ document.getElementById("lat").value=<?php echo $lati ?>; document.getElementById("lng").value=<?php echo $longi ?>; var point = new GLatLng(<?php echo $lati ?>, <?php echo $longi ?>); /* Centre la carte aux coordonnées indiquées et réalise un zoom de niveau 15 */ map.setCenter(point, 16); /* Cette ligne permet de bloquer le déplacement sur la carte à l'aide de la souris map.disableDragging(); */ /* map.addControl(new GLargeMapControl()); */ map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); /* Attacher un marqueur au point "point" demandé */ var marker = new GMarker(point, {draggable: false}); map.addOverlay(marker); GEvent.addListener(map, 'click', function(overlay, point) { if (overlay) { map.removeOverlay(overlay); document.getElementById("lat").value=''; document.getElementById("lng").value=''; } else if (point) { map.clearOverlays(); map.addOverlay(new GMarker(point)); document.getElementById("lat").value=point.y; document.getElementById("lng").value=point.x; } }); //]]> </script> </body> </html>
et pour les fichiers itinerairetemps.php et itinerairedist.php
il suffit de remplacer
alert(routeinfo);
par
document.getElementById('resultDiv').value=routeinfo;
et ajouter apres
<div id='myMap' style="position:absolute; width:620px; height:480px;"></div> <input type="hidden" id="resultDiv" />
Hors ligne
petite mise à jour de la version 2 disponible tout au debut du topic.
L'affichage de l'itinéraire se fait via un nouvel écran...avec la feuille de route
(il ne manque plus que la traduction en francais)
lorsque vous etes sur une carte de google, il était possible de clicker sur les liens proposés (google et conditions d'utilisation).
apres, il n'y avait pas d'option pour revenir en arriere.
desormais, ces liens sont 'bloqués' depuis pb...
Hors ligne
Merci chef
Mais en pb10 cela explose
Il faut ajouter dans event externalexception de ole_Browser
Action = ExceptionSubstituteReturnValue! ReturnValue = 0
Hors ligne
il y a un exemple ici
vroum vroum
Hors ligne
on peut tracer un itinéraire via google map, avec les longitudes et latitudes.
http://pbadonf.fr/forum/mapi/directions … 9,2.360162
Hors ligne
Hors ligne