1

我正在尝试使用 Python 中的 osmnx 库将一组点(纬度、经度)与边缘相关联。

我想找到距离 x 内的边缘最近的点。

我有一条边,我想画一个圆并计算给定半径的圆中有多少点。我有每个点的纬度和经度坐标,但我不知道如何计算边缘的经度和经度坐标。我也有由该边缘连接的节点的纬度、长坐标。

谢谢您的帮助。

4

1 回答 1

0
    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))

注意事项:

  1. EPSG 大地测量参数数据集是坐标参考系统和坐标变换的结构化数据集,可通过此在线注册表 (www.epsg-registry.org) 访问

  2. EPSG 4326 代表世界大地测量系统 (WGS84) ( https://epsg.io/4326 )(地球表面上的点以纬度和经度表示)

  3. 我已将其转换为代表 GDA94 / Geoscience Australia Lambert ( https://epsg.io/3112 ) 的 EPSG 3112。您应该将其转换为您研究区域的相应 EPSG 代码。

于 2019-10-02T01:30:55.487 回答