Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用JavaScript在Google地图中正确拖动标记_Javascript_Google Maps - Fatal编程技术网

无法使用JavaScript在Google地图中正确拖动标记

无法使用JavaScript在Google地图中正确拖动标记,javascript,google-maps,Javascript,Google Maps,我无法使用JavaScript拖动Google地图的标记。这是我的密码: geocoder.geocode( { 'address': addrs}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { $('#latitude').val(results[0].geometry.location.lat()); $('#longitude').val(res

我无法使用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);
              }
});
geocoder.geocode({'address':addrs},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
$('#latitude').val(结果[0].geometry.location.lat());
$('#longitude').val(结果[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=标题+“,”+地址;
console.log(纬度、经度);
var标记=[{“lat”:纬度,“lng”:经度},{“title”:title,“lat”:纬度,“lng”:经度,“description”:desc}];
//$window.addEventListener('load',onload,false);
//$window.onload=函数(){
setTimeout(函数(){
变量映射选项={
中心:新建google.maps.LatLng(标记[0].lat,标记[0].lng),
缩放: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=新阵列();
var latlngbounds=new google.maps.latlngbounds();
对于(i=0;i

这里我的问题是我可以拖动标记,但当我拖动新标记时,新标记将到达可拖放位置,第一个标记仍在那里。这里我需要单个标记只拖动到任何位置,不会创建新标记。

您正在同一位置创建两个标记并拖动顶部标记

var标记=[{“lat”:纬度,“lng”:经度},{“title”:title,“lat”:纬度,“lng”:经度,“description”:desc}]

创建一个包含两个元素的数组,并在循环中创建两个标记