使用 Google Maps v3,我正在尝试使用始终以地图位置为中心的标记创建地图。当标记可拖动时,标记永远不会在同一地图的镜像上复制(我的意思是您在缩放级别 1 时看到的相同地图)。当标记的拖动被禁用时,它会在地图镜像上复制,但是然后以 zoom:1 左右平移地图最终会导致标记被镜像覆盖。我无法理解这种行为,所以它一定是某种资源管理的事情。但是,真正的问题是我正在尝试提取地图/标记的坐标,但纬度/经度值只是无限增加!由于某种原因,纬度/经度值没有限制......
我知道我在一年前遇到了同样的问题,但我不记得解决方案是什么,而且我从该项目中获得的代码并不清楚是什么解决了它!我认为修复可能与 LatLngBounds 有关?
$(function(){
var map = $('#map').gmap3({
getgeoloc:{
callback : function(latLng){
// GEOLOCATION ALLOWED:
if (latLng){
$(this).gmap3({
marker:{
latLng:latLng,
options:{
draggable:false
},
events:{
dragend: function(marker, event, context){
window.currentmarkercenter = marker.getPosition();
document.getElementById('markerCoordinates').innerHTML = window.currentmarkercenter;
var map = $(this).gmap3("get");
map.panTo(window.currentmarkercenter);
}
}
},
map:{
options:{
center:latLng,
zoom:14
},
events:{
center_changed: function(map, event, context){
window.currentmapcenter = map.getCenter();
document.getElementById('markerCoordinates').innerHTML = window.currentmapcenter;
var marker = $(this).gmap3({get:{name:"marker"}});
marker.setPosition(window.currentmapcenter);
}
}
}
});
window.geolocation = 1;
} else {
//GEOLOCATION DENIED:
$(this).gmap3({
marker:{
latLng:[38.27269, -96.46094],
options:{
draggable:false
},
events:{
dragend: function(marker, event, context){
window.currentmarkercenter = marker.getPosition();
document.getElementById('markerCoordinates').innerHTML = window.currentmarkercenter;
var map = $(this).gmap3("get");
map.panTo(window.currentmarkercenter);
}
}
},
map:{
events:{
center_changed: function(map, event, context){
window.currentmapcenter = map.getCenter();
document.getElementById('markerCoordinates').innerHTML = window.currentmapcenter;
}
}
}
});
}
}
}
});
});
HTML:
<div id="map" style="width:100%;margin-left:auto;margin-right:auto;"></div>
<div id="markerCoordinates" style="display:block;position:absolute;top:6px;left:42px;"></div>
我也在使用http://gmap3.net/en/,我现在会后悔的决定,除了当我用它的一个演示文件中的代码替换我的 JS 时(在map & 让你平移),坐标值和“地图镜像”按预期工作!我难住了!