web-dev-qa-db-fra.com

Marqueur Google maps v3

Je suis nouveau dans google maps et j'essaie de l'apprendre. 

marker = new google.maps.Marker(
{
     map:map,
     draggable:true,
     animation: google.maps.Animation.DROP,
     position: results[0].geometry.location
});

Ceci est ma position de marqueur, lorsque je l'initialise, je connais le nom du lieu (par exemple: XY street, New York,), mais en raison de l'option déplaçable, cela change le nouveau nom de lieu, de quel gestionnaire d'événements ai-je besoin. 

54
OHLÁLÁ

Finalement j'ai trouvé la réponse:

marker = new google.maps.Marker(
{
    map:map,
    draggable:true,
    animation: google.maps.Animation.DROP,
    position: results[0].geometry.location
});
google.maps.event.addListener(marker, 'dragend', function() 
{
    geocodePosition(marker.getPosition());
});

function geocodePosition(pos) 
{
   geocoder = new google.maps.Geocoder();
   geocoder.geocode
    ({
        latLng: pos
    }, 
        function(results, status) 
        {
            if (status == google.maps.GeocoderStatus.OK) 
            {
                $("#mapSearchInput").val(results[0].formatted_address);
                $("#mapErrorMsg").hide(100);
            } 
            else 
            {
                $("#mapErrorMsg").html('Cannot determine address at this location.'+status).show(100);
            }
        }
    );
}
114
OHLÁLÁ

Définir une position sur la carte à l'aide de lat/lang et rendre le marqueur déplaçable

  • L'utilisation de lat/lang définit initialement un marqueur à un point donné sur la carte

  • La variable d'adresse est utilisée pour le titre. Il peut être ignoré.

  • draggable: true rend le marqueur déplaçable.

  • Utiliser l'écouteur d'événements google.maps.event.addListener (marqueur, 'glisser-déposer', fonction (marqueur) Pour écouter les changements dans la position du marqueur

    function showMap(lat,lang,address) {
    var myLatLng = {lat: lat, lng: lang};
    
        var map = new google.maps.Map(document.getElementById('map_canvas'), {
          zoom: 17,
          center: myLatLng
        });
    
        var marker = new google.maps.Marker({
          position: myLatLng,
          map: map,
          title: address,
          draggable:true,
        });
    
        google.maps.event.addListener(marker, 'dragend', function(marker){
            var latLng = marker.latLng; 
            currentLatitude = latLng.lat();
            currentLongitude = latLng.lng();
            jQ("#latitude").val(currentLatitude);
            jQ("#longitude").val(currentLongitude);
         }); 
    }
    
18
Ahmad Vaqas Khan

Veuillez suivre les trois étapes ci-dessous pour obtenir un marqueur glissable avec la position dans la zone de texte.

  1. CSS

    <style> #map { height: 400px; width: 100%; } </style>

  2. HTML

    <div id="map"></div> Latitude <input type="text" id="la" name="latitude" value="28.39" > Longitude<input type="text" id="lo" name="longitude" value="84.12" >

  3. JavaScript

    <script> /** *Receiving the value of text box and type done conversion by Number() */ var latitude = Number(document.getElementById("la").value); var longitude = Number(document.getElementById("lo").value); function initMap() { /** *Passing the value of variable received from text box **/ var uluru = {lat: latitude, lng: longitude}; var map = new google.maps.Map(document.getElementById('map'), {zoom: 7,center: uluru} ); marker = new google.maps.Marker( { map:map, draggable:true, animation: google.maps.Animation.DROP, position: uluru } ); google.maps.event.addListener(marker, 'dragend', function(marker){ var latLng = marker.latLng; currentLatitude = latLng.lat(); currentLongitude = latLng.lng(); $("#la").val(currentLatitude); $("#lo").val(currentLongitude); } ); } </script><!--Google Map API Link--> <script async defer src="https://maps.googleapis.com/maps/api/js?key=YOURAPIKEYHERE&callback=initMap"> </script>
    NOTE: Veuillez utiliser Jquery en tête

0
Karma