Створення паралельних ліній на певній відстані від ліній, які є частиною файлу форми


11

Я використовую QGIS 2.18. Я маю shapefile, який містить кілька рядків. Після обробки певної обробки даних мені потрібно провести паралельні лінії на різних відстанях від існуючих ліній. Наприклад, у мене є 32 рядки в існуючому файлі форм. Я хочу провести паралельні лінії на відстані 50, 100, 170, 500,400 від ідентифікатора лінії № 3, 6,20,25,31 за один раз. Чи є якийсь метод або плагін у QGIS для того ж?

Відповіді:


6

Ви можете використовувати плагін QAD , який пропонує CAD-подібні команди в QGIS.

Він працює лише з проектованими системами координат (тому перед тим, як використовувати їх, потрібно спроектувати свої дані) та з увімкненим режимом редагування (клацніть правою кнопкою миші на шарі та виберіть Toggle Editing).

Для вашого випадку вам потрібно натиснути кнопку « Зсув »:

введіть тут опис зображення

і дотримуйтесь інструкцій, які з’являться у текстовому вікні QAD (точно так само, як у AutoCAD):

введіть тут опис зображення

Наприклад, це вихід при використанні різного зміщення для двох різних функцій:

введіть тут опис зображення


Дякуємо за Ваш відповідь. Чи є якийсь інший метод або плагін для виконання цього завдання без проектування даних?
Житендра

Я використовував підхід із прогнозованими даними, оскільки здавалося, що ви маєте справу з лічильниками ( відстані 50, 100, 170, 500 400 .. ). Зміна проекції дуже проста: клацніть правою кнопкою миші по шару, потім Save asі, нарешті, виберіть Проектовану систему координат. Виконавши зміщення, ви можете повернутись до Географічної системи координат із зворотною операцією ... Це має бути правильним.
мгрі

Не проектуючи дані, вам потрібно мати справу з кутами замість лічильників, і я не знаю, чи стане вам легше ...
mgri

Інструмент QAD працює чудово. Але мені доведеться повторити завдання для всіх рядків у shapefile вручну. Чи є спосіб зчитувати рядок line_ID та зчитувати відстань до рядка з таблиці атрибутів чи файлів exel або CSV та малювати всі паралельні лінії одночасно.
Jitendra

Я не знаю інструмент, який виконує цю задачу, але я можу спробувати дати рішення за допомогою PyQGIS ... Чи може це зацікавити вас?
mgri

6

Якщо у таблиці атрибутів є стовпець, який вказує відстань між паралельними рядками, наступний метод повинен мати змогу зробити це за один раз -

Ви можете використовувати Single sided buffers (and offset lines) for linesалгоритм, GDAL/OGR > [OGR] Geoprocessingнаведений у наборі інструментів Processing. Вам потрібно буде встановити Операція як Зсувна крива та ввести ім'я стовпця, що містить відстань у буферній відстані (У моєму випадку назва стовпця має ширину ). Також ви можете встановити, на якій стороні лінії повинна бути проведена паралельна лінія, вибравши сторону буфера як праву чи ліву.

введіть тут опис зображення


Дякуємо за відповідь Я використовую інструмент OGR за вашою пропозицією, але нічого не показано у новому форматі виводу.
Jitendra

Чи можете ви поділитися системою проекцій, у якій знаходиться файл форми? Скріншоти таблиці атрибутів вихідного шару можуть бути корисними.
наш

Система проекції формфайлу - EPSG 4326
Jitendra

Отже, ви розумієте, що нові лінії створюються на відстані 50,100,170,500 і 400, що знаходиться в одиниці градусів, а не метрів (що я вважаю, що ви хочете?)
наш

Якщо припустити, що ви хочете відстань у метрах - вам доведеться перетворити свій файл форми в проекційну систему з одиницями в метрах (наприклад, UTM-проекційною системою відповідної зони). Потім запустіть алгоритм.
наш

6

Ви можете використовувати "v.parallel", цей інструмент можна знайти в панелі інструментів обробки QGIS.

  1. Виберіть рядок з ідентифікатором рядка №. 3, 6,20,25,31 Виберіть лінії

  2. Скористайтеся "v.parallel", створіть паралельну лінію з обраних рядків. Але вам потрібно зробити кілька разів, щоб створити різні відстані зміщення (50, 100, 170, 500,400). Є опція "Сторона", ви можете призначити розташування паралельних ліній. "v.parallel"

  3. Результат: паралельні лінії (синього кольору) ліворуч від вибраних ліній результат

Дякую Cy Y за відповідь. Я використав команду v.parallel, але нічого не було показано у новому вихідному файлі форм.
Jitendra

1
p / s: Команда "v.parallel" працює лише зі зігнутими лініями, вона не може працювати з прямими, що мають лише дві вершини.
Cy T
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.