Я пытался сделать это раньше, и мне не повезло.
QGIS места повторен символов на линии на основе одной опорной точки (по умолчанию, в центре, но вы можете установить его в верхний / средний / нижний х левый / центральный / правый) и вращает этот символ на основе наклона линии на этот момент. На прямой линии, где наклон не меняется от размещения одного символа к другому, каждый символ будет идеально совпадать с предыдущим. На кривой, однако, ни одна точка на одном символе не будет идеально соответствовать соответствующей точке на следующем символе.
Таким образом, если красная линия является самой линией, повторение символа вдоль этой линии приводит к появлению промежутков между символами вдоль внешней стороны кривой и наложению на внутреннюю часть кривой.
Чтобы полностью устранить пробелы и перекрытия, каждый квадрат символа должен быть изменен как ромб различного размера - подобно тому, как камни на арке скошены, чтобы соответствовать кривой. Насколько я знаю, невозможно что-то симулировать. Но вы можете уменьшить искажение, уплотнив и сгладив геометрию линии, чтобы изменение угла было менее значительным. В этом может помочь плагин обобщителя (попробуйте использовать его с алгоритмом Чайкена).
Кроме того, поможет разбить ваш символ на более мелкие сегменты и расположить их последовательно, чтобы снова уменьшить угол между каждым последующим маркером. Например, разбить ваш V
символ на a \
и a /
, загрузить как на линию маркера, так и для каждого, установить смещение по оси x, равное половине их ширины, положительное для одного и отрицательное для другого.
Наконец, немного более толстый символ с закругленными концами поможет замаскировать небольшое искажение.
Это все еще немного хак - хотелось бы услышать, если у кого-то есть более надежный подход.
Редактировать:
другая мысль: смещение от одного символа к другому, вызванное вращением символа вдоль кривой, является наибольшим в верхней / нижней части символа, но менее выраженным в середине. Таким образом, шаблон, который начинается и заканчивается в центре символа, будет иметь меньшие промежутки, чем шаблон, который начинается / заканчивается сверху / снизу. Например
... все еще взломать - все еще не надежный