Обновить ответ (версия QGIS> = 2.14)
Начиная с QGIS 2.14 , вы можете использовать операторы запуска SQL на любом загруженном векторном слое, используя виртуальные слои .
- Загрузив слой в QGIS, перейдите в Layer> Add Layer> Add / Edit Virtual Layer ;
В диалоговом окне «Создать виртуальный слой» введите оператор SQL в поле «Запрос». Что-то вроде:
ВЫБЕРИТЕ DISTINCT название города ОТ имени слоя
Для геометрии установите No Geometry
- Нажмите Ok, и таблица загрузится в QGIS с желаемыми уникальными значениями.
Примечание: эта таблица будет обновлена, если новые значения будут добавлены в столбец city_name.
Устаревший ответ (версия QGIS <2.14)
У вас есть несколько вариантов сделать то, что вы просите.
- Импортируйте свой шейп-файл в базу данных Spatialite или Postgis, и затем вы сможете запросить таблицу, используя полные операторы SQL;
- Используйте инструмент «Растворение» («Вектор»> «Инструменты геообработки»> «Растворение»), чтобы растворить ваши шейп-файлы, используя поле «имя-города». Хотя это странный метод, файл dbf результирующего шейп-файла предоставит вам необходимый список;
- Взгляните на плагин групповой статистики (1.6) , вы можете использовать «city_name» в качестве поля классификации и нажать «Рассчитать». Он рассчитает некоторые статистические данные о каждом городе, затем вы можете скопировать результат и извлечь список городов.
Я только что заметил, что в Vector> Analysis Tools есть инструмент List уникальных значений , который именно то, что нужно для этой задачи. Так просто ... нет обходных путей и не нужны плагины.
Попробуйте включить что-то вроде:
источник
Используйте построитель запросов в QGIS, перейдите в поле названия города в полях в построителе запросов. Перейти к значениям, добавить все. Удалите все нули.
Создайте сценарий, похожий на city name = "london" и city name = "paris", пока не получите полный список имен и запустите сценарий. Теперь все названия городов выбраны. Вы можете экспортировать выбранный файл формы и импортировать его в базу данных postgresql.
Чтобы использовать бэкэнд postgresql для QGIS, установите в postgresql стек postgresql с геосервером, postgresql и базой данных с поддержкой postgis. Вам нужно будет подключить QGIS к серверу. Поиграйте немного, и вы поймете это.
источник