google-maps - 是否可以将 map 居中于固定位置(lat lng)- 100px?

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

我的意思是,我想将 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 像素)

最佳答案

好的,我需要发布图片:)

这是点击之前

before

这是之后

after

没有灰色区域, 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/

相关文章:

javascript - 使用 Google Maps API 驾驶时间多边形

google-maps - 设计所有道路以突出其轮廓?

JavaScript 加载顺序

php - 从 Gmaps 中获取草地、街道、水等信息

安卓 : Support MapFragment Returns null

android - 将 Google map 添加到 Android 应用

javascript - 谷歌地图 - 具有独特信息窗口的多个标记

google-maps-api-3 - MarkerWithLabel 标签中心对齐

javascript - Google Map API v3 ~ 只需关闭信息窗口?

javascript - 谷歌地图API放置如何在addListener中获取标记的[i]