gpt4 book ai didi

python - 在python中计算多边形的长度

转载 作者:行者123 更新时间:2023-12-02 17:57:51 27 4
gpt4 key购买 nike

我有一个 geopandas 数据框:

    lon           lat         geometry
0 31.269899 30.072927 POINT (30.07293 31.26990)
1 31.269413 30.073965 POINT (30.07397 31.26941)
2 31.268751 30.073629 POINT (30.07363 31.26875)
3 31.269287 30.073505 POINT (30.07351 31.26929)
4 31.269081 30.074694 POINT (30.07469 31.26908)

我用所有这些点创建了一个多边形,如下所示:

import geopandas as gpd
from shapely.geometry import Point, Polygon

gdf = gpd.GeoDataFrame(df,geometry = gpd.points_from_xy(df['lat'],df['lon']))
points = [x for x in gdf.geometry]
polygon = Polygon([[p.x, p.y] for p in points])
print(polygon)

输出是一个多边形:

POLYGON ((30.072927474975586 31.269899368286133, 30.073965072631836 31.269412994384766, 30.07362937927246 31.26875114440918, 30.073505401611328 31.269287109375, 30.07469367980957 31.269081115722656, 30.073972702026367 31.269569396972656, 30.074140548706055 31.269651412963867, 30.07431983947754 31.26882553100586,...)

如何获得以米为单位的长度?例如,获取 map 上第一家零售商和最后一家零售商之间的距离,使其呈现出可以测量的线条形状。

我尝试了这段代码:

polygon.length * 0.000621371

它给出:5.04009394506436e-05

这是错误的。

我在这里做错了什么?

最佳答案

另一种方法是使用 geopy 及其名为 distance 的函数,对代码添加一些更改。 geopy distance documentation

用法:

geopy.distance.distance([from.lon, from.lat], [to.lon, to.lat]).km

不确定是否有内置函数可以转换为米,但是有了公里,您自己应该很容易做到。

关于python - 在python中计算多边形的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75235494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com