PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 03-06-2007 21:56:05

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

[SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

Coucou,
voila pb encapsulant les sdk de google earth et de virtual earth.

tout ceci sous pb6.5.
Auteur : Pick himself !


et cela donne ...
http://img504.imageshack.us/img504/5803/mapi1hd7.th.jpg

http://img509.imageshack.us/img509/6499/mapi2sa1.th.jpg




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


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#2 04-06-2007 05:36:38

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie



je ne te rajoutes pas de pépites, tu en as assez...


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 04-06-2007 08:23:27

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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é.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#4 04-06-2007 09:26:52

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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 ?


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#5 04-06-2007 09:30:20

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

il faut juste avoir accès à internet, et internet explorer...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 04-06-2007 18:16:29

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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

Code: 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

Code: 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

Code: 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

Code: 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

Code: 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>

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 05-06-2007 13:48:22

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

J'ai modifié un peu le code pour avoir que google ...
on supprime ddlb_iti

sur le bonton cb_1 on code :

Code: pb

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

Code: 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>

Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#8 05-06-2007 13:55:36

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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...)


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#9 05-06-2007 14:11:18

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

effectivement, c'est tip top !

http://img528.imageshack.us/img528/4232/titiitikr5.th.jpg


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#10 05-06-2007 15:50:15

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

Il serait aussi interessant de pouvoir calculer un itineraire en passant par n points
ou n peut varier


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#11 05-06-2007 15:53:37

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#12 05-06-2007 16:31:28

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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

Code: 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&amp;v=2.x&amp;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)


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#13 05-06-2007 17:09:54

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

Bonjour,

Au fait pick ouic, c'est forcément avec IE, ou c'est indépendant du browser ?


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#14 05-06-2007 18:46:27

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

pour la version pb, il faut IE. car l'ole encapsule IE.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#15 05-06-2007 22:44:46

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#16 06-06-2007 08:27:39

Doctor Z  
Moderador
Award: PanchoeNacho
Lieu: Vale Figueira (Lisbonne)
Date d'inscription: 30-05-2006
Messages: 756
Pépites: 1,003,082
Banque: 877,135,234,297,804

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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 !


http://www.userbars.com/i/543606.gif
Olivença, l'oubliée
Si tu es alentejane, que Dieu te bénisses, si tu ne l'es pas, que Dieu te pardonnes.

Hors ligne

 

#17 06-06-2007 08:54:23

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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.


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#18 06-06-2007 09:36:22

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#19 06-06-2007 12:24:19

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

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


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#20 06-06-2007 20:23:40

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

fichier geolocalisation.php

Code: 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

Code:

alert(routeinfo);

par

Code:

document.getElementById('resultDiv').value=routeinfo;

et ajouter apres

Code:

<div id='myMap' style="position:absolute; width:620px; height:480px;"></div>
<input type="hidden" id="resultDiv" />

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#21 10-06-2007 20:34:06

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

http://img19.imageshack.us/img19/9021/pbmapiae3.th.jpg

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... 


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#22 11-06-2007 08:10:56

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie



Merci chef
Mais en pb10 cela explose
Il faut ajouter dans event externalexception de ole_Browser

Code: pb

Action = ExceptionSubstituteReturnValue!
ReturnValue = 0

Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#23 11-06-2007 13:29:52

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

il y a un exemple ici
vroum vroum


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#24 11-06-2007 22:24:50

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

on peut tracer un itinéraire via google map, avec les longitudes et latitudes.

http://pbadonf.fr/forum/mapi/directions … 9,2.360162


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#25 11-06-2007 22:56:38

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [SOURCE à faire évoluer] Powerbuilder EarthMAPI Cartographie

version 3, disponible depuis le début du topic...

http://img340.imageshack.us/img340/5415/cheminpe3.th.jpg


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22