我想使用Google地图显示突出显示的多边形.这个想法是所讨论的多边形将正常显示,而地图的其余部分应该稍微变暗.
以下是我想用奥地利多边形完成的示例图像:alt text http://a.imagehost.org/0613/google_maps_tint_example.png
不幸的是,对于谷歌地图API和一般的地图来说,我是一个完整的新手.
那么,使用谷歌地图API可以做到这一点吗?如果是,使用什么版本(v2,v3)?使用其他地图工具包(如openlayers)更容易吗?
PS:我有一个想法是建立一个逆多边形(在这个例子中,整个世界减去奥地利的形状),然后使用这个倒置的多边形显示一个透明的黑色覆盖.但这对我来说似乎相当复杂.
所以我目前在地图上放了一个圆圈:
var optionsCercle = {
center: latlang,
map: map,
radius: 1000,
fillOpacity: 0.1,
strokeWeight: 0
};
this.circ = new google.maps.Circle(optionsCercle);
Run Code Online (Sandbox Code Playgroud)
现在我将圆圈的内部填充到容量:0.1,但我想要做的是将所有内容放在地图上,除了圆圈内部以填充容量:0.1.我希望视口中的所有内容都被"模糊"出来.我怎样才能做到这一点?
我正在尝试绘制一个带孔的矩形多边形.我的问题是我无法创建覆盖整个世界的多边形.多边形被反转,因此只选择一条线而不是整个世界.
下面是我能够做出的最大选择的例子.例如,如果我试图改变0(行中的新google.maps.LatLng(-85.1054596961173,0)),以任何其他值用于反转的选择.
也许我错过了一些明显的东西,但我似乎无法让它发挥作用.
function initialize() {
var mapOptions = {
zoom: 1,
center: new google.maps.LatLng(24.886436490787712, -70.2685546875),
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var worldCoords = [
new google.maps.LatLng(-85.1054596961173, -180),
new google.maps.LatLng(85.1054596961173, 180),
new google.maps.LatLng(85.1054596961173, 180),
new google.maps.LatLng(-85.1054596961173,0)
];
var EuropeCoords = [
new google.maps.LatLng(29.68224948021748, -23.676965750000022),
new google.maps.LatLng(29.68224948021748, 44.87772174999998),
new google.maps.LatLng(71.82725578445813, 44.87772174999998),
new google.maps.LatLng(71.82725578445813, -23.676965750000022)
];
// Construct the polygon.
poly = new google.maps.Polygon({
paths: [worldCoords,EuropeCoords],
strokeColor: '#000000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#000000',
fillOpacity: 0.35 …
Run Code Online (Sandbox Code Playgroud)