首页 > 解决方案 > 如何在Scala中获取每个多边形中的点数

问题描述

我有两个数据框。第一个包含纬度和经度点列表以及与在这些坐标处的人相关联的 ID 号以及他们在那里的日期。第二个包含某些商店的名称(总共大约 1000 个)以及勾勒出与每个商店相关联的多边形的坐标。我想以某种方式在 scala(databricks)中加入这两个,以获取在特定时间范围内访问每个地方的次数。

我试过简单地加入两个数据框,但是,因为多边形数据有几个点包含只勾勒出多边形的信息,所以这不起作用。我需要每个多边形内部的点数(纬度和经度)。


+-------------+----------------+
|ID| latitude |longitude| date |
+-------------+----------------+
|1 |  xx      | yy      |1/1/18|
|2 |  xx      | yy      |1/2/18|
|3 |  xx      | yy      |1/1/18|
|3 |  xx      | yy      |1/3/18|
|3 |  xx      | yy      |1/1/18|
|4 |  xx      | yy      |1/5/18|
|5 |  xx      | yy      |1/5/18|
|5 |  xx      | yy      |1/5/18|
+-------------+----------------+

+-------------+-----------------------+
|location_name|polygon                |
+-------------+-----------------------+
|Location1    |POLYGON((x y, x y,...))|
|Location2    |POLYGON((x y, x y,...))|
|Location3    |POLYGON((x y, x y,...))|
|Location4    |POLYGON((x y, x y,...))|
|Location5    |POLYGON((x y, x y,...))|
|Location6    |POLYGON((x y, x y,...))|
|Location7    |POLYGON((x y, x y,...))|
|Location8    |POLYGON((x y, x y,...))|
+-------------+------------------------+


我只想获取对每个位置的访问次数——第二个数据帧中每个多边形中第一个数据帧的点数。

标签: scalageolocationpolygonlatitude-longitudepoint-in-polygon

解决方案


推荐阅读