2011-11-19 50 views
2

我有以下KML多边形:马蹄状多边形

<Polygon><outerBoundaryIs><LinearRing><coordinates>20.002,80.002 20,80.002 20,80.004 20.006,80.004 20.006,80.001 20.002,80.001 20.002,80.002 20.004,80.002 20.004,80.003 20.002,80.003 </coordinates></LinearRing></outerBoundaryIs></Polygon> 

如果我认为这个多边形在我融合表中的单元格,在谷歌融合地图的表视图,它看起来像这样:

enter image description here

然而,在实际的谷歌地图,在地图上看,它看起来像这样:

enter image description here

重复点已被相当恼人地丢弃。我想要上面第一个图中显示的内容,但是我应该如何更改多边形以在Google地图中获取相同的形状?

我也试图与内部约束,但没有运气有两种:

enter image description here

<Polygon><outerBoundaryIs><LinearRing><coordinates>20.002,80.002 20,80.002 20,80.004 20.006,80.004 20.006,80.001 20.002,80.001 20.002,80.002 20.004,80.002 20.004,80.003 20.002,80.003 </coordinates></LinearRing></outerBoundaryIs></Polygon> 

感谢,

巴里

回答

0

好吧,我想我有答案。我可以添加一个微小的偏移量(抖动)到多边形中两个重复点之一。但是,我必须以正确的方向添加抖动,否则多边形将变为无效,Google不再绘制它。看看多边形循环中的前几点,我应该能够确定在哪个方向上应用抖动。

<Polygon><outerBoundaryIs><LinearRing><coordinates>20.002,80.002 20,80.002 20,80.004 20.006,80.004 20.006,80.001 20.002,80.001 20.002000001,80.002 20.004,80.002 20.004,80.003 20.002,80.003 </coordinates></LinearRing></outerBoundaryIs></Polygon> 
1

自交多边形需要相当多的额外的权力绘制正确,所以他们没有广泛支持所有2d渲染API /实现。

我建议你通过将你的多边形分成两块来解决这个问题。

+0

我也曾考虑过这样做,但作为最后的手段。 – Baz