Я должен нарисовать карту сети общественного автобусного транспорта, и у меня есть проблема на проспектах, где проходит много линий. Моя цель - сделать визуальную карту, где линии в этих проспектах параллельны друг другу и без промежутков между ними, чтобы видеть все из них одновременно, независимо от масштаба.
Я пробовал варианты привязки и параллельного рисования (инструменты САПР), но проблема в том, что когда я меняю масштаб, расстояние между линиями меняется, и они сталкиваются или отделяют одну от другой, запутывая все.
Итак, мой вопрос:
- Есть ли возможность рисовать смежные линии, которые остаются смежными независимо от масштаба визуализации?
Примечание: я не знаю, используется ли смежность для того, что я имею в виду, поэтому здесь я копирую пример того, что я ищу:
Вот что происходит, когда я увеличиваю:
И когда я уменьшаю:
РЕДАКТИРОВАТЬ: Здесь я разделяю ситуацию, почему предлагаемое решение не будет работать для меня. Три линии некоторое время разделяют одну и ту же улицу, но затем они разделяются на три разные улицы.
Я не могу использовать одну линию с несколькими символами, потому что по всей сети линии разделяются и снова соединяются (имеется более 15 линий шины).
Данные, содержащиеся в данных атрибута, мне не помогают, потому что это всего лишь слой, заполненный линиями, без атрибута, кроме какой-либо сетевой информации (количество автобусов / час, пассажир / час и т. Д.). (QGIS 2.8.6 работает на Windows 7)
Ответы:
Не уверен, что это то, что вам действительно нужно, но вы можете использовать одну строку с другой символикой, чтобы создать видимость двух параллельных линий.
Начиная с линии 1,1 км в CRS 3857 (метрика, псевдо-Mercator согласно Google и другим веб-службам):
В свойствах добавьте еще один слой символов (чтобы вы увидели две строки).
Установите ширину каждой линии в единицах карты - в этом случае единицы измерения - метры, и я выбрал ширину 50 метров, и установил смещение каждой линии равным половине их ширины, при этом одна из них имеет равный, но отрицательный смещение:
Это создает видимость, которую вы ищете:
... и это сохраняется в разных масштабах:
источник
Если под «опцией привязки» вы имеете в виду, что вы не можете изменить геометрию полилиний и можете изменить только их символы, то описанное вами практически невозможно.
Из ваших примеров вы, похоже, пытаетесь визуализировать полилинии таким образом, чтобы параллельные участки соприкасались друг с другом, не перекрывая друг друга, например, из-за того, что граница между двумя параллельными линиями поровну разделяла их расстояние разделения. Если мы рассмотрим представления полилинии как их буферы , то вы можете придумать случаи (аналогично вашему рис. 4), когда одна и та же линия должна иметь разную «буферную» ширину на разных участках (продиктованную ближайшими соседними линиями). Другими словами, ширина вашего буфера будет зависеть от других полилиний и может варьироваться в разных сегментах полилиний. Но обычно символизация использует только информацию / атрибуты самой функции.
Конечно, вы всегда можете использовать «буфер» фиксированного радиуса вокруг линий и вручную манипулировать вершинами (или редактировать буферы), чтобы границы привязывались друг к другу. Тогда буферы останутся «зажатыми» с увеличением / уменьшением масштаба, хотя это требует много ручного труда и может потребоваться корректировка, если добавляются новые строки.
источник