Après windows pour les nuls, voici PB pour les bons (ou presque).

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.

#26 13-06-2007 08:54:17

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 ce code et j'aimerai faire des ameliorations mais je ne sais pas comment ni si cela est possible.
J'aimerai
1. avoir un n° ou l'adresse du point dans les icones de la map pour le 1 itineraire
(exemple "1" pour le depart "2" pour le passage "3" pour l'arrivée) (voir meme changer les icones)
2. avoir 2 couleurs dif pour les 2 itineraires
3. pourvoir imprimer le premier ou le 2ieme itineraire ou la map
4. pouvoir recuperer dans l'itineraire 1 le temps et le Km entre le point 1 et le point 2 et entre le point 2 et le point 3 ( je sais recuperer le temps total grace à "getDuration" &"getDistance")


Merci pour votre aide

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>Google Map</title>
    <script src="http://maps.google.com/?file=api&v=2.x&key=ABQIAAAAh2zoWMP0DQLo9f7vBYl0hBSyaqskaCUMELwiGYjmANrqiZdV2BQ0uMpj7_WCl34Qp6K8cwrz9MMJpg"
      type="text/javascript"></script>

    <style type="text/css">
      v\:* {
        behavior:url(#default#VML);
      }
      body {
        font-family: Verdana, Arial, sans serif;
        font-size: 11px;
        margin: 1px;
      }
        table.directions1 th {
        background-color:#EEEEEE;
        }
        table.directions2 th {
        background-color:#EEEEEE;
        }
      img {
        color: #000000;
      }
    </style>

    <script type="text/javascript">
    //<![CDATA[

    var map;
    var gdir1;
    var gdir2;
    var geocoder = null;
    var addressMarker;
    var fromAddress = "6 BIS RUE JULES GUESDE 59390 LYS LEZ LANNOY";
    var toAddress = "1 RUE PAUL LANGEVIN 59260 LEZENNES to: 27 AVENUE DE LA REPUBLIQUE 59160 LOMME";
    var fromAddress2 = "4 BOULEVARD GAMBETTA 59100 ROUBAIX";
    var toAddress2 = "40 RUE SAINT JACQUES 59200 TOURCOING";
    var locale = "fr";

    function load() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

        gdir1 = new GDirections(map, document.getElementById("directions1"));
        GEvent.addListener(gdir1, "load", onGDirectionsLoad);
        GEvent.addListener(gdir1, "error", handleErrors);

        gdir2 = new GDirections(map, document.getElementById("directions2"));
        GEvent.addListener(gdir2, "load", onGDirectionsLoad);
        GEvent.addListener(gdir2, "error", handleErrors);

        setDirections(fromAddress, toAddress,fromAddress2, toAddress2, locale);
      }
    }
    
    function setDirections(fromAddress, toAddress,fromAddress2, toAddress2, locale) {
      gdir1.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });
      gdir2.load("from: " + fromAddress2 + " to: " + toAddress2,
                { "locale": locale } ,{getPolyline:false});
