仅在bing map中显示多边形区域

时间:2014-03-06 15:12:10

标签: javascript html bing-maps

我在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>

2 个答案:

答案 0 :(得分:2)

可以将其视为控件上的遮罩。

使用倒置多边形进行遮罩

该技术包括从当前边界框中创建多边形,并排除特定区域。

当然,这种方法有其局限性,在这种情况下很难管理多个高级形状。

我们的Alastair在这篇博客文章中对此进行了解释,并且很容易进行调整,因此在使用高级形状模块时,所有内容都只在客户端运行,只有全局多边形和“洞”:

http://alastaira.wordpress.com/2012/11/28/masking-out-particular-areas-of-interest-on-bing-maps/

Bing Maps masking polygon by Alastair

自重叠多边形 另一种解决方案是在当前边界框上创建一个多边形,以在所有可见区域的顶部绘制一个全局多边形,然后添加位置,使多边形仅在您拥有自己的区域时循环。

默认情况下,融合模式会导致隐藏两个多边形的排除,您可以查看SVG中的有用属性,但它也可以根据浏览器进行限制。

答案 1 :(得分:0)

我假设您要删除边框。如果是这种情况,请将strokeThickness设置为0,并且不要设置strokeColor