Closed nermakovaa closed 9 months ago
Добавила виджет с выбором слоя https://github.com/webebers/city-view-back.git
Для примера подгрузила несколько слоев с использованием overpass API, весь код находится в файле test_plugin.py (функция - run(self)), столкнулась с проблемой отображения JSON в qgis, несмотря на то, что данные подгружаются (можно увидеть в отладке), возникает проблема с их отображением, нужна помощь в отображении @GeorgiySurkov
Опиралась на этот туториал https://dothanhlong.org/qgis-3-plugins-build-your-first-plugin/
Привет
А ты пыталась добавить слой с тем, что отдал overpass api? Он возвращает данные в формате osm, а qgis сам не может с таким форматом работать. Я переводил эти данные сначала в geojson. Уже с ним qgis умеет работать.
@GeorgiySurkov Попробовала, но он все равно выдает ошибку и не может данные считать, ты пробовал это все через консоль реализовать? В этом может быть проблема
@GeorgiySurkov можешь посмотреть каким образом я это делала в [test_plugin.py] и скорректировать (последний коммит - не забудь раскомитить эту часть и закомитить предыдущий run), чтобы отладить, не стесняйся вносить изменения в репозиторий
Я osm вывод из overpass конвертировал в geojson с помощью npm пакета osmtogeojson, но нам точно надо другой какой-то постараться найти из экосистемы питона. Судя по консоли, у тебя как раз до сих пор плагин пытается добавить слой с данными в osm формате.
Вообще стоит попробовать сразу сохранять вывод overpass API в spatialite.
@WenFutao @GeorgiySurkov спустя множество попыток у меня получилось преобразовать данные, которые мы получаем от overpass API (в json изначально) в geojson, и добавить слой с ними в qgis - при этом все это происходит при нажатии на виджет 'Выбора города'. Я решила начать с малого и добавила небольшой участок со зданиями - подробнее в overpassquery ((.;>;); - добавление этой части позволяет нам не получать пустой запрос) ''' [out:json]; ( way["building"](poly:"59.971389 30.252778 59.971111 30.262500 59.973333 30.262222 59.973611 30.252500 59.971389 30.252778"); ); (._;>;); out body; '''
Чтобы обработать данные мне потребовалось создать список словарей где ключом является id ноды, а значением - координаты точки (широта и долгота). Я использую geopandas.
Я обновлю код в репозитории. В ближайшее время мы должны подумать как можно таким же образом добавить дороги и перекрестки. Мы можем работать с таким слоем?
залила все в эту папку, поскольку каждый раз весь проект пересобирается, не стала в master добавлять https://github.com/webebers/city-view/tree/new_branch/test_plugin_new
Попытаться добавить виджет с выбором города в https://github.com/webebers/city-view-back.git