我在 bing map 中有多边形矩形形状。如何修改代码以便仅显示多边形内部的区域...
这是代码:
<script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
<script type="text/javascript">
function GetMap()
{
// Initialize the map
var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"),{credentials:"At7RkDItXU6kncQzZa8M9lFfMbzPgmulJYLkhYn5JMMZfHL86lNyFZvGWWngxaAP",
});
// Create a polygon
var vertices = new Array(new Microsoft.Maps.Location(20,-20), new Microsoft.Maps.Location(20,20), new Microsoft.Maps.Location(-20,20), new Microsoft.Maps.Location(-20,-20), new Microsoft.Maps.Location(20,-20));
var polygoncolor = new Microsoft.Maps.Color(100,100,0,100);
var polygon = new Microsoft.Maps.Polygon(vertices,{fillColor: polygoncolor, strokeColor: polygoncolor});
// Add the polygon to the map
map.entities.push(polygon);
}
</script>
</head>
<body onload="GetMap();">
<div id='mapDiv' style="position:relative; width:400px; height:400px;"></div>
</body>
最佳答案
可以将其视为控件上的 mask 。
使用倒多边形 mask
该技术包括在当前边界框之外创建一个多边形,并将排除特定区域。
当然,这种方法有其局限性,其中之一是在这种情况下很难管理多个高级形状。
我们的阿拉斯泰尔同事在这篇博客文章中对此进行了解释,并且很容易进行调整,因此在使用高级形状模块时,所有内容都可以在客户端上仅使用全局多边形和“孔”运行:
http://alastaira.wordpress.com/2012/11/28/masking-out-particular-areas-of-interest-on-bing-maps/
自重叠多边形 另一种解决方案是在当前边界框上创建一个多边形,以在所有可见区域的顶部绘制一个全局多边形,然后添加位置,以便多边形仅在您拥有自己的区域的地方循环。
默认情况下,融合模式会导致排除,从而隐藏两个多边形,您可以查看 SVG 中的一个有用属性,但它也可能有其限制,具体取决于浏览器。
关于javascript - 仅在 bing map 中显示多边形区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22228444/