//                { "locale": locale } ,{getPolyline:false});
    }

    function handleErrors(){
     if (gdir1.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
       alert("Aucun endroit géographique correspondant n'a pu être trouvé pour une des adresses indiquées. Ceci peut être dû au fait que l'adresse est relativement nouvelle, ou elle peut être incorrecte.\nError code: " + gdir1.getStatus().code);
     else if (gdir1.getStatus().code == G_GEO_SERVER_ERROR)
       alert("Geocoding ou une demande de directions ne pourrait pas être avec succès traité, pourtant la raison exacte de l'échec n'est pas connue.\n Error code: " + gdir1.getStatus().code);
     
     else if (gdir1.getStatus().code == G_GEO_MISSING_QUERY)
       alert(" Le paramètre de HTTP q ne manquait ou a eu aucune valeur. Pour des demandes de geocoder, ceci signifie qu'une adresse vide a été indiquée comme entrée. Pour des demandes de directions, ceci signifie qu'aucune question n'a été indiquée dans l'entrée .\n Error code: " + gdir1.getStatus().code);

  //   else if (gdir1.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: " + gdir1.getStatus().code);
       
     else if (gdir1.getStatus().code == G_GEO_BAD_KEY)
       alert("La clef donnée est invalide ou pas match le domaine pour lequel il a été donné . \n Error code: " + gdir1.getStatus().code);

     else if (gdir1.getStatus().code == G_GEO_BAD_REQUEST)
       alert("Une demande de directions n'a pas pu être avec succès analysée .\n Error code: " + gdir1.getStatus().code);
      
     else if (gdir2.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
       alert("Aucun endroit géographique correspondant n'a pu être trouvé pour une des adresses indiquées. Ceci peut être dû au fait que l'adresse est relativement nouvelle, ou elle peut être incorrecte.\nError code: " + gdir2.getStatus().code);
     else if (gdir2.getStatus().code == G_GEO_SERVER_ERROR)
       alert("Geocoding ou une demande de directions ne pourrait pas être avec succès traité, pourtant la raison exacte de l'échec n'est pas connue.\n Error code: " + gdir2.getStatus().code);
     
     else if (gdir2.getStatus().code == G_GEO_MISSING_QUERY)
       alert(" Le paramètre de HTTP q ne manquait ou a eu aucune valeur. Pour des demandes de geocoder, ceci signifie qu'une adresse vide a été indiquée comme entrée. Pour des demandes de directions, ceci signifie qu'aucune question n'a été indiquée dans l'entrée .\n Error code: " + gdir2.getStatus().code);

  //   else if (gdir2.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: " + gdir2.getStatus().code);
       
     else if (gdir2.getStatus().code == G_GEO_BAD_KEY)
       alert("La clef donnée est invalide ou pas match le domaine pour lequel il a été donné . \n Error code: " + gdir2.getStatus().code);

     else if (gdir2.getStatus().code == G_GEO_BAD_REQUEST)
       alert("Une demande de directions n'a pas pu être avec succès analysée .\n Error code: " + gdir2.getStatus().code);
      
     else   alert("Une erreur inconnue s'est produite .");
     
  }

  function onGDirectionsLoad(){ 
          // Use this function to access information about the latest load()
          // results.

          // e.g.
      document.getElementById("getDuration").value = gdir1.getDuration().seconds;
      document.getElementById("getDistance").value = gdir1.getDistance().meters;
//      document.getElementById("getDuration").value = gdir2.getDuration().seconds;
//      document.getElementById("getDistance").value = gdir2.getDistance().meters;
  }


    //]]>
    </script>

  </head>
  <body onload="load()" onunload="GUnload()">
<input type="hidden" id="getDuration" name="getDuration"  size="30" />
<input type="hidden" id="getDistance" name="getDistance"  size="30" />
<input type="hidden" id="getSummaryHtml" name="getSummaryHtml"  size="10000" />

  <form action="#" onsubmit="setDirections(this.from.value, this.to.value,this.from.value, this.to.value, locale); return false">

  </form>

    <br/>
    <table class="directions">
    <tr><th>Itineraire1 </th><th>Itineraire2 </th><th>Map</th></tr>

    <tr>
    <td valign="top"><div id="directions1" style="width: 275px"></div></td>
    <td valign="top"><div id="directions2" style="width: 275px"></div></td>
    <td valign="top"><div id="map" style="width: 410px; height: 500px"></div></td>

    </tr>
    </table>    

    
  </body>
</html>

Dernière modification par JCZ (13-06-2007 11:47:31)


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

Hors ligne

 

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

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

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

JCZ a écrit:



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

Code: pb

Action = ExceptionSubstituteReturnValue!
ReturnValue = 0

Moi j'ai mis l'appel au GoBack() en commentaire pour que ça marche en 10.5
Je vais ajouter tes deux lignes...


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#28 14-06-2007 18:54:22

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

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

Chrnico a écrit:

JCZ a écrit:



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

Code: pb

Action = ExceptionSubstituteReturnValue!
ReturnValue = 0

Moi j'ai mis l'appel au GoBack() en commentaire pour que ça marche en 10.5
Je vais ajouter tes deux lignes...

En ajoutant les deux lignes dans externalexception  avec le ReturnValue 0 ça boucle à l'infini et ça ouvre des pages web à neplus finir
Donc finalement il vaut mieux laisser l'appel au GoBack() en commentaire pour le moment.


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#29 14-06-2007 19:00:37

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

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

Il y en a qui planchent sur le même problème et qui ont des soluces a priori

http://grenoble.jeudego.org/indexF.php? … vt268.html

Extrait

Après quelques experimentations, il semble que le mieux pour obtenir les coordonnées soit d'uiliser google map:

1- Aller sur google map: http://maps.google.fr
2- Entrer l'adresse à localiser
3- double-cliquer sur la punaise du lieu recherché
3- cliquer sur 'obtenir l'url de cette page' (au dessus à droite de la map)
4- Récupérer les coordonnées latitude et longitude dans la barre d'adresse. Les valeurs se trouvent derrière le tag &ll OU, si le tag &ll n'existe pas, derriere le tag &sll. S'il y a les 2, prendre les valeurs derriere &ll.

Reste a résoudre le prob du double-clique sur la punaise


Autre lien :
http://seig.ensg.ign.fr/fiche.php3?NOCO … =&RPC=

Dernière modification par Chrnico (14-06-2007 19:07:07)


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#30 14-06-2007 19:19:53

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 ne sais pas si tu as vu, mais nous savons deja faire cela...
recuperer les coordonnees latitude et longitude...
c'est plutot l'adresse qui nous interesse... à moins que j'ai loupé quelque chose dans ses liens...


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

Hors ligne

 

#31 14-06-2007 19:30:14

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

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

pick ouic a écrit:

je ne sais pas si tu as vu, mais nous savons deja faire cela...
recuperer les coordonnees latitude et longitude...
c'est plutot l'adresse qui nous interesse... à moins que j'ai loupé quelque chose dans ses liens...

Non j'avais pas vu. Désolé


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#32 14-06-2007 19:47:55

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

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

pick ouic a écrit:

je ne sais pas si tu as vu, mais nous savons deja faire cela...
recuperer les coordonnees latitude et longitude...
c'est plutot l'adresse qui nous interesse... à moins que j'ai loupé quelque chose dans ses liens...

J'arrive peut-être encore après la bataille mais le paragraphe "Extracting Structured Address Information" de la page suivante me semble assez instructif....
http://www.google.com/apis/maps/documen … g_Examples


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#33 14-06-2007 20:03:49

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

en mettant comme ca, ca ira peut etre mieux ?

Code: pb

/**********************************************************************************************/
/* Nom    : titlechange ole_browser                                        */
/* But    :                                                        */
/* Arguments:                                                        */
/* Appel    :                                                         */
/* Remarques:                                                         */
/* Histo    : SKA - juin 2007                                               */
/**********************************************************************************************/

// contenu l'url
is_url      = Text

if len(trim(is_url)) > 0 and not isnull(is_url) then
  if lower(is_url) <> 'application google map' then
    this.Object.GoBack()
  end if
end if  

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

Hors ligne

 

#34 14-06-2007 20:24:38

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

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

Yep


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#35 14-06-2007 20:50:52

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

Chrnico a écrit:

Moi j'ai mis l'appel au GoBack() en commentaire pour que ça marche en 10.5
Je vais ajouter tes deux lignes...

Il y a effectivement 2 problemes en pb 10.2
1. une explosion -> corriger par
  Action = ExceptionSubstituteReturnValue!
  ReturnValue = 0
2. pas de chargement de la page ( pick ouic j'ai pas testé ton code )
je pense qu'il faut plutot un truc du style

if len(trim(is_url)) > 0 and not isnull(is_url) then
  if pos( lower(is_url) , 'application google map') = 0  then
    this.Object.GoBack()
  end if
end if 

mais je crois qu'on n'a pas le droit de faire cela. C'est les conditions pour utiliser googlemap

----------
pick ouic tu as la meme chose que ( geocodage.php + GoogleMapsHTTPRequest.class.php )

echo '<br />LATITUDE: '.$ga->getVar('latitude');
echo '<br />LONGITUDE: '.$ga->getVar('longitude');

pour pouvoir recuperer la distance et le kmage entre 2 points ?
Cela peut me servir quand j'ai plusieurs etapes dans un itineraie

----------
vous avez trouvé qqchose pour : post #34
J'aimerai
1. avoir un n° ou l'adresse du point dans les icones de la map pour le 1 itineraire
(exemple "1" pour le depart "2" pour le passage "3" pour l'arrivée) (voir meme changer les icones)
2. avoir 2 couleurs dif pour les 2 itineraires
3. pourvoir imprimer le premier ou le 2ieme itineraire ou la map
4. pouvoir recuperer dans l'itineraire 1 le temps et le Km entre le point 1 et le point 2 et entre le point 2 et le point 3 ( je sais recuperer le temps total grace à "getDuration" &"getDistance")

je suis preneur meme avec virtualearth mais il faudrait voir s'il existe une option de langue comme avec google ...
(j'ai pas eu le temps de regarder virtualearth )

----------
vous avez vue que google
http://www.infos-du-net.com/telecharger … -5288.html
Avec pb en version pocketpc .....
mais c'est pour plus tard


@+ les amis


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

Hors ligne

 

#36 15-06-2007 07:49: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

adresses de geocoding...

on peut trouver la ville à partir des latitudes et longitudes.
http://ws.geonames.org/findNearbyPlaceN … g=2.298605
http://www.geonames.org/export/


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

Hors ligne

 

#37 15-06-2007 14:28:59

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

voila, il faut juste mettre ca sur l'evenement titlechange

Code: pb

/**********************************************************************************************/
/* Nom    : titlechange ole_browser                                        */
/* But    :                                                        */
/* Arguments:                                                        */
/* Appel    :                                                         */
/* Remarques:                                                         */
/* Histo    : SKA - juin 2007                                               */
/**********************************************************************************************/

// contenu l'url
is_url      = Text



puis sur l'event documentcomplete

Code: pb

/**********************************************************************************************/
/* Nom    : documentcomplete ole_browser                                    */
/* But    :                                                        */
/* Arguments:                                                        */
/* Appel    :                                                         */
/* Remarques:                                                         */
/* Histo    : SKA - juin 2007                                               */
/**********************************************************************************************/

// contenu html du résultat
is_html       = this.Object.Document.DocumentElement.InnerHTML

if lower(is_url) = 'untitled document' then
  this.Object.GoBack()
end if

if lower(is_url) = 'google maps' then
  this.Object.GoBack()
end if

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

Hors ligne

 

#38 16-06-2007 17:24:57

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

petit up de la version 3, à telecharger...


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

Hors ligne

 

#39 16-06-2007 22:36: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

Tracage de l'itineraire, pour le mode GPS... à voir dans la derniere version 3.


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

Hors ligne

 

#40 19-06-2007 15:13:09

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 solution pour trouver une adresse, par rapport à la latitude et longitude ?
comme vous pouvez le voir sur le map gps, j'ai trouvé un code pour changer la couleur de tracage.

Code: php

var points = [];

for (var i = 0; i < poly.getVertexCount(); i++) { 
    points[i] = poly.getVertex(i);
} 
var mypoly = new GPolyline(points, "#FF0000", 9, 0.6); 
 map.addOverlay(mypoly);

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

Hors ligne

 

#41 19-06-2007 16:28:33

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:

une solution pour trouver une adresse, par rapport à la latitude et longitude ?

non

pick ouic a écrit:

comme vous pouvez le voir sur le map gps, j'ai trouvé un code pour changer la couleur de tracage.

Merci J'avais pas vu ... mais j'arrive pas à le faire marcher ( j'ai pas beaucoup chercher ) si tu as une idée
ci joint code

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>Google Map</title>
    <script src="http://maps.google.com/?file=api&v=2.x&key=ABQIAAAAh2zoWMP0DQLo9f7vBYl0hBSyaqskaCUMELwiGYjmANrqiZdV2BQ0uMpj7_WCl34Qp6K8cwrz9MMJpg"
      type="text/javascript"></script>

    <style type="text/css">
      v\:* {
        behavior:url(#default#VML);
      }
      body {
        font-family: Verdana, Arial, sans serif;
        font-size: 11px;
        margin: 1px;
      }
        table.directions1 th {
        background-color:#EEEEEE;
        }
        table.directions2 th {
        background-color:#EEEEEE;
        }
      img {
        color: #000000;
      }
    </style>

    <script type="text/javascript">
    //<![CDATA[

    var eol;
    var tick = 100; // milliseconds

    var poly;
    var map;
    var distance;
    var gdir1 = new GDirections();
    var gdir2;
    var geocoder = null;
    var load_fin = false;
    var addressMarker;
    var fromAddress = "6 BIS RUE JULES GUESDE 59390 LYS LEZ LANNOY";
    var toAddress = "1 RUE PAUL LANGEVIN 59260 LEZENNES to: 27 AVENUE DE LA REPUBLIQUE 59160 LOMME";
    var fromAddress2 = "4 BOULEVARD GAMBETTA 59100 ROUBAIX";
    var toAddress2 = "40 RUE SAINT JACQUES 59200 TOURCOING";
    var locale = "fr";

      var car = new GIcon();
          car.image="caricon.png"
          car.iconSize=new GSize(32,18);
          car.iconAnchor=new GPoint(16,9);

        var baseIcon = new GIcon();
        baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(20, 34);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
        baseIcon.infoShadowAnchor = new GPoint(18, 25);
        

    function load() {
      var icone_perso = new GIcon();
          icone_perso.image="caricon.png"
          icone_perso.iconSize=new GSize(32,18);
          icone_perso.iconAnchor=new GPoint(16,9);


      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
//        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl())



        gdir1 = new GDirections(map, document.getElementById("directions1"));
        GEvent.addListener(gdir1, "load", onGDirectionsLoad1);
        GEvent.addListener(gdir1, "error", handleErrors);

        gdir2 = new GDirections(map, document.getElementById("directions2"));
        GEvent.addListener(gdir2, "load", onGDirectionsLoad2);
        GEvent.addListener(gdir2, "error", handleErrors);

        setDirections(fromAddress, toAddress,fromAddress2, toAddress2, locale);


      }
    }
    

    function setDirections(fromAddress, toAddress,fromAddress2, toAddress2, locale) {
      gdir1.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });


      gdir2.load("from: " + fromAddress2 + " to: " + toAddress2,
                { "locale": locale } ,{getPolyline:false});


    }

    function handleErrors(){
     if (gdir1.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
       alert("Aucun endroit géographique correspondant n'a pu être trouvé pour une des adresses indiquées. Ceci peut être dû au fait que l'adresse est relativement nouvelle, ou elle peut être incorrecte.\nError code: " + gdir1.getStatus().code);
     else if (gdir1.getStatus().code == G_GEO_SERVER_ERROR)
       alert("Geocoding ou une demande de directions ne pourrait pas être avec succès traité, pourtant la raison exacte de l'échec n'est pas connue.\n Error code: " + gdir1.getStatus().code);
     
     else if (gdir1.getStatus().code == G_GEO_MISSING_QUERY)
       alert(" Le paramètre de HTTP q ne manquait ou a eu aucune valeur. Pour des demandes de geocoder, ceci signifie qu'une adresse vide a été indiquée comme entrée. Pour des demandes de directions, ceci signifie qu'aucune question n'a été indiquée dans l'entrée .\n Error code: " + gdir1.getStatus().code);

  //   else if (gdir1.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: " + gdir1.getStatus().code);
       
     else if (gdir1.getStatus().code == G_GEO_BAD_KEY)
       alert("La clef donnée est invalide ou pas match le domaine pour lequel il a été donné . \n Error code: " + gdir1.getStatus().code);

     else if (gdir1.getStatus().code == G_GEO_BAD_REQUEST)
       alert("Une demande de directions n'a pas pu être avec succès analysée .\n Error code: " + gdir1.getStatus().code);
      
     else if (gdir2.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
       alert("Aucun endroit géographique correspondant n'a pu être trouvé pour une des adresses indiquées. Ceci peut être dû au fait que l'adresse est relativement nouvelle, ou elle peut être incorrecte.\nError code: " + gdir2.getStatus().code);
     else if (gdir2.getStatus().code == G_GEO_SERVER_ERROR)
       alert("Geocoding ou une demande de directions ne pourrait pas être avec succès traité, pourtant la raison exacte de l'échec n'est pas connue.\n Error code: " + gdir2.getStatus().code);
     
     else if (gdir2.getStatus().code == G_GEO_MISSING_QUERY)
       alert(" Le paramètre de HTTP q ne manquait ou a eu aucune valeur. Pour des demandes de geocoder, ceci signifie qu'une adresse vide a été indiquée comme entrée. Pour des demandes de directions, ceci signifie qu'aucune question n'a été indiquée dans l'entrée .\n Error code: " + gdir2.getStatus().code);

  //   else if (gdir2.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: " + gdir2.getStatus().code);
       
     else if (gdir2.getStatus().code == G_GEO_BAD_KEY)
       alert("La clef donnée est invalide ou pas match le domaine pour lequel il a été donné . \n Error code: " + gdir2.getStatus().code);

     else if (gdir2.getStatus().code == G_GEO_BAD_REQUEST)
       alert("Une demande de directions n'a pas pu être avec succès analysée .\n Error code: " + gdir2.getStatus().code);
      
     else   alert("Une erreur inconnue s'est produite .");
     
  }

  function onGDirectionsLoad1(){ 
       distance = "";
       for (var i = 0; i +1 < gdir1.getNumGeocodes(); i++) {
            distance = distance + "#" + gdir1.getRoute(i).getDistance().meters;


            var marque = gdir1.getMarker(i);
            marque = new GMarker(marque.getPoint(),{icon:car});
            map.addOverlay(marque);

         }
        document.getElementById("distance").value = distance;
       alert(distance);
      load_fin = true;


  }
  
  function onGDirectionsLoad2(){ 
          // Use this function to access information about the latest load()
          // results.
          // e.g.
  }

      GEvent.addListener(gdir1,"load", function() {
        document.getElementById("controls").style.display="none";
        poly=gdir1.getPolyline();
        eol=poly.Distance();
        map.setCenter(poly.getVertex(0),17);
        map.addOverlay(new GMarker(poly.getVertex(0),G_START_ICON));
        map.addOverlay(new GMarker(poly.getVertex(poly.getVertexCount()-1),G_END_ICON));
        marker = new GMarker(poly.getVertex(0),{icon:car});
        map.addOverlay(marker);

    for (var i = 0; i < poly.getVertexCount(); i++) { 
      points[i] = poly.getVertex(i); 
       } 
       var mypoly = new GPolyline(points, "#FF0000", 9, 0.6); 
       map.addOverlay(mypoly);

        var steptext = gdir1.getRoute(0).getStep(stepnum).getDescriptionHtml();
        document.getElementById("step").innerHTML = steptext;
        setTimeout("animate(0)",2000);  // Allow time for the initial map display
      });

    //]]>
    </script>

  </head>
  <body onload="load()" onunload="GUnload()">
<input type="hidden" id="getDuration" name="getDuration"  size="30" />
<input type="hidden" id="Distance" name="Distance"  size="300" />
<input type="hidden" id="getSummaryHtml" name="getSummaryHtml"  size="30" />

  <form action="#" onsubmit="setDirections(this.from.value, this.to.value,this.from.value, this.to.value, locale); return false">

  </form>

    <br/>
    <table class="directions">
    <tr><th>Itineraire1 </th><th>Itineraire2 </th><th>Map</th></tr>

    <tr>
    <td valign="top"><div id="directions1" style="width: 275px"></div></td>
    <td valign="top"><div id="directions2" style="width: 275px"></div></td>
    <td valign="top"><div id="map" style="width: 310px; height: 400px"></div></td>

    </tr>
    </table>    

    
  </body>
</html>

Par contre j'ai trouvé pour recuperer la distance et le temps entre les points d'un itineraire
--> voir message alert & meme ajouter un icone ( aujourd'hui "caricon.png" ) pour mettre "depart" "1ieme pause" "arrivée")

Dernière modification par JCZ (19-06-2007 19:08:31)


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

Hors ligne

 

#42 19-06-2007 21:04: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

Code: php

function onGDirectionsLoad1(){ 
       distance = "";
       for (var i = 0; i +1 < gdir1.getNumGeocodes(); i++) {
            distance = distance + "#" + gdir1.getRoute(i).getDistance().meters;


            var marque = gdir1.getMarker(i);
            marque = new GMarker(marque.getPoint(),{icon:car});
            map.addOverlay(marque);

         }

  for (var i = 0; i < poly.getVertexCount(); i++) { 
      points[i] = poly.getVertex(i); 
       } 
       var mypoly = new GPolyline(points, "#FF0000", 9, 0.6); 
       map.addOverlay(mypoly);

        document.getElementById("distance").value = distance;
       alert(distance);
      load_fin = true;


  }

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

Hors ligne

 

#43 19-06-2007 23:40:45

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

tu peux mettre le code de la page html entiere
Cela explose quand je remplace la fonction onGDirectionsLoad1
C'est peut etre parce que j'ai un probleme actuellement avec mon poste ...



P.S :
1. la chaine avec les'#' c'est pour pouvoir la traiter dans pb. Je ne sais pas créer, envoyer ( coté html)et recuperer des tableaux ( cote pb ) provenant d'une page html ... mais cela doit etre faisable
2. il nous reste (pour l'instant ) a :
          a. recuperer une adresse a partir de coordonnée
          b. avoir des icones imprimer pour map ou itineraire
          c. recup dans pb de l'itineaire google
          d. avoir uniquement l'icone ajouté pour l'itinearie 1
          e. voir si google propose des calcule d'itineraire temps ou Km
    voir + si vous avez d'autres idées

Dernière modification par JCZ (20-06-2007 00:21:53)


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

Hors ligne

 

#44 20-06-2007 08:07: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

Code: php

<!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>Google Map</title>
    <script src="http://maps.google.com/?file=api&v=2.x&key=ABQIAAAAh2zoWMP0DQLo9f7vBYl0hBSyaqskaCUMELwiGYjmANrqiZdV2BQ0uMpj7_WCl34Qp6K8cwrz9MMJpg"
      type="text/javascript"></script>

    <style type="text/css">
      v\:* {
        behavior:url(#default#VML);
      }
      body {
        font-family: Verdana, Arial, sans serif;
        font-size: 11px;
        margin: 1px;
      }
        table.directions1 th {
        background-color:#EEEEEE;
        }
        table.directions2 th {
        background-color:#EEEEEE;
        }
      img {
        color: #000000;
      }
    </style>

    <script type="text/javascript">
    //<![CDATA[

    var eol;
    var tick = 100; // milliseconds

    var poly;
    var map;
    var distance;
    var gdir1 = new GDirections();
    var gdir2;
    var geocoder = null;
    var load_fin = false;
    var addressMarker;
    var fromAddress = "6 BIS RUE JULES GUESDE 59390 LYS LEZ LANNOY";
    var toAddress = "1 RUE PAUL LANGEVIN 59260 LEZENNES to: 27 AVENUE DE LA REPUBLIQUE 59160 LOMME";
    var fromAddress2 = "4 BOULEVARD GAMBETTA 59100 ROUBAIX";
    var toAddress2 = "40 RUE SAINT JACQUES 59200 TOURCOING";
    var locale = "fr";
    var points = [];


      var car = new GIcon();
          car.image="caricon.png"
          car.iconSize=new GSize(32,18);
          car.iconAnchor=new GPoint(16,9);

        var baseIcon = new GIcon();
        baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(20, 34);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
        baseIcon.infoShadowAnchor = new GPoint(18, 25);
        

    function load() {
      var icone_perso = new GIcon();
          icone_perso.image="caricon.png"
          icone_perso.iconSize=new GSize(32,18);
          icone_perso.iconAnchor=new GPoint(16,9);


      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map"));
//        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl())



        gdir1 = new GDirections(map, document.getElementById("directions1"));
        GEvent.addListener(gdir1, "load", onGDirectionsLoad1);
        GEvent.addListener(gdir1, "error", handleErrors);

        gdir2 = new GDirections(map, document.getElementById("directions2"));
        GEvent.addListener(gdir2, "load", onGDirectionsLoad2);
        GEvent.addListener(gdir2, "error", handleErrors);

        setDirections(fromAddress, toAddress,fromAddress2, toAddress2, locale);


      }
    }
    

    function setDirections(fromAddress, toAddress,fromAddress2, toAddress2, locale) {
      gdir1.load("from: " + fromAddress + " to: " + toAddress,
                { "locale": locale });


      gdir2.load("from: " + fromAddress2 + " to: " + toAddress2,
                { "locale": locale } ,{getPolyline:false});


    }

    function handleErrors(){
     if (gdir1.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
       alert("Aucun endroit géographique correspondant n'a pu être trouvé pour une des adresses indiquées. Ceci peut être dû au fait que l'adresse est relativement nouvelle, ou elle peut être incorrecte.\nError code: " + gdir1.getStatus().code);
     else if (gdir1.getStatus().code == G_GEO_SERVER_ERROR)
       alert("Geocoding ou une demande de directions ne pourrait pas être avec succès traité, pourtant la raison exacte de l'échec n'est pas connue.\n Error code: " + gdir1.getStatus().code);
     
     else if (gdir1.getStatus().code == G_GEO_MISSING_QUERY)
       alert(" Le paramètre de HTTP q ne manquait ou a eu aucune valeur. Pour des demandes de geocoder, ceci signifie qu'une adresse vide a été indiquée comme entrée. Pour des demandes de directions, ceci signifie qu'aucune question n'a été indiquée dans l'entrée .\n Error code: " + gdir1.getStatus().code);

  //   else if (gdir1.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: " + gdir1.getStatus().code);
       
     else if (gdir1.getStatus().code == G_GEO_BAD_KEY)
       alert("La clef donnée est invalide ou pas match le domaine pour lequel il a été donné . \n Error code: " + gdir1.getStatus().code);

     else if (gdir1.getStatus().code == G_GEO_BAD_REQUEST)
       alert("Une demande de directions n'a pas pu être avec succès analysée .\n Error code: " + gdir1.getStatus().code);
      
     else if (gdir2.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
       alert("Aucun endroit géographique correspondant n'a pu être trouvé pour une des adresses indiquées. Ceci peut être dû au fait que l'adresse est relativement nouvelle, ou elle peut être incorrecte.\nError code: " + gdir2.getStatus().code);
     else if (gdir2.getStatus().code == G_GEO_SERVER_ERROR)
       alert("Geocoding ou une demande de directions ne pourrait pas être avec succès traité, pourtant la raison exacte de l'échec n'est pas connue.\n Error code: " + gdir2.getStatus().code);
     
     else if (gdir2.getStatus().code == G_GEO_MISSING_QUERY)
       alert(" Le paramètre de HTTP q ne manquait ou a eu aucune valeur. Pour des demandes de geocoder, ceci signifie qu'une adresse vide a été indiquée comme entrée. Pour des demandes de directions, ceci signifie qu'aucune question n'a été indiquée dans l'entrée .\n Error code: " + gdir2.getStatus().code);

  //   else if (gdir2.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: " + gdir2.getStatus().code);
       
     else if (gdir2.getStatus().code == G_GEO_BAD_KEY)
       alert("La clef donnée est invalide ou pas match le domaine pour lequel il a été donné . \n Error code: " + gdir2.getStatus().code);

     else if (gdir2.getStatus().code == G_GEO_BAD_REQUEST)
       alert("Une demande de directions n'a pas pu être avec succès analysée .\n Error code: " + gdir2.getStatus().code);
      
     else   alert("Une erreur inconnue s'est produite .");
     
  }

  function onGDirectionsLoad1(){ 
       distance = "";
       for (var i = 0; i +1 < gdir1.getNumGeocodes(); i++) {
            distance = distance + "#" + gdir1.getRoute(i).getDistance().meters;


            var marque = gdir1.getMarker(i);
            marque = new GMarker(marque.getPoint(),{icon:car});
            map.addOverlay(marque);

         }

  poly=gdir1.getPolyline();
       
      for (var i = 0; i < poly.getVertexCount(); i++) { 
        points[i] = poly.getVertex(i); 
         } 
         var mypoly = new GPolyline(points, "#FF0000", 9, 0.6); 
         map.addOverlay(mypoly);

        document.getElementById("distance").value = distance;
       alert(distance);
      load_fin = true;


  }
  
  function onGDirectionsLoad2(){ 
          // Use this function to access information about the latest load()
          // results.
          // e.g.

  }

      

    //]]>
    </script>

  </head>
  <body onload="load()" onunload="GUnload()">
<input type="hidden" id="getDuration" name="getDuration"  size="30" />
<input type="hidden" id="Distance" name="Distance"  size="300" />
<input type="hidden" id="getSummaryHtml" name="getSummaryHtml"  size="30" />

  <form action="#" onsubmit="setDirections(this.from.value, this.to.value,this.from.value, this.to.value, locale); return false">

  </form>

    <br/>
    <table class="directions">
    <tr><th>Itineraire1 </th><th>Itineraire2 </th><th>Map</th></tr>

    <tr>
    <td valign="top"><div id="directions1" style="width: 275px"></div></td>
    <td valign="top"><div id="directions2" style="width: 275px"></div></td>
    <td valign="top"><div id="map" style="width: 310px; height: 400px"></div></td>

    </tr>
    </table>    

    
  </body>
</html>

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

Hors ligne

 

#45 26-06-2007 22:09:10

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

j'ai trouvé ce lien... pour determiner une adresse à partir des lattitudes et longitudes.

http://stevemorse.org/jcal/latlon.php?


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

Hors ligne

 

#46 27-06-2007 10:04: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

Il y a des exemples ici
Si tu peux en faire qqchose


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

Hors ligne

 

#47 27-06-2007 11:35:57

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

  tres tres interessant


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

Hors ligne

 

#48 05-07-2007 22:47:00

jdobosz  
crazy geek
Award: jdbozc
Lieu: boulogne billancourt
Date d'inscription: 24-05-2006
Messages: 81
Pépites: 2,241
Banque: 2,700,351,746,124,543

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

petite info intéressante : cliquer ici

Hors ligne

 

#49 06-07-2007 07:08:32

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

JCZ a écrit:

si on peut l'exploiter ....

L'auteur du site m'a répondu ...



The connection protocol is straightforward.  Simply do a post request to the soapdemo url and pass it the values of Longitude and Latitude as post parameters.

If you can't get that to work, then you might need to see my code that does the connection.  Normally I consider my code proprietary, but some people have asked to buy it and have offered me $300 for it.  If you want, I would make it available to you for the same price.

-- Steve Morse


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

Hors ligne

 

#50 06-07-2007 07:32:06

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

pour une somme modique de 300$


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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22