OSMnx:更好地指定 "gdf_from_place" 中的位置
OSMnx: Specify place in "gdf_from_place" better
我在 Python 中使用 OSMnx 来获取各州的几何形状(例如奥地利)。但是,OSMnx 有时会选择错误的 OSM 对象作为位置。我可以使用其 ID 指定 OSM 对象吗?
示例:
我使用 OverpassAPI 获取奥地利各州的名称:
(area["ISO3166-1"="{country}"];rel(area)[admin_level="{adminLevel}"];);
out center meta;
这给了我状态列表:
@id @lat @lon name
35183 47.2199394 14.8675619 Steiermark
52343 47.1971981 11.5319171 Tirol
52345 46.7517868 13.8605291 Kärnten
74942 47.2184818 9.8839555 Vorarlberg
76909 47.4746574 16.5785134 Burgenland
77189 48.2213684 15.7607387 Niederösterreich
86539 47.4926636 13.0361103 Salzburg
102303 48.1168383 13.8707061 Oberösterreich
109166 48.2202874 16.3796721 Wien
但是当我使用 OSMnx 获取 "Salzburg" 的几何形状时,我得到的是一个点而不是一个多边形。
>>> outline = osmnx.gdf_from_place("Salzburg")
geometry place_name
POINT (13.0464806 7.7981346) Salzburg, 5020, Austria
由于 "Salzburg" 是一个城市也是一个州,我想将 OSM ID 放入查询中以使其明确。有办法吗?
OSMnx 不接受 OSM ID,但您可以指定您想要城市还是州(甚至 which_result
):
import osmnx as ox
outline_city = ox.gdf_from_place({'city':'Salzburg'})
outline_state = ox.gdf_from_place({'state':'Salzburg'})
编辑:请注意,从 OSMnx v0.15.0 开始,gdf_from_place
和 gdf_from_places
函数已被弃用并被 geocode_to_gdf
函数取代。有关详细信息,请参阅 the docs。
我在 Python 中使用 OSMnx 来获取各州的几何形状(例如奥地利)。但是,OSMnx 有时会选择错误的 OSM 对象作为位置。我可以使用其 ID 指定 OSM 对象吗?
示例:
我使用 OverpassAPI 获取奥地利各州的名称:
(area["ISO3166-1"="{country}"];rel(area)[admin_level="{adminLevel}"];);
out center meta;
这给了我状态列表:
@id @lat @lon name
35183 47.2199394 14.8675619 Steiermark
52343 47.1971981 11.5319171 Tirol
52345 46.7517868 13.8605291 Kärnten
74942 47.2184818 9.8839555 Vorarlberg
76909 47.4746574 16.5785134 Burgenland
77189 48.2213684 15.7607387 Niederösterreich
86539 47.4926636 13.0361103 Salzburg
102303 48.1168383 13.8707061 Oberösterreich
109166 48.2202874 16.3796721 Wien
但是当我使用 OSMnx 获取 "Salzburg" 的几何形状时,我得到的是一个点而不是一个多边形。
>>> outline = osmnx.gdf_from_place("Salzburg")
geometry place_name
POINT (13.0464806 7.7981346) Salzburg, 5020, Austria
由于 "Salzburg" 是一个城市也是一个州,我想将 OSM ID 放入查询中以使其明确。有办法吗?
OSMnx 不接受 OSM ID,但您可以指定您想要城市还是州(甚至 which_result
):
import osmnx as ox
outline_city = ox.gdf_from_place({'city':'Salzburg'})
outline_state = ox.gdf_from_place({'state':'Salzburg'})
编辑:请注意,从 OSMnx v0.15.0 开始,gdf_from_place
和 gdf_from_places
函数已被弃用并被 geocode_to_gdf
函数取代。有关详细信息,请参阅 the docs。