我有一个简单的问题,希望有一个简单的答案。 。 。经过几个小时的搜索,我找不到它。
我有一堆带有标记的标准谷歌地图。我在每个标记上都有一个点击事件,这样当点击时,地图会将标记平移到中心并放大它。没问题。
现在我想更改事件处理程序,以便在单击标记时,地图会重新定位,以使标记水平居中,但它垂直朝向地图画布的顶部。是否有一种相对直接的方法可以在不同的缩放级别上工作?
谢谢, 卡盘
答案 0 :(得分:1)
可能有很多方法,例如
google.maps.event.addListener(marker, 'click', function() {
this.getMap().setCenter(this.getPosition());
this.getMap().panBy(0,(this.getMap().getDiv().offsetHeight/2)+this.anchorPoint.y);
});
它将标记放在中心,然后通过(mapHeight/2-markerHeight)
答案 1 :(得分:1)
您还可以使用getProjection()
以及fromContainerPixelToLatLon
和fromLatLonToContainerPixel
进行混乱,以便在数学的可视点内设置特定位置。
这两个将为您提供来自您用作地图画布的<div>
元素的像素测量值。
c.f。 fromDivPixel
和ToDivPixel
将为您提供地图无限 div上项目的像素位置。说你的地图专注于非洲,对吧?你在纽约有一个别针。使用*DivPixel*
变体将保持你的引脚在纽约,然后你可以平移它。无论您将其设置为Lat / Lon,使用*ContainerPixel*
都会将您的图钉移动到地图上。