1

使用OSMnxgdf_from_places()生成作为一个组获取的多面体联合的最佳实践是什么?

gboeing02-example-osm-to-shapefile.ipynb示例中,使用 gdf_from_places() 方法将多个 shapefile 从 OSM 下载到地理数据框。几何图形存储为 Geopanda 数据框中的多面体,每一行代表一个地点。

# you can pass multiple queries with mixed types (dicts and strings)
mx_gt_tx = ox.gdf_from_places(queries=[{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}])
mx_gt_tx = ox.project_gdf(mx_gt_tx)
fig, ax = ox.plot_shape(mx_gt_tx)

osmnx gdf_from_places 示例

关于这个问题,我尝试过使用 Geopanda 的GeoSeries.unary_union,但想知道其他人是如何在 Python 中以编程方式完成的。

当前流程 2018

此方法使用 unary_union 的Shapely 函数(否则它将是 mx_gt_tx["geometry"].unary_union 通过 Geopandas,正如@joris 评论所指出的那样。

queries = [{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}]

# buffer_dist is in meters
mx_gt_tx = ox.gdf_from_places(queries, gdf_name='region_mx_gt_tx')
mx_gt_tx

伊姆古尔

# project the geometry to the appropriate UTM zone then plot it
mx_gt_tx = ox.project_gdf(mx_gt_tx)
fig, ax = ox.plot_shape(mx_gt_tx)

伊姆古尔

# unary union through Geopandas
region_mx_gt_tx = gpd.GeoSeries(unary_union(mx_gt_tx["geometry"]))
region_mx_gt_tx.plot(color = 'blue')
plt.show()
print(region_mx_gt_tx )

伊姆古尔

4

1 回答 1

2
import osmnx as ox
gdf = ox.gdf_from_places(queries=[{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}])
unified = gdf.unary_union
于 2018-09-19T17:13:59.550 回答