我正在研究从v2到v3的地图代码迁移。
在v2中,我在GProjection和Overlay的帮助下创建了圆圈,它在所有缩放级别看起来都相同。
在v3中,谷歌给出了Circle类,它将在地图中创建圆形,但它会以不同的缩放级别变化。
我想创建在所有缩放级别具有相同大小的圆圈。
我想知道谷歌地图v3中的任何其他方式,我可以为所有缩放级别创建相同大小的圆圈。
提前致谢。
答案 0 :(得分:35)
要在屏幕上创建相同像素大小的圆圈(相对于地理坐标中的相同区域大小),您通常会使用带有圆形自定义图标的标记。但现在你可以更灵活,并在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
答案 1 :(得分:8)
我使用此代码管理Google地图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();
});