除某些区域外,是否可以将Google Maps地图显示为灰色?


15

我正在寻找的是一种通过使世界其他地方变灰来强调Google地图地图上特定区域的方法。

我听说过一些使用2个多边形的解决方案,其中1个可见,另一个不可见,并且仅在地图为静态(无地图移动)的情况下才起作用。但是我希望用户能够缩放和拖动地图。

我也对其他我没想到要强调的领域感兴趣。

更新:

当我尝试使用radek发布的解决方案时(例如,创建一个带有Polygon的KML,该Polygon具有一个externalBoundaryIs(大于视图)和一个innerBoundaryIs(需要强调的区域)),当我放大时,矩形区域不会被覆盖周围的多边形了。看到:

在此处输入图片说明

任何有经验/解决方案的人吗?

更新2:

我终于有时间使用Google Fusion Tables测试radek的解决方案。起初,我遇到了缺少瓷砖的问题,与KML一样(请参见上图),但是经过另一次加载后,看起来好像已经捡起来,并且显示瓷砖完全正确。我觉得他的解决方案中的jQuery hack适用于未加载的图块:

setTimeout(function(){ 
        $("img[src*='googleapis']").each(function() { 
            $(this).attr("src",$(this).attr("src")+"&"+(new Date()).getTime()); 
        }); 
    }, 5000);

由于磁贴似乎在刷新后加载,因此我自己没有使用过hack。如果该错误发生在每个新用户身上,我将对其进行实验。

Answers:


18

Google Maps Mania博客指出了瑞士行政边界图的示例:

在此处输入图片说明

Vasile的代码在github上


1
这确实显示了我正在寻找的功能!我将不得不深入研究源代码,以查看在我的情况下它是否易于实现。他们正在谈论黑客行为(我立即担心IE7)。
mrg 2012年

在此示例中,是否必须使用Google Fusion Tables?我目前不在使用。我将下载github代码并检查需求。
mrg 2012年

2
归结为在KML中用一个外部边界(即世界)和一个内部边界(即您感兴趣的领域)制作多边形。除了难以设置透明胶片的样式外,放大时我还会在半透明图层上留下孔。有人对此有任何经验吗?
mrg 2012年

1
KML的加载速度相当慢,因此始终对其进行更改可能会产生非常懒惰的效果。除此之外,我是否不必不断更改名称以确保不会缓存旧的kml?我觉得我需要Google Fusion Tables知识。
2012年

1
有没有更简单的实现,可以使用KML文件代替FusionTables?我只需要突出显示1个连续区域(城市边界)的颜色,然后将其他所有颜色涂灰即可。我已经看过Vasile的代码,但是它确实很复杂,并且似乎取决于浏览器黑客。另外,如果此解决方案可以使用elrobis的建议,使地图窗口成为变灰效果的基础,那么我认为它将更加稳定/更快。{绘制围绕城市的边界并为其着色} //完成{将边界内区域以外的所有区域都涂成灰色} ???????????????
user1845528 '11

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.