2017-04-11 12 views
-1

問題があります。私はJavascriptを使用してGoogleマップのマーカーをドラッグすることはできません。私は以下のコードを説明しています。Javascriptを使用してGoogleマップでマーカーを正しくドラッグできない

geocoder.geocode({ 'address': addrs}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     $('#latitude').val(results[0].geometry.location.lat()); 
     $('#longitude').val(results[0].geometry.location.lng()); 
     var latitude=results[0].geometry.location.lat(); 
     var longitude=results[0].geometry.location.lng(); 
     var title=document.getElementById('googleMap').value; 
     var desc=title+","+address; 
     console.log(latitude,longitude); 
     var markers = [{"lat":latitude,"lng":longitude},{"title": title,"lat":latitude,"lng":longitude,"description":desc}]; 
    // $window.addEventListener('load', onload, false); 
    // $window.onload = function() { 
    setTimeout(function(){ 
     var mapOptions = { 
     center: new google.maps.LatLng(markers[0].lat, markers[0].lng), 
       zoom: 10, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
       }; 
       var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions); 
       google.maps.event.trigger(map, "resize"); 
       var infoWindow = new google.maps.InfoWindow(); 
       var lat_lng = new Array(); 
       var latlngbounds = new google.maps.LatLngBounds(); 
       for (i = 0; i < markers.length; i++) { 
       var data = markers[i] 
       var myLatlng = new google.maps.LatLng(data.lat, data.lng); 
       lat_lng.push(myLatlng); 
       var marker = new google.maps.Marker({ 
       draggable: true, 
       position: myLatlng, 
       map: map, 
       title: data.title 
       }); 
       latlngbounds.extend(marker.position); 
       (function (marker, data) { 
       google.maps.event.addListener(marker, "click", function (e) { 
       infoWindow.setContent(data.description); 
       infoWindow.open(map, marker); 
       }); 
       })(marker, data); 
       google.maps.event.addListener(marker, 'dragend', function (event) { 
        var latdrag = this.getPosition().lat(); 
        var longdrag= this.getPosition().lng(); 
        console.log('latlong',latdrag,longdrag); 
       }); 
       } 
       map.setCenter(latlngbounds.getCenter()); 
       map.fitBounds(latlngbounds); 
       zoomChangeBoundsListener = 
       google.maps.event.addListenerOnce(map, 'bounds_changed', function(event) { 
if (this.getZoom()){ 
    this.setZoom(12); 
} 
}); 
setTimeout(function(){google.maps.event.removeListener(zoomChangeBoundsListener)}, 2000); 
},2000); 
} 
else { 
    alert("Geocode was not successful for the following reason: " + status); 
       } 
}); 

ここでミュー問題は、私はマーカーをドラッグすることができているが、私は1つの新しいマーカーは場所をdropableするために来ていると、最初のものはまだそこにあるdragingいながら。ここで私は単一のマーカーがどこにでもドラッグされ、新しいマーカーは作成されません。この問題を解決するのを助けてください。

答えて

1

同じ場所に2つのマーカーを作成し、上のマーカーをドラッグします。

var marker = [{"lat":緯度、 "lng":経度}、{"タイトル":タイトル、 "lat":緯度、 "lng":経度、 "description":desc}];

は、2つの要素を持つ配列を作成し、ループ内に2つのマーカーが作成されます。

関連する問題