使用Google Maps V3可以显示多个世界副本时显示多个自定义标记

时间:2012-08-16 18:47:19

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

我创建了一个自定义的OverlayView,其中包含一个canvas元素,其方法类似于找到here的方法。一切都在相应地工作,但我正在寻找一些关于如何处理在较低缩放级别可以看到世界的多个版本的情况的建议。目前我翻译我的canvas元素如下:

this.topLeft = new google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getSouthWest().lng());
var divTopLeft = projection.fromLatLngToDivPixel(this.topLeft);
this.canvas.style[this.cssTransformPrefix] = 'translate(' + Math.floor(divTopLeft.x) + 'px,' + Math.floor(divTopLeft.y) + 'px)';

要定位和绘制我的一个自定义标记,我使用以下方法:

var scale = Math.pow(2, map.zoom);
var offset = mapProjection.fromLatLngToPoint(this.centerPoint);

this.pxTopLeft.x = Math.floor(offset.x*scale);
this.pxTopLeft.y = Math.floor(offset.y*scale);

var worldPoint = mapProjection.fromLatLngToPoint(marker.position());
marker.draw(Math.floor(-this.pxTopLeft.x + worldPoint.x*scale), Math.floor(-this.pxTopLeft.y + worldPoint.y*scale));

使用此行为,当用户平移地图时,我的画布渲染标记将从一个世界实例捕捉到下一个世界实例。相反,我想要实现的是类似于本机Google标记行为的东西,其中标记被绘制一次用于每个世界的表示。不幸的是,使用原生Google标记是不可能的。我怎样才能做到这一点?

0 个答案:

没有答案