我正在尝试使用 Python 中的 osmnx 库将一组点(纬度、经度)与边缘相关联。
我想找到距离 x 内的边缘最近的点。
我有一条边,我想画一个圆并计算给定半径的圆中有多少点。我有每个点的纬度和经度坐标,但我不知道如何计算边缘的经度和经度坐标。我也有由该边缘连接的节点的纬度、长坐标。
谢谢您的帮助。
我正在尝试使用 Python 中的 osmnx 库将一组点(纬度、经度)与边缘相关联。
我想找到距离 x 内的边缘最近的点。
我有一条边,我想画一个圆并计算给定半径的圆中有多少点。我有每个点的纬度和经度坐标,但我不知道如何计算边缘的经度和经度坐标。我也有由该边缘连接的节点的纬度、长坐标。
谢谢您的帮助。
import pandas as pd
from shapely.ops import transform
from functools import partial
import pyproj
from shapely.geometry import Point
mid_point = Point(lon,lat) # UNPROJECTED CO-ORDINATES OF MID-POINT OF AN EDGE
node_point = Point(lon_node, lat_node)# UNPROJECTED CO-ORDINATES OF THE NODE
x = 500 #DISTANCE IN METERS
#TRANSFORM INTO PROJECTED CO-ORDINATES
project = partial(pyproj.transform,pyproj.Proj(init='epsg:4326'),pyproj.Proj(init='epsg:3112'))
mid_point_projected = transform(project, mid_point)
node_point_projected = transform(project, node_point)
#CREATE BUFFER CIRCLE WITH DISTANCE X METRES WITH CENTRE AT EDGE MID-POINT
buffer_circle = mid_point_projected.buffer(x)
#PERFORM POINT-IN-POLYGON ANALYSIS TO CHECK WHETHER THE NODE FALLS WITHIN THE BUFFER CIRCLE
print(buffer_circle.contains(node_point_projected))
注意事项:
EPSG 大地测量参数数据集是坐标参考系统和坐标变换的结构化数据集,可通过此在线注册表 (www.epsg-registry.org) 访问
EPSG 4326 代表世界大地测量系统 (WGS84) ( https://epsg.io/4326 )(地球表面上的点以纬度和经度表示)
我已将其转换为代表 GDA94 / Geoscience Australia Lambert ( https://epsg.io/3112 ) 的 EPSG 3112。您应该将其转换为您研究区域的相应 EPSG 代码。