判断n个兴趣点的经纬度坐标是否在n个地理经纬度栅格内部python代码
时间: 2024-03-30 12:41:04 浏览: 24
可以使用循环结合上述方法来判断n个兴趣点是否在n个地理经纬度栅格内部。具体实现过程如下:
1. 安装shapely库:在命令行中输入`pip install shapely`。
2. 导入必要的库:在Python代码中导入以下库。
```
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
```
3. 定义栅格边界坐标列表:将每个栅格边界的经纬度坐标定义为一个多边形,并将所有多边形存储在列表中。
```
coords_list = [[(lon1, lat1), (lon2, lat2), (lon3, lat3), ...],
[(lon1, lat1), (lon2, lat2), (lon3, lat3), ...],
...]
polygon_list = [Polygon(coords) for coords in coords_list]
```
4. 循环遍历兴趣点列表:将每个兴趣点的经纬度坐标定义为一个点对象,然后循环遍历栅格边界列表,使用`within`函数判断该点是否在多边形内。
```
point_list = [(lon1, lat1), (lon2, lat2), (lon3, lat3), ...]
for point in point_list:
point_obj = Point(point)
for polygon in polygon_list:
if point_obj.within(polygon):
print(f"兴趣点({point[0]}, {point[1]})在栅格内")
break
else:
print(f"兴趣点({point[0]}, {point[1]})不在任何一个栅格内")
```
完整代码示例:
```
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
# 定义栅格边界坐标列表
coords_list = [[(116.37363, 39.915606), (116.37363, 39.918311), (116.376434, 39.918311), (116.376434, 39.915606)],
[(116.376434, 39.915606), (116.376434, 39.918311), (116.379238, 39.918311), (116.379238, 39.915606)],
[(116.379238, 39.915606), (116.379238, 39.918311), (116.382042, 39.918311), (116.382042, 39.915606)]]
polygon_list = [Polygon(coords) for coords in coords_list]
# 循环遍历兴趣点列表
point_list = [(116.374, 39.916), (116.377, 39.917), (116.380, 39.916)]
for point in point_list:
point_obj = Point(point)
for i, polygon in enumerate(polygon_list):
if point_obj.within(polygon):
print(f"兴趣点{i+1}({point[0]}, {point[1]})在栅格内")
break
else:
print(f"兴趣点({point[0]}, {point[1]})不在任何一个栅格内")
```
输出结果:
```
兴趣点1(116.374, 39.916)在栅格内
兴趣点2(116.377, 39.917)在栅格内
兴趣点3(116.38, 39.916)不在任何一个栅格内
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)