22

我正在研究从 v2 到 v3 的地图代码迁移。

在 v2 中,我在 GProjection 和 Overlay 的帮助下创建了圆圈,它在所有缩放级别中看起来都相同。

在 v3 中,谷歌提供了 Circle 类,它将在地图中创建圆圈,但它会在不同的缩放级别上发生变化。

我想创建在所有缩放级别都具有相同大小的圆圈。

我想知道谷歌地图v3中的任何其他方式,我可以为所有缩放级别创建具有相同大小的圆圈。

提前致谢。

4

2 回答 2

37

要在屏幕上创建具有相同像素大小的圆圈(相对于地理坐标中相同的区域大小),您通常会使用带有自定义图标的圆形标记。但现在您可以更加灵活并使用 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

于 2012-07-24T17:10:39.923 回答
10

我使用此代码来管理我的 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();
});
于 2014-02-04T10:12:20.227 回答