在我的JavaScript应用程序中,我有超过30多个多边形。它们的定义如下:
polygons:[
{name:'xx',bounds:[20,20,60,20,50,40,30,10...],minzoom:0,maxzoom:5},
{name:'yy',bounds:[.....],minzoom:6,maxzoom:8},
........
]
现在给出像[10,10]这样的某个点,缩放4。
检查此点位于哪个多边形的快速方法是什么?
我的第一个想法是迭代多边形,并检查点是否在多边形内。
然后这个问题变成了一个多边形点问题,在stackoverflow上有很多答案。
我只是想知道是否有其他替代方法?
答案 0 :(得分:2)
假设多边形不重叠(或者如果他们这样做,你只对最顶部的多边形感兴趣),你可以使用涉及画布的“多边形点”解决方案:
请注意,您甚至不需要它们是人类可区分的颜色,您可以逐字地使用#000000
,#000001
,#000002
等,并使用颜色的十六进制代码作为多边形的索引。