OSMnx: лучше указать место в "gdf_from_place" - PullRequest
0 голосов
/ 20 февраля 2019

Я использую OSMnx в Python для получения геометрии состояний (например, для Австрии).Однако OSMnx иногда выбирает не тот OSM-объект как место.Могу ли я указать объект 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 для получения геометрии "Зальцбурга", я получаю точку вместо многоугольника.

>>> outline = osmnx.gdf_from_place("Salzburg")

geometry    place_name
POINT (13.0464806 7.7981346)    Salzburg, 5020, Austria

Поскольку "Зальцбург" - это город, а также штат, я хотел бы добавить идентификатор OSM в запрос, чтобы сделать его однозначным.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 01 марта 2019

OSMnx не принимает идентификатор OSM, но вы можете указать, хотите ли вы указать город или штат (или даже which_result):

import osmnx as ox
outline_city = ox.gdf_from_place({'city':'Salzburg'})
outline_state = ox.gdf_from_place({'state':'Salzburg'})
...