代码之家  ›  专栏  ›  技术社区  ›  Jake

谷歌地图上的平移点到屏幕上的特定像素位置(API v3)

  •  3
  • Jake  · 技术社区  · 14 年前

    什么时候? overlay 是谷歌地图覆盖图 offsetx, offsety 是要平移的距地图中心的像素距离 latlong 到,下面的工作。

    var projection = overlay.getProjection();
    var pxlocation = projection.fromLatLngToContainerPixel(latlong);
    map.panTo(projection.fromContainerPixelToLatLng(new google.maps.Point(pxlocation.x+offsetx,pxlocation.y+offsety)));
    

    然而,我并不总是在地图上有一个覆盖 map.getProjection() 返回 projection ,不是 MapCanvasProjection 没有我需要的方法。

    有没有一种方法可以做到这一点,而不做一个具体的覆盖?

    1 回复  |  直到 12 年前
        1
  •  4
  •   jeff    12 年前

    既然没有人想出更好的办法,这就是我的解决办法。做一个覆盖,唯一的工作就是给我一个 MapCanvasProjection 反对。

    var helper = new google.maps.OverlayView();
    helper.setMap(map);
    helper.draw = function () { 
        if (!this.ready) { 
            this.ready = true; 
            google.maps.event.trigger(this, 'ready'); 
        } 
    }; 
    var projection = helper.getProjection();
    ...
    

    希望这能帮助别人。欢迎提出更好的建议。