Aller au contenu

sparh

Hubmaster
  • Compteur de contenus

    583
  • Inscrit(e) le

  • Dernière visite

Posts marqués comme meilleure réponse

  1. sparh's post dans API google map V3a été marqué comme meilleure réponse   
    Bonjour,



    dans ton code le script pour afficher l'adresse est appelé par


    <input type="button" value="Obtenir la ville..." onclick="retrieve()">

    Il suffit donc d'appeler la fonction retreive() au chargement de la page (une fois qu'on a géolocalisé l'utilisateur)



    Voilà le nouveau javascript (il y a juste une nouvelle ligne sous map.panTo(latlng); )


    <script type="text/javascript">

    /* Déclaration des variables */
    var geocoder;
    var map;
    var infowindow = new google.maps.InfoWindow();
    var marker;

    /* Fonction d'initialisation de la map appelée au chargement de la page */
    function initialize() {

    if(navigator.geolocation) {

    // Fonction de callback en cas de succès
    function affichePosition(position) {

    var infopos = "";
    infopos += position.coords.latitude +",";
    infopos += position.coords.longitude;
    document.getElementById('latlng').value = infopos;


    // On instancie un nouvel objet LatLng pour Google Maps
    var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

    // Ajout d'un marqueur à la position trouvée
    var marker = new google.maps.Marker({
    draggable : true,
    autoPan:true,
    position: latlng,
    map: map

    });

    map.panTo(latlng);
    retrieve(); // tu peux qussi mettre codeLatLng(infopos);

    }

    // Fonction de callback en cas d’erreur
    function erreurPosition(error) {
    var info = "Erreur lors de la géolocalisation : ";
    switch(error.code) {
    case error.TIMEOUT:
    info += "Timeout !";
    break;
    case error.PERMISSION_DENIED:
    info += "Vous n’avez pas donné la permission";
    break;
    case error.POSITION_UNAVAILABLE:
    info += "La position n’a pu être déterminée";
    break;
    case error.UNKNOWN_ERROR:
    info += "Erreur inconnue";
    break;
    }

    }

    navigator.geolocation.getCurrentPosition(affichePosition,erreurPosition);

    } else {

    alert("Ce navigateur ne supporte pas la géolocalisation");
    }
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(48.8566667, 2.3509871);
    var myOptions = {
    zoom: 8,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);


    }
    /* Fonction de géocodage inversé (en fonction des coordonnées de l'adresse) */
    function codeLatLng(input) {
    var latlngStr = input.split(",",2);
    var lat = parseFloat(latlngStr[0]);
    var lng = parseFloat(latlngStr[1]);
    var latlng = new google.maps.LatLng(lat, lng);
    geocoder.geocode({'latLng': latlng}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
    if (results[0]) {
    map.setZoom(11);
    marker = new google.maps.Marker({
    position: latlng,
    map: map
    });
    var elt = results[0].address_components;
    for(i in elt){
    if(elt[i].types[0] == 'postal_code')
    document.getElementById('cp').value = elt[i].long_name;
    if(elt[i].types[0] == 'locality')
    document.getElementById('adr').value = elt[i].long_name;
    if(elt[i].types[0] == 'administrative_area_level_2')
    document.getElementById('dpt').value = elt[i].long_name;
    if(elt[i].types[0] == 'country')
    document.getElementById('pays').value = elt[i].long_name;

    }
    infowindow.setContent(results[0].formatted_address);
    infowindow.open(map, marker);
    map.setCenter(latlng);
    }
    } else {
    alert("Geocoder failed due to: " + status);
    }
    });
    }
    function retrieve(){
    var input = document.getElementById("latlng").value;
    codeLatLng(input);
    }

    </script>

    bonne journée

×
×
  • Créer...