http://www.dissentskateshop.co.uk/store-locator/
你可以看到地图别针位于海中,但如果放大,它就在我设置的位置。我正用这个把头发拉出来......
答案 0 :(得分:4)
从这个行为我猜测锚点没有正确设置:锚点似乎位于图像的左下角,虽然“可见”锚点(引脚)更右边,因此总是偏移。如果以像素为单位查看距离,无论缩放级别如何,原始坐标的偏移量始终保持不变。
我查看了您的脚本:在文件store-locator.js
中,方法addMarker
:new google.maps.MarkerImage
的第四个参数是锚点。您已将其设置为(0,32)
(即图像的左下角)。那是错的!获取正确的锚位置并更改代码。
编辑:我看过图像:正确的锚点坐标是(16,31)。试一试: - )
答案 1 :(得分:2)
这是您的自定义标记的问题,而不是地图坐标注册问题。
您需要将锚点放在图像的中心线上:16,32而不是0,32。 我在您的网页副本上对此进行了测试。
var image = new google.maps.MarkerImage('http://www.google.com/intlen_us/mapfiles/ms/micons/red-dot.png',
new google.maps.Size(32, 32),
new google.maps.Point(0,0),
new google.maps.Point(16, 32));
还要注意编辑阴影图像。
为了好玩,我将格林威治天文台添加到你的商店.json:
{
"name" : "Greenwich Observatory",
"latitude" : "51.47722",
"longitude" : "0.0",
"postcode" : ""
}
在缩放级别6(默认),格林威治天文台标记位于地图上剑桥点的东边。 放大两个级别,它在西边!那当然是在修复bug之前。