计算LineString和Point之间的距离(以米为单位)



我有LineString和Point,我想以米为单位计算它们之间的距离:

  • line=LINESTRING(7.301606 52.5602366,7.300065099999999 52.5587741(
  • 点=点(8.02 52.303333(

我用的是:线.距离(点(。我有一个距离,但我不知道如何转换为米或公里。我用的地球标准,我读到单位是CRS。任何帮助都将不胜感激。

  • 根据注释,您需要指定CRS我正在使用地质标准,我读到该单位是CRS我假设您的意思是WSG84 CRS,即EPSG:4326
  • 给定地质标准每个GeoDataFrame只有一个几何列的限制,已将LINESTRINGPOINT放入单独的数据帧中
  • 从WSG84到UTM CRS的项目https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system.这意味着坐标以米为单位。如果LINESTRINGPOINT位于不同的UTM区域,这将不起作用
  • 那么它的使用非常简单https://geopandas.readthedocs.io/en/latest/docs/reference/api/geopandas.GeoSeries.distance.html
import shapely.wkt
import geopandas as gpd
gdfl = gpd.GeoDataFrame(geometry=[shapely.wkt.loads("LINESTRING (7.301606 52.5602366, 7.300065099999999 52.5587741)")], crs="EPSG:4326")
gdfp = gpd.GeoDataFrame(geometry=[shapely.wkt.loads("POINT (8.02 52.303333)")], crs="EPSG:4326")
utm = gdfl.estimate_utm_crs()
gdfl.to_crs(utm).distance(gdfp.to_crs(utm))

输出

56592.878178

相关内容

最新更新