我正在研究从 v2 到 v3 的地图代码迁移。
在 v2 中,我在 GProjection 和 Overlay 的帮助下创建了圆圈,它在所有缩放级别中看起来都相同。
在 v3 中,谷歌提供了 Circle 类,它将在地图中创建圆圈,但它会在不同的缩放级别上发生变化。
我想创建在所有缩放级别都具有相同大小的圆圈。
我想知道谷歌地图v3中的任何其他方式,我可以为所有缩放级别创建具有相同大小的圆圈。
提前致谢。
我正在研究从 v2 到 v3 的地图代码迁移。
在 v2 中,我在 GProjection 和 Overlay 的帮助下创建了圆圈,它在所有缩放级别中看起来都相同。
在 v3 中,谷歌提供了 Circle 类,它将在地图中创建圆圈,但它会在不同的缩放级别上发生变化。
我想创建在所有缩放级别都具有相同大小的圆圈。
我想知道谷歌地图v3中的任何其他方式,我可以为所有缩放级别创建具有相同大小的圆圈。
提前致谢。
要在屏幕上创建具有相同像素大小的圆圈(相对于地理坐标中相同的区域大小),您通常会使用带有自定义图标的圆形标记。但现在您可以更加灵活并使用 v3 中相对较新的符号。
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-122.5,47.5),
icon: {
path: google.maps.SymbolPath.CIRCLE,
fillOpacity: 0.5,
fillColor: '#ff0000',
strokeOpacity: 1.0,
strokeColor: '#fff000',
strokeWeight: 3.0,
scale: 20 //pixels
}
});
另外:您也可以用这些符号制作很酷的动画:http: //googlegeodevelopers.blogspot.com/2012/06/powerful-data-visualization-with.html
我使用此代码来管理我的 Google Map V3 上的缩放和缩放圆圈:
google.maps.event.addListener(iMap.map, 'zoom_changed', function () {
for (var i = 0; i < iMap.circle.length; i++) {
var p = Math.pow(2, (21 - iMap.map.getZoom()));
iMap.circle[i].setRadius(p * 1128.497220 * 0.0027);
}
menu.hide();
});