基于坐标与面积的2D形状边界判断及含岛湖泊XML筛选需求
问题2:筛选包含至少一个岛屿的湖泊(仅用经纬度范围、总面积)
结合你给的XML示例,咱先理清楚可行的步骤,同样因为没有精确地理轮廓,只能做近似筛选,但可以利用现有字段优化准确性:
第一步:先整理基础数据,同时做初步过滤
把所有岛屿和湖泊的信息拆出来:- 岛屿:记录它的经纬度范围(lon_min、lon_max、lat_min、lat_max)、面积,重点看
属性 ——只要带sea属性的岛屿,都是海洋岛屿,绝对不可能在湖泊里,直接把这些岛屿排除出候选池。 - 湖泊:记录它的经纬度范围、面积。
- 岛屿:记录它的经纬度范围(lon_min、lon_max、lat_min、lat_max)、面积,重点看
第二步:匹配候选岛屿-湖泊对
对每个湖泊L,找出所有满足以下两个条件的岛屿I:- I的经纬度范围完全被L的经纬度范围包含(I的lon_min ≥ L的lon_min,I的lon_max ≤ L的lon_max,I的lat_min ≥ L的lat_min,I的lat_max ≤ L的lat_max)——这说明岛屿的地理范围落在湖泊的范围内,大概率是在湖里的。
- I的面积远小于L的面积——常识来说,岛屿不可能比它所在的湖泊还大,甚至可以加个阈值,比如湖泊面积至少是岛屿的5倍以上,进一步降低误判。
第三步:生成结果
把所有至少匹配到一个符合条件岛屿的湖泊,就是你要找的目标。补充说明:
这种方法还是会有少量误判,比如某个岛屿的经纬度范围刚好和湖泊重叠,但实际是在湖泊旁边的陆地上;或者岛屿在湖里,但因为靠近湖泊边缘,经纬度范围稍微超出了湖泊的范围。但在只有这些数据的情况下,这是最靠谱的方案了——尤其是利用属性排除海洋岛屿,能大幅减少错误匹配。
内容的提问来源于stack exchange,提问作者Schytheron
相关产品推荐
相关产品推荐

