3

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 をクエリに入れたいと思います。これを行う方法はありますか?

4

1 に答える 1

1

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_placegdf_from_places関数は廃止され、 関数に置き換えられていることに注意してくださいgeocode_to_gdf。詳細については、ドキュメントを参照してください。

于 2019-03-01T18:58:01.167 に答える