繁体   English   中英

如何将点分组为多边形,然后将其与城市区域匹配

[英]How to group points to polygon and then match it to the city area

我正在尝试将点分组以使其成为多边形,然后将其匹配到城市区域。 所以我有一个由纬度和经度的网格组成的表格,以及一个由城市名称、纬度和经度组成的城市表。 下面是网格表的图像

网格表

下面是覆盖印度地图的网格图像,显示其中的一部分以更好地查看网格

带网格的印度地图

下面是城市表的图像

印度城市表

然后将所需城市区域的结果放入网格表中

这个问题的后续将是 -> 在显示城市区域的正确多边形后(区域内有网格),稍后将与包含用户位置(纬度,经度)的表匹配,以便查询可以比使用haversine更快地找到用户位置到最近城市的距离。

抱歉让这个问题变得复杂,我有点好奇是否有一种更快的方法来查询代码而不使用 hasrsine 函数

我理解您的问题的方式是,您希望您的所有积分都归于它们所属的城市。 这是与 geopandas 的空间连接(在 geopandas 文档中有很好的解释):

merged = gpd.sjoin(grid_points, cities, how='left', op='within')

这会将城市多边形的属性连接到点。

它确实比计算一对一距离要快得多,因为 GeoPandas 提供了与 C 编译的 RTree 库的快速空间连接。

如果您想将最近的城市归因于一个实际上不在一个点内的点(例如,屏幕打印空白区域中的点),那么它可能会更复杂,您可以查看scipy 的 cKDTree它将为您提供最近的点。 这可以与城市多边形代表点一起使用,您可以从中获得。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM