2011-05-05 71 views
8

是否有任何谷歌地图的例子,有一个大画布作为覆盖视图。每当地图放大或平移时,我都很难定位画布。HTML画布作为覆盖视图在谷歌地图

+0

这不是一个答案,因为它使用svg,但有一个很棒的库叫做d3,这里有一个相关的例子:https://gist.github.com/899711你也许可以适应画布,例如像这样简单:http://www.svgopen.org/2010/papers/62-From_SVG_to_Canvas_and_Back/index.html#canvas_to_svg或者像fabric.js这样的fancier,特别是https://github.com/kangax/fabric。 js/blob/d42ba6ec027274ed89c8262dfc3935b10e81f479/src/parser.js#L431 – unmounted 2011-05-06 02:19:27

回答

2

尝试使用地图边界方法,获取当前可视地图的东北和西南视图,并使用js函数修改每个缩放上的叠加以动态更改位置。

mapBound = map.getBounds(); 
northEndOfMap =mapBound.getNorthEast(); 

,并获得地图缩放 map.getZoom();
参见:http://code.google.com/apis/maps/documentation/javascript/reference.html#Map

+0

这与我最终做的类似。你得到SouthWest点,减去获得Northwest点的高度,将它从latlng转换为pixel,并将canvas顶部和左侧属性设置为该点。非常感谢你。 – dpham 2011-05-31 06:57:44

+0

任何想法如果变焦低到足以实际包含地球的多个跨度,例如[-190,230],您将如何使其工作? – Thomas 2012-01-30 21:43:40

3

检查出CanvasLayer库,基本上通吃的对此加以考虑你作为一个参考实现。