Python: ошибка при использовании osmnx во время извлечения сборки - PullRequest
0 голосов
/ 07 апреля 2019

Я бы хотел извлечь информацию о строительном слое на Гаити, используя osmnx. Я работаю для разных городов, это не в случае

import osmnx as ox
place_name = "Port-au-Prince"
buildings = ox.buildings_from_place(place_name)

Я получаю следующую ошибку

TypeError: Geometry must be a shapely Polygon or MultiPolygon

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

См. https://github.com/gboeing/osmnx/issues/16 для всестороннего обсуждения этой проблемы и как решить ее в вашем запросе.

Согласно документации OSMnx:

Запрос должен бытьgeocodable и OSM должны иметь границы полигонов для результата геокодирования.Если в OSM нет полигона для этого места, вы можете вместо этого получить его уличную сеть с помощью функции graph_from_address, которая геокодирует название места в точку и получает сеть на некотором расстоянии от этой точки.В качестве альтернативы вы можете попытаться изменить параметр which_result, чтобы использовать другой результат геокодирования.Например, первый результат геокодирования (т. Е. По умолчанию) может преобразовываться в точечную геометрию, но второй результат геокодирования для этого запроса может преобразовываться в многоугольник, и в этом случае вы можете использовать graph_from_place with which_result = 2.

0 голосов
/ 08 апреля 2019

Полагаю, это внутренняя ошибка osmnx.«Порт-о-Пренс» отображается в OSM как узел .Этот узел является первым результатом поиска «Port-au-Prince» в Nominatim (геокодер).osmnx, кажется, вместо этого ожидает область, то есть административная граница .Такое отношение занимает второе и третье место в Номинатим.osmnx, по-видимому, потерпит неудачу, если найдет узел в качестве первого результата поиска.Создайте основной отчет об ошибке для osmnx.

...