如何在GoogleMaps中使用多边形绘制圆圈

Sha*_*han 2 google-maps google-maps-api-3

这里是低于code..I要在地图API V3使用多边形功能,而不是使用谷歌地图圈子功能绘制一个圆,我不得不重新对喜欢这里的圆的圆周一些形状

http://textonly.in/docs/map7.html

无论如何都要获得圆周上的点数?

var mapOptions = {
    zoom: 13,
    center: new google.maps.LatLng(45.512158914823035,-74.12200927734375),
    mapTypeId: google.maps.MapTypeId.TERRAIN
};

var bermudaTriangle;
var bermudaTriangle1;
var rectangle;
var citymap = {};
citymap['chicago'] = {
    center: new google.maps.LatLng(45.637839, -73.648316),
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
  mapOptions);
for (var city in citymap) {
    var populationOptions = {
        strokeColor: '#FF0000',
        strokeOpacity: 0.0,
        strokeWeight: 0,
        fillColor: '#FF0000',
        fillOpacity: 0.35,
        map: map,
        center: citymap[city].center,
        radius: 39 * 1000
    };
    // Add the circle for this city to the map.
    cityCircle = new google.maps.Circle(populationOptions);
}
Run Code Online (Sandbox Code Playgroud)

Dr.*_*lle 13

基本上不可能获得"积分",因为圆不是基于点创建的(会有无数个点)

可能的解决方法(使用geometry-library)获取"某些点"以创建看起来像圆形的多边形:

google.maps.geometry.spherical.computeOffset在带有递增标题的循环中使用该方法:

  function circlePath(center, radius, points){
    var a=[],p=360/points,d=0;
    for(var i=0;i<points;++i,d+=p){
        a.push(google.maps.geometry.spherical.computeOffset(center,radius,d));
    }
    return a;
  }
Run Code Online (Sandbox Code Playgroud)

points-argument是所需的返回点数.

该函数返回一个适合用作多边形路径的数组.

演示:http://jsfiddle.net/doktormolle/NLHf9/