【发布时间】:2015-03-18 19:39:15
【问题描述】:
我目前正在构建一个 Phonegap 应用以及 Google 的 Map JS API。
我有一张地图,您可以拖动它来选择您的下车地点。这是通过在“dragend”事件上收集地图的中心地理位置来完成的。然后,我在地图顶部(JS 地图之外)设置了一个图钉,以便您知道中心点在哪里。
一切正常,直到您捏合缩放然后大头针移位。这是由于您在捏屏幕时同时缩放和拖动地图。
有什么方法可以防止拖动缩放以将地图保持在其中心点?
Please view the JSfiddle here.
var map;
google.maps.event.addDomListener(window, 'load', onMapReady);
function onMapReady() {
var center = new google.maps.LatLng(30.267153, -97.743061);
var mapOptions = {
center: center,
zoom: 13,
styles: [{"featureType": "poi", "stylers": [{ "visibility": "off" }]},{"featureType": "transit","stylers": [{ "visibility": "off" }]}],
disableDefaultUI: true,
};
map = new google.maps.Map(document.getElementById('map'), mapOptions);
google.maps.event.addListener(map, 'dragend', function() {
center = map.getCenter();
$('#log').html('Lat: ' + center.lat() + ' Lng: ' + center.lng());
});
}
【问题讨论】:
-
问题:1) 为什么不使用
google.map.Marker来保持相同的位置? 2) 这应该只发生一次还是每次用户停止拖动地图时发生? -
我使用 getCenter();使用叠加标记而不是实际标记,因为如果在拖动地图时将标记位置更新到地图中心,标记会滞后/跳跃。
-
标记滞后/跳跃?我看不出为什么会发生这种情况。
-
@MrUpsidown 这是一个例子:jsfiddle.net/pLq8s4xt 它在移动设备上的性能更差,并且在您捏合缩放时遇到相同的标记移动问题。
标签: javascript google-maps cordova google-maps-api-3