3

我创建了一个带有 Pointsgeometry列的 GeoDataFrame:

1. 创建df

df = pd.DataFrame([[51.502687, -3.538329, 2242, 1, 47],
                   [52.699185, -0.050122, 870, 2, 35],
                   [51.574387, 0.397882, 651, 3, 47],
                   [51.43874, 0.395791, 625, 4, 35],
                   [51.23965, 0.561919, 614, 5, 36]],
                   columns = ["lat","long","num_of_trucks","performance","num_of_routes"]
                 )

df 

2. 创建gdfdf

gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df["lat"],df["long"]),
                                                                 crs={"init": "epsg:4326"})
gdf

3.重投影到使用米的CRS并计算buffer_radius每个Point周围10KM

gdf.to_crs(epsg=3395,inplace=True)
#gdf.to_crs(epsg=3857,inplace=True)
#gdf.to_crs(epsg=27700,inplace=True)

gdf["buffer_radius"] = gdf.geometry.buffer(10000)

4.将几何列更改为新buffer_radius

gdf = gdf.set_geometry('buffer_radius')
gdf.geometry.name
Out: 'buffer_radius'

上述过程似乎生成了我想要的 GeoDataFrame ,其中包含gdf一个名为 Polygons 的新“几何”列buffer_radius

然后我想绘制这些新创建的多边形,所以首先我转换了buffer_radius列的 CRS:

5.重新投影到允许我制作情节的CRS:

gdf.to_crs(epsg=4326,inplace=True)

6. 制作最终情节:

然后我尝试绘制多边形,但它返回了一个空图:

gv.Polygons(gdf)

在此处输入图像描述

我的情节返回空的事实让我想知道这是否是一个可能的投影问题?

有谁知道我在这里做错了什么?任何想法或指示将不胜感激。

谢谢

4

1 回答 1

1

这显然是一个问题geoviews,它没有使用活动几何列,而是使用名为geometry. gdf["geometry"] = gdf.geometry.buffer(10000)如果您只是用缓冲区(

于 2020-10-04T19:59:24.700 回答