Чи є в QGIS якийсь варіант провести паралельні лінії, що оснащуються на зовнішній частині лінії (сусідні лінії), незалежній від масштабу?


12

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

Я спробував параметри оснащення та паралельного малювання (інструменти CAD), але проблема полягає в тому, що коли я змінюю шкалу, відстань між лініями змінюється, і вони стикаються або відокремлюються одна від іншої, збиваючи все.

Отже, моє питання:

  • Чи є можливість намалювати суміжні лінії, які стоять поруч незалежно від масштабу візуалізації?

Примітка. Я не знаю, чи використовується сусіднє для того, що я маю на увазі, тому тут я копіюю приклад того, що я шукаю: Об'єктивна


Ось що відбувається, коли я збільшую масштаб:

Збільшувати

І коли я зменшую масштаб:

Зменшення

EDIT: Тут я поділяю ситуацію, чому запропоноване рішення не допоможе мені. Три лінії поділяють одну і ту ж вулицю на деякий час, але потім вони розділяються на три різні вулиці.

Розкол

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

Дані, що містяться в даних атрибутів, мені не допомагають, оскільки це лише шар, заповнений рядками, без атрибутів, окрім деякої мережевої інформації (кількість шин / годину, пасажир / година тощо). (QGIS 2.8.6 працює на Windows 7)


1
У QGIS 2.16 були введені нові варіанти спрощення візуалізації . Хоча я не можу підтвердити, чи це допоможе у вашій ситуації.
Йосип

Так, як я це зробив би в ArcGIS for Desktop, встановивши опорну шкалу на кадрі даних .
PolyGeo

Привіт @PolyGeo, проблема з цим рішенням (яке можна реалізувати в QGIS, змінюючи одиниці на "блок одиниць") полягає в тому, що мені потрібні лінії для зміни їх ширини залежно від масштабу, але не відношення між ними. Я знаю, що те, що мені потрібно, є чимось дуже конкретним і важким для реалізації. Щось більш підходяще для Illustrator, ніж для програмного забезпечення GIS. Дякуємо за допомогу!
Андреу Аморос

Чи лежать усі форми ліній один на одного чи вже є якесь зміщення між ними?
Йосип

В одних випадках вони лежать один на одного, а в інших випадках - ні. Що ви пропонуєте?
Andreu Amoros

Відповіді:


6

Не впевнений, що за цим ви дійсно хочете, але ви можете використовувати один рядок з різною символізацією, щоб створити вигляд двох паралельних прямих.

Починаючи з 1,1 км лінії в CRS 3857 (метрика, псевдо-Меркатор згідно Google та інших веб-служб):

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

У властивостях додайте ще один шар символів (так ви побачите два рядки).

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

Встановіть ширину кожного рядка в одиницях карт - у цьому випадку одиниці вимірюються, і я вибрав ширину 50 метрів, і встановити зміщення кожного рядка на половину їх ширини, причому один з них має рівну, але негативну компенсація:

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

Це надає вигляду, за яким ви хочете:

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

... і зберігається в різних масштабах:

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


2
Я думав над цим, але це було б важко розібратися при розділенні ліній.
Віктор

@ Віктор про розділення: ви можете створювати різні атрибути, такі як "один рядок", "подвійний рядок" зі значенням True / False та використовувати маркування на основі правил.
sweet.sugar.cola

1
@Victor погодився, потрібно отримати більше інформації від ОП про характер даних; це рішення може не працювати залежно від способу з'єднання та розділення ліній.
Simbamangu

1
@Andreu, можливо, ти можеш натиснути "редагувати" у своєму початковому дописі та додати цю інформацію (і приклад того, де це рішення не працюватиме ) та (ще краще) деякі зразкові дані?
Simbamangu

@Simbamangu Перш за все, дякую за те, що спробував рішення та поділився зі мною. Навіть якщо таке рішення може спрацювати в деяких випадках, як сказав Віктор, було б важко використовувати його, коли лінії відокремлюються від інших. Насправді це відбувається щоразу, коли лінії розбиваються на різні вулиці. Дані працюють так: я маю всі лінії мережі Bus у різних формах. "Проблема" полягає в тому, що всі вони релігістично побудовані, тому коли я вибираю більше одного за один, вони стикаються. Тому моя мета - зробити карту, де можна візуально бачити всю мережу. Я відредагую свою публікацію.
Андреу Аморос

3

Якщо під "варіантом оснащення" ви маєте на увазі, що ви не можете змінити геометрію поліліній і можете змінити лише їх символіку, то те, що ви описали, майже неможливо.

З ваших прикладів вам здається, що ви хочете зробити полілінії такими, що паралельні ділянки торкаються один одного без перекриття, наприклад, маючи межу між двома паралельними прямими однаково розділити відстань їх поділу. Якщо ми розглядаємо представлення поліліній як їх буфери , то ви можете створити випадки (аналогічні вашому рис. 4), коли одна і та ж лінія повинна мати різну ширину "буфера" на різних ділянках (продиктовано найближчими сусідніми лініями). Іншими словами, ваша ширина буфера залежатиме від інших поліліній і може змінюватися в різних сегментах поліліній. Але зазвичай символізація використовує лише інформацію / атрибути самої функції.

Звичайно, ви завжди можете використовувати «буфер» з фіксованим радіусом навколо рядків і вручну маніпулювати вершинами (або редагувати буфери), щоб межі стикалися один з одним. Тоді буфери залишатимуться "оснащеними" із збільшенням / зменшенням масштабу, хоча для цього потрібно багато ручної праці, і якщо нові додаються рядки, може знадобитися коригування.


Дякую за відповідь. Я можу змінити геометрію поліліній, але оскільки існує багато ліній, що перетинають один одного, і багато різних комбінацій, це стає дуже трудомістким і стомлюючим. Я спробував буферне рішення, але це ще важче, ніж просто редагувати форму ліній, тому що якщо доведеться визначати залежну візуалізацію у всіх сегментах усіх рядків.
Андреу Аморос

1
@AndreuAmoros. Це саме те, що я пропонував. Редагування рядків (або пов’язаних з ними "буферів") дійсно забирає багато часу, але це потребує характер вашої вимоги, щоб ці буфери стикалися один з одним.
тинликс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.