我的意思是,我想将 map 居中到固定位置:
map.setCenter(markerCliccato.getPosition());
且小于(Y 轴)向下 100 像素。是否可以?或者我需要这个“虚拟”点的纬度/经度?
这是因为我有一个非常高的InfoWindow,我需要将它放在距离 map 顶部100px的地方!无法在信息窗口上使用“边距”,因为可能会给 map 中的其他标记带来麻烦。
示例
我将此点作为纬度/经度:https://maps.google.com/?q=54.572062,-3.038818
但我想将 map 居中于 https://maps.google.com/?q=54.486793,-3.042046 (在 map 上,距离我的点大约 100 像素)
最佳答案
好的,我需要发布图片:)
这是点击之前
这是之后
没有灰色区域, map 已全部渲染。
此外,要查看标记,您必须允许网站跟踪您的位置。
function offsetCenter(latlng, offsetx, offsety) {
var scale = Math.pow(2, map.getZoom());
var nw = new google.maps.LatLng(
map.getBounds().getNorthEast().lat(), map.getBounds().getSouthWest().lng());
var worldCoordinateCenter = map.getProjection().fromLatLngToPoint(latlng);
var pixelOffset = new google.maps.Point((offsetx / scale) || 0, (offsety / scale) || 0)
var worldCoordinateNewCenter = new google.maps.Point(
worldCoordinateCenter.x - pixelOffset.x, worldCoordinateCenter.y + pixelOffset.y);
var newCenter = map.getProjection().fromPointToLatLng(worldCoordinateNewCenter);
map.setCenter(newCenter);
}
在这里查看它的工作情况:http://jsfiddle.net/RASG/vA4eQ/
使用 FF 15、IE 9 和 Chrome 21 进行测试
关于google-maps - 是否可以将 map 居中于固定位置(lat lng)- 100px?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13234295/