现在我有一个由maps.Polygon创建的圆圈。我可以设置strokeWeight:0并删除多边形周围的线,我可以将它混合在一起,这样圆与地图其余部分之间的分界点就不是一条独特的线。防爆。如下图所示。
这是我的多边形代码。
var $googlemap; //this code is above polygon code
var bounds = new google.maps.LatLngBounds();
var outerbounds = [ // covers the (mercator projection) world
new google.maps.LatLng(85, 180),
new google.maps.LatLng(85, 90),
new google.maps.LatLng(85, 0),
new google.maps.LatLng(85, -90),
new google.maps.LatLng(85, -180),
new google.maps.LatLng(0, -180),
new google.maps.LatLng(-85, -180),
new google.maps.LatLng(-85, -90),
new google.maps.LatLng(-85, 0),
new google.maps.LatLng(-85, 90),
new google.maps.LatLng(-85, 180),
new google.maps.LatLng(0, 180),
new google.maps.LatLng(85, 180)];
// options for the polygon
var populationOptions = {
//strokeColor: '#FF0000',
//strokeOpacity: 0.8,
strokeWeight: 0,
//fillColor: '#FF0000',
fillOpacity: 0.35,
map: $googlemap,
paths: [outerbounds, drawCircle(new google.maps.LatLng(mapCoordinates.latitude, mapCoordinates.longitude), .1, -1)]
};
// Add the circle for this city to the map.
var cityCircle = new google.maps.Polygon(populationOptions);
$googlemap.fitBounds(bounds);
function drawCircle(point, radius, dir) {
var d2r = Math.PI / 180; // degrees to radians
var r2d = 180 / Math.PI; // radians to degrees
var earthsradius = 3963; // 3963 is the radius of the earth in miles
var points = 32;
// find the raidus in lat/lon
var rlat = (radius / earthsradius) * r2d;
var rlng = rlat / Math.cos(point.lat() * d2r);
var extp = new Array();
if (dir == 1) { var start = 0; var end = points + 1 } // one extra here makes sure we connect the ends
else { var start = points + 1; var end = 0 }
for (var i = start; (dir == 1 ? i < end : i > end) ; i = i + dir) {
var theta = Math.PI * (i / (points / 2));
ey = point.lng() + (rlng * Math.cos(theta)); // center a + radius x * cos(theta)
ex = point.lat() + (rlat * Math.sin(theta)); // center b + radius y * sin(theta)
extp.push(new google.maps.LatLng(ex, ey));
bounds.extend(extp[extp.length - 1]);
}
return extp;
}
以下是我的地图目前的样子。
这就是我想要它的样子。 我想让圆圈与地图的其他部分融合。
答案 0 :(得分:0)
没有预先存在的库(甚至第三方)或API可以帮助您完成此任务。您可以尝试使用Google Maps Styles。您有两种选择:
你可以在你的制造商附近试试这个,也可以工作。
希望有助于!!
答案 1 :(得分:-1)
理论上,如果你没有处理大量的标记,你可以放置大量具有相同中心和不同半径的低不透明度圆。