无法使用JavaScript在Google地图中正确拖动标记
我无法使用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
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}] 创建一个包含两个元素的数组,并在循环中创建两个标记