Я пытаюсь создать соединение / связь в QGIS, где у меня есть шейп-файл зданий, и к которому я хотел бы присоединиться к непространственной таблице (.csv), содержащей людей, которые работают в каждом здании. Таким образом, в моей таблице есть несколько записей, которые я хотел бы иметь возможность присоединиться к моим отдельным объектам в моем шейп-файле. Я могу запустить соединение только в QGIS, где первая запись соединяется с функцией шейп-файла (т. Е. Строится), но последующие записи удаляются.
Может ли кто-нибудь дать мне знать, как завершить это соединение в QGIS?
Ответы:
Я решил эту проблему, используя QGIS 1.7.0, сначала сохранив векторный слой в виде таблицы значений, разделенных запятыми (CSV), и преобразовав геометрическое поле в хорошо известный текст. Для этого в поле слоя диалогового окна «Сохранить векторный слой как ...» необходимо указать GEOMETRY = AS_WKT, чтобы создать хорошо известное текстовое поле геометрии со столбцом с именем WKT.
Затем файл геометрии CSV был присоединен к таблице атрибутов не геометрии в соединении «один ко многим» на вкладке «Свойства» таблицы атрибутов не геометрии.
Полученное объединение было сохранено как другой CSV-файл геометрии.
Когда эта таблица открывается в QGIS, каждая запись атрибута была представлена соответствующей векторной геометрией.
Делая все это, я обнаружил, что Плагин с разделителями текста не нужен для открытия файла геометрии CSV, если разделители являются запятыми, а поле геометрии WKT называется WKT.
Для получения подробной информации о том, как это сделать, см. Мой учебник по адресу http://georgiawildlife.com/node/2849 .
источник
ogr2ogr
для создания файлов CSV из Shapefiles. Затем простой R-скрипт для объединения файлов в общем поле, которое я хотел, и обратной записи в CSV. Затемogr2ogr
снова создать объединенный шейп-файл.Соединения, созданные в свойствах слоя, добавляют только столбцы к существующим объектам. Если векторный слой имеет только 160 объектов, объединение не может увеличить количество объектов!
Вместо этого используйте функцию виртуального слоя. Он предлагает реальные соединения типа SQL / базы данных. Для примера см. Мой недавний пост: Маленькие кратные для карт потока OD с использованием виртуальных слоев
источник
В QGIS 1.7 есть новый движок для соединений (вы можете найти его в свойствах вектора).
Таблицы без геометрии теперь можно добавлять в проект, как и любой другой (векторный) слой.
источник
Начиная с версии 2.2 QGIS поддерживает отношения «один ко многим». Определите их в свойствах проекта, но не в свойствах векторного слоя. И тогда связанные записи появятся в таблице атрибутов слоя или определить результаты через форму.
Смотрите ответ и ссылку на хорошее руководство здесь .
источник
Сделайте объединение в базе LibreOffice.
Вы не можете преодолеть тот факт, что вы пытаетесь управлять отношениями 1 ко многим.
Для непространственного к непространственному стоит учиться. Я считаю, что самая большая хитрость заключается в том, чтобы убедиться, что поля атрибутов соединения имеют точно такие же термины.
Откройте пространственно расположенные данные как слой в QGIS, затем выберите все записи в таблице атрибутов в QGIS (очистить выбор, инвертировать выбор) и скопируйте их на новый лист в LibreOffice Calc. Вы найдете первое поле WKT, которое представляет собой описание функции, которая может быть универсально использована в ГИС. Calc даст вам диалог для импорта вставленной таблицы, выберите разделитель табуляции, убедитесь, что запятая не помечена, так как она разжевывает поле WKT до битов. Затем выделите эту таблицу в Calc, переключитесь на Base, выделите значок Tables слева и вставьте. База пройдет через диалоговое окно для импорта таблицы. Поле WKT может быть сохранено через объединение, и когда файл импортируется обратно в QGIS как .csv, они используются для перемещения объектов. Просто запомни проекцию.
Таким образом, вы будете иметь полный контроль над объединением и сможете делать это «в обратном порядке». Для выполнения объединений в Base убедитесь, что уникальное поле данных (1) является первичным ключом, а затем укажите его на «многие», если вы знакомы с концепцией «1 ко многим» или «1 к n». Соединения создаются путем установления отношений | TOOLS |. Как я уже упоминал, вы, вероятно, захотите пнуть кого-нибудь, когда обнаружите, что поля объединения имеют одинаковую информацию, но использовали другой текст или синтаксис для ее представления.
НТН
источник
Я не думаю, что это возможно, чтобы связать таблицы с отношением 1 ко многим в QGIS. В качестве альтернативы вы можете попробовать gvSIG. Здесь вы можете сделать от 1 до многих ссылок. После создания ссылки при выборе объекта на карте будут выделены все связанные записи в связанной таблице.
источник