11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Il y a une petites choses que je n'arrive pas à faire sur ma carte google map à cette adresse :
http://www.aquariophilie.org/magasins/index.php?ordre=1&start=0&mag=15

J'utilise le service geocoder de la doc de google, je souhaiterai que cette fonction se charge automatiquement à l'ouverture de la page plutôt que de cliquer sur le bouton :

        <input id="address" type="hidden" value="'.$codeAddress.'">
        <input type="button" value="Situer '.$mag_nom.' sur le plan" onclick="codeAddress()">';

le code pour charger la carte est :

        <script type="text/javascript">
        window.onload = function() {initialize();};
        </script>
        <div id="EmplacementDeMaCarte" style="width:100%; height:400px"></div>

J'ai essayé de créer une fonction qui charge les autres mais j'ai pas réussi. J'avais fait un truc comme ca :
function lancer_fonction ()
{
initialize();
codeAddress();
}

Avez vous une idée ?
Merci pour l'info Heyoan, ca marche super ! L'article pour bien coder en Javascript est très bien fait ... même si j'ai pas encore tout lu et que j'ai un peu de mal sur certains trucs Smiley lol

Je met direct ici la solution si quelqu'un a le même problème, la fonction :

<script type="text/javascript">
function addLoadEvent(func)
{
   var oldonload = window.onload;
   if(typeof window.onload != 'function')
   {
      window.onload = func;
   }
   else
   {
      window.onload = function()
      {
         oldonload();
         func();
      }
   }
}
</script>


et l'appel des mes fonctions :


<script type="text/javascript">
addLoadEvent(initialize);
addLoadEvent(codeAddress);
</script>


Merci !
Modifié par Nicolas-Asso (23 Sep 2010 - 09:12)
Bonjour,

Je pose une autre question dans ce topic car ca concerne toujours Google map !

Voilà mon code entier (désolé c'est un peu long)


<script type="text/javascript">
  var geocoder;
  var map;

  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng<?php echo $coordo; ?>;
    var myOptions = {
      zoom: 9,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), myOptions);
    var centreCarte = new google.maps.LatLng<?php echo $coordo; ?>;
    var optionsMarqueur = {
            map: map,
            position: centreCarte,
            title: "Ma position"
     }
     var marqueur = new google.maps.Marker(optionsMarqueur);
  }

  function codeAddress() {
    var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location,
            title: "<?php echo $mag_nom; ?>"
        });
      } else {
        alert("Erreur Geocode pour la raison suivante: " + status);
      }
    });
  }
</script>


Le but du jeu serai d'enregistrer les cordonnées Lat et Lng dans une base de donnée MySQL.

Savez vous comment extraire Lat et Lng de results[0].geometry.location et comment les enregistrer dans ma BDD ?

J'ai cherché dans la doc google mais j'ai pas trouvé comment faire !

Par avance merci !
Modifié par Nicolas-Asso (23 Sep 2010 - 21:17)