返回特定半径内的结果

问题描述 投票:0回答:1

我有一个包含约 3,000 个位置的列表(站点列表 A),我想从另一个包含约 10,000 个位置的列表(站点列表 B)中获取该列表。所有位置均采用 csv 格式,纬度和经度采用十进制格式。理想情况下,其输出将采用 csv 或 excel 格式,显示站点列表 A 中的位置是否位于站点列表 B 中的位置的 1/4 英里和 1/2 英里半径范围内,它将列出站点列表 A 的位置,其中包含站点列表 B 中满足该条件的站点。

我对 QGIS 完全陌生,现在已经花了几个小时尝试熟悉该程序并采取一些步骤来取得进展,但没有取得任何有意义的进展。 QGIS 中是否有一些东西可以使这变得更容易一些,或者建议其他解决方案来完成有人可以提供的这项任务?

qgis
1个回答
0
投票

第一步是将每个表作为空间图层加载到 QGIS 中。您需要将纬度/经度对转换为几何字段。您还需要每个点的有用 ID 和其他属性。处理工具选项卡中的“从表创建点图层”。加载时,尤其是在进行任何分析之前,我总是将图层投影到平面投影。否则,假设球坐标是平面单位,大多数工具都会生成无意义的单位。然后,您还可以使用法线贴图单位,最好是米和公里。稍后将它们转换为自由单位。

Qgis 处理选项卡有许多预构建的工具,可以一步创建您需要的数据。例如,“距离矩阵”组成了一个“从-到”距离表。可以限制为k个最近的,但不能限制为距离。这将减小矩阵的大小。我会将其放入数据库,而不是电子表格中。

从概念上讲,您可以围绕 3000 个点中的每个点绘制一个缓冲区圆,在圆内进行选择,然后执行距离矩阵。但要抵制这种想法。 GIS 的设置是为了避免用户无休止的循环,工具经过优化以避免循环,类似于 SQL 不需要您循环遍历每条记录。

如果你有矩阵,那么你可以按距离过滤以减小大小。

© www.soinside.com 2019 - 2024. All rights reserved.