【发布时间】:2011-11-23 04:42:49
【问题描述】:
我正在向 v3 api 中的地图添加一组标记。一切正常,但是当我拖动地图(足以使标记离开屏幕),放大,然后将地图拖回原始中心时,标记图像大致偏移了我拖动地图的距离。它们仍然以正确的形状排列,只是移动了。
其他几点说明:
- 如果我拖动而不放大,或者如果我拖动并缩小,标记图像不会移动。
- 如果我只是放大地图直到标记离开屏幕,也会发生同样的事情
- 多段线不会移动(即,无论如何它们都保持正确的位置)
- 在 Firefox 中,当我放大地图中心以外的点时,标记图像会移动(或者更确切地说,保持在相同的像素位置,并且不会随着地图上的坐标点移动)
这是我使用添加标记的代码:
var bounds = new google.maps.LatLngBounds;
for (i=0, len=points.length; i<len; i++) {
var myPoint = points[i];
var myLatLng = new google.maps.LatLng(myPoint.lat, myPoint.lng);
var markerImage = new google.maps.MarkerImage(
'http://www.mysite.com/images/marker.png',
new google.maps.Size(21,21), // size
new google.maps.Point(0,0), // origin
new google.maps.Point(10,10), // anchor
new google.maps.Size(21,21) // scale
);
var markerOptions = {};
markerOptions.map = this.map;
markerOptions.position = myLatLng;
markerOptions.icon = markerImage;
markerOptions.draggable = true;
this.markers[i] = new google.maps.Marker(markerOptions);
bounds.extend(myLatLng);
}
就像标记窗格与地图和折线窗格断开连接一样。添加标记时我可以做些什么不同的事情,以便图像保持正确的显示位置?这在 V2 中不是问题。
【问题讨论】:
-
你有哪些事件监听器?
-
在每个标记上,我有 3 个侦听器 :: 1. marker dragend - 重绘折线 2. marker mouseover - 显示信息框 3. marker click - 以标记为中心并放大。在地图本身上,我只有一个监听器:地图点击 - 关闭所有打开的信息框
标签: google-maps google-maps-api-3 google-maps-markers