Стиль слоя на основе внешних данных
Добавлено: 19 июл 2017, 19:14
Есть набор данных OSM в QGIS. В нем есть слой с полигонами зданий. У нашего городского провайдера на сайте есть список домов, в которых он присутствует. Мне нужно раскрасить полигоны этих домов на карте другим цветом. Да, провайдеров будет несколько.
Кое-что я уже попробовал. Создал новый shape-слой providers с полями id,provider и osmid. Далее добавил в таблицу этого слоя несколько строк. Значения osmid копировал из слоя building_polygon.shp для конкртеного дома, значение provider указывал в соответсвии со списом адресов провайдера. Далее для слоя building_polygon создал связь со слоем providers по полю osmid. Теперь для слоя building_polygon стало доступно поле provider. Теперь в качестве стиля для слоя building_polygon можно использовать стиль "Уникальные значения", в качестве поля выбрать providers_provider и задать разные цвета для разных значений полей.
В принципе получается то что и хотелось. Но непонятно как реализовать это для всех домов из списка. Сам список домов я могу привести к любому виду и руками (csv, например), но копировать для каждого адреса поле osmid в отдельную таблицу это уже слишком много ручной работы. Хочется найти более элегантное решение. Есть подозрения что подобную задачу можно решить несколькими способами, и придуманный мной не самый простой.
Сейчас думаю импортировать список домов целиком в таблицу нового слоя и попробовать настроить связь с ним слоя building_polygon по полям A_STRT и A_HSNMBR. Но прийдется унифицировать названия улиц.
Кое-что я уже попробовал. Создал новый shape-слой providers с полями id,provider и osmid. Далее добавил в таблицу этого слоя несколько строк. Значения osmid копировал из слоя building_polygon.shp для конкртеного дома, значение provider указывал в соответсвии со списом адресов провайдера. Далее для слоя building_polygon создал связь со слоем providers по полю osmid. Теперь для слоя building_polygon стало доступно поле provider. Теперь в качестве стиля для слоя building_polygon можно использовать стиль "Уникальные значения", в качестве поля выбрать providers_provider и задать разные цвета для разных значений полей.
В принципе получается то что и хотелось. Но непонятно как реализовать это для всех домов из списка. Сам список домов я могу привести к любому виду и руками (csv, например), но копировать для каждого адреса поле osmid в отдельную таблицу это уже слишком много ручной работы. Хочется найти более элегантное решение. Есть подозрения что подобную задачу можно решить несколькими способами, и придуманный мной не самый простой.
Сейчас думаю импортировать список домов целиком в таблицу нового слоя и попробовать настроить связь с ним слоя building_polygon по полям A_STRT и A_HSNMBR. Но прийдется унифицировать названия улиц.