我需要确定是否正在从从东到西或从西到东拖动Google地图。一旦我输入地图和方向的组合,Google搜索就会抛出大量的行车路线搜索结果,但与无关拖动关键字。虽然可能会有一些与我无关的相关结果。
目前我通过比较当前中心的经度和center_changed
事件中的新中心来做到这一点 -
google.maps.event.addListener(map, 'center_changed', function() {
var newCenter = map.getCenter();
var markerIcon;
if (newCenter.lng() > currentLongitude) {
markerIcon = goingEast;
} else {
markerIcon = goingWest;
}
var marker = new google.maps.Marker({
position: map.getCenter(),
map: map,
icon: markerIcon
});
});
我想知道这是否是正确的方法,或者有一个属性/方法等直接告诉我我需要知道什么。
答案 0 :(得分:0)
没有内置方法或属性。一旦越过国际日期行,您的方法也可能无法提供所需的结果。
想象一下,你从伦敦经纽约飞往东京。你会说你飞向西方方向,但你的方法会说你飞向东方,因为伦敦的经度是0和Tokio 140的经度。当你拖动地图时会发生同样的情况。
改为使用map-div的mouseEvents:
mapOptions);
google.maps.event.addListener(map, 'dragstart', function(){
google.maps.event.addDomListenerOnce(map.getDiv(),
'mousemove',
function(e){map.set('x',e.clientX);})
});
google.maps.event.addListener(map, 'dragend', function(){
google.maps.event.addDomListenerOnce(map.getDiv(),
'mouseup',
function(e){alert((e.clientX<map.get('x'))
?'left':'right');})
});