是否可以将地图置于固定位置(lat lng) - 100px?

时间:2012-11-05 14:38:13

标签: google-maps google-maps-api-3

我的意思是,我想将地图置于固定位置:

map.setCenter(markerCliccato.getPosition());

和更少(Y轴)100px向下。可能吗?或者我需要这个“虚拟”点的Lat / Lng?

这是因为我有一个非常高的InfoWindow,我需要将它从地图顶部放到100px!不能在infowindow上使用“margin”因为可以在地图上用其他标记制造麻烦。

示例

我将这一点称为Lat / Lng:https://maps.google.com/?q=54.572062,-3.038818

但是我希望将地图置于https://maps.google.com/?q=54.486793,-3.042046的中心位置(在我的位置上或多或少100px,在地图中)

1 个答案:

答案 0 :(得分:2)

好的,我需要张贴图片:)

这是在点击之前

before

这是在

之后

after

没有灰色区域,地图全部呈现。

另外,要查看标记,您必须允许网站跟踪您的位置。

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进行测试