2016-03-15 88 views
0

查看L.Polygon构造函数的文档,看起来您可以在初始数组后面传递多个坐标数组来构造一个Polygon,有多个孔。Leaflet.js - 我可以在单个多边形内添加多个孔/切口

我尝试了多个数组的小数据样本,并且在第一个数组添加之后,这些孔被隐藏起来。但是当添加一个时,它运行良好。

来自MSSQL,使用geometry :: STIsValid函数报告形状是有效的。

我的数据是不正确的,还是当时不支持? 该文档将建议它受支持。而我在stackoverflow或一般互联网上找到的每个例子都只显示单个洞。

这也与L.Polygon函数(而不是GeoJSON)。

+0

可不可以给你传递给L.Polygon阵列的例子吗? – iH8

+0

iH8,这已经在下面为我解答。这个问题似乎与从我的MSSQL回来的UNION'ed形状。 –

回答

2

看起来有多个孔的工作:

var coords = [ 
    [ // Exterior Ring 
    [48.84, 2.3], 
    [48.9, 2.3], 
    [48.9, 2.4], 
    [48.84, 2.4], 
    [48.84, 2.3] 
    ], // Then holes (interior rings) 
    [ // First hole 
    [48.85, 2.31], 
    [48.89, 2.31], 
    [48.89, 2.33], 
    [48.85, 2.33], 
    [48.85, 2.31] 
    ], 
    [ // Second hole 
    [48.85, 2.34], 
    [48.89, 2.34], 
    [48.89, 2.35], 
    [48.85, 2.35], 
    [48.85, 2.34] 
    ], 
    [ // Third hole 
    [48.85, 2.36], 
    [48.89, 2.36], 
    [48.89, 2.39], 
    [48.85, 2.39], 
    [48.85, 2.36] 
    ] 
]; 

L.polygon(coords).addTo(map); 

的jsfiddle:http://jsfiddle.net/ve2huzxw/204/

enter image description here