Yaq*_*mad 6 internet-explorer google-maps touchscreen google-maps-api-3 windows-8
我们遇到了与Google Maps API V3相关的问题.问题是,当我们拖动标记时,地图也会开始拖动.
我们仅在Windows 8环境+ Internet Explorer的触摸屏上遇到此问题,在NORMAL屏幕/移动屏幕上很好 - 基本/其他浏览器(Safari和FireFox).
我们使用下面的解决方案,但它eval javascript error在Internet Explorer9和10中抛出error():
google.maps.event.addListener(marker, 'dragstart', function(){
mapObject.setOptions({ draggable: false });
});
google.maps.event.addListener(marker, 'dragend', function(){
mapObject.setOptions({ draggable: true });
});
Run Code Online (Sandbox Code Playgroud)
我们还在这里报告了这个问题: gmaps-api-issues
编辑:
我们也在这里发布了相关问题.
终于取得了一些成功(地图仍然移动了一点,但目前可以忽略)!
声明了两个变量:
var isAnyMarkerIsInDraggingState = false;// if a marker is in drag state this value will be TRUE otherwise FALSE
var mapCenterPositionAtTheTimeWhenMarkerWasDragged;// Map Center Position
Run Code Online (Sandbox Code Playgroud)
当标记被拖动时:
google.maps.event.addListener(objMarker, 'dragstart', function () {
// Store map center position when a marker is dragged
mapCenterPositionAtTheTimeWhenMarkerWasDragged = mapObject.getCenter();
isAnyMarkerIsInDraggingState = true;
});
Run Code Online (Sandbox Code Playgroud)
当标记被放下时(拖动结束):
google.maps.event.addListener(objMarker, 'dragend', function () {
// Make Map draggable
// Set isAnyMarkerIsInDraggingState = false. Because no marker is in drag state
mapObject.setOptions({ draggable: true });
isAnyMarkerIsInDraggingState = false;
});
Run Code Online (Sandbox Code Playgroud)
当地图拖动开始时:
google.maps.event.addListener(mapObject, 'dragstart', function () {
// isAnyMarkerIsInDraggingState = true: means the user is dragging a marker.
// If the user is dragging the Marker then don't allow the Map to be Dragged
if (isAnyMarkerIsInDraggingState) {
mapObject.setOptions({ draggable: false });
}
});
Run Code Online (Sandbox Code Playgroud)
当地图处于拖动状态时:
google.maps.event.addListener(mapObject, 'drag', function () {
// isAnyMarkerIsInDraggingState = true: means the user is dragging a marker.
// If the user is dragging the Marker then don't allow the Map to be Dragged and set its CenterPosition
// to mapCenterPositionAtTheTimeWhenMarkerWasDragged
if (isAnyMarkerIsInDraggingState) {
mapObject.setCenter(mapCenterPositionAtTheTimeWhenMarkerWasDragged);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |