Как я могу изобразить расстояние с помощью штрихов или маркеров векторной линии?

14

Я очень простой пользователь и не знаю, как найти язык, чтобы понять суть моего вопроса, поэтому некоторые сведения могут помочь.

Я вызвался создать систему планирования до инцидента для моей сельской пожарной охраны. Нашей основной уязвимостью являются чрезвычайно длинные не нанесенные на карту дороги.

До сих пор я успешно передавал данные GPS проездов по аэрофотосъемке района в виде ярко-зеленых линий (слой .SHP) с меткой, показывающей длину каждой проезжей части. Это выглядит великолепно и очень полезно как есть.

Теперь вопрос : я хочу нарисовать векторные линии проезжей части в виде штрихов или маркеров с длиной 100 футов. Наши шланги поставляются длиной в 100 футов; Векторная линия, определенная маркерами с интервалом в 100 футов, сэкономила бы мне много времени и значительно улучшила бы данные.

До сих пор я пробовал «Единый символ» как «Простую линию», используя настроенный штрих-рисунок, и «Маркерную линию», используя интервальное размещение. Ни один из этих параметров не поддерживает правильную длину при масштабировании или «масштабировании» (если это термин).

Возможно, это невозможно? (по крайней мере, на моем уровне знаний. Я научился этому далеко, и у меня не так много времени дурачиться :))

Боб Митчелл
источник
4
Добро пожаловать на сайт! Быстрый вопрос: какое программное обеспечение вы используете для этого отображения? ArcGIS (и какая версия)? QGIS? Mapinfo? В зависимости от того, что вы используете, есть несколько разных способов сделать это.
om_henners
2
Если вы работаете в QGIS, я только что открыл это для вас. Hub.qgis.org/issues/6953
Натан W

Ответы:

8

Поскольку в QGIS также есть Simple и Marker Line, я отвечу с точки зрения QGIS. Как сказал Стивен, использование линий маркеров на самом деле не даст вам того, что вам нужно, хотя это сделало бы хороший запрос функций, который я только что открыл .

Лучше всего делать ставки на данный момент, чтобы заработать очки вдоль линии. Я обрисовал в общих чертах, как вы можете сделать это в QGIS в моем блоге в разделе Создание узлов цепей (расстояний) в QGIS.

К счастью, один из ребят из проекта взял мою логику и превратил ее в плагин на https://github.com/mach0/qchainage .

Чтобы установить плагин

  • Нажмите кнопку ZIP на https://github.com/mach0/qchainage или перейдите по этой ссылке
  • Распакуйте zip-файл в {yourusername}\.qgis\python\plugins\. Теперь у вас должна быть qchainage-masterпапка в папке плагинов.
  • Откройте QGIS и включите QChainageв менеджере плагинов
  • Откройте свой слой линии
  • Выберите пункт меню Plugins->QChainage->Create Chainage
  • Заполните варианты

    Варианты qchainage

    Я использую 10 метров здесь. Расстояние в единицах карты.

  • Нажмите ОК

  • Прибыль ...

    результат

Это создаст новый точечный слой в памяти, если вы хотите сохранить его. Щелкните правой кнопкой мыши новый точечный слой и выберитеSave As...

Натан У
источник
Спасибо за помощь, Натан. После некоторых бесполезных попыток установить плагин я прочитал пост ниже от mach0 .. :) Я должен был опубликовать свою версию программного обеспечения с вопросом: QGIS 1.7.3-Wroclaw против ревизии кода 00624b3.
Боб Митчелл
6

Добро пожаловать на сайт. Поскольку вы упомянули Simple Line и Marker Line, я собираюсь предположить, что вы используете ArcMap.

Я не уверен, позволяет ли какой-либо из методов символизации линии указать расстояние, которое будет поддерживаться при увеличении / уменьшении масштаба.

Обходной путь может заключаться в создании отдельного точечного слоя и размещении точки каждые 100 футов. См. Файл справки в разделе « Создание новых точек вдоль линии» для получения инструкций о том, как это сделать. Это может позволить вам быстро подсчитать точки вдоль линии, чтобы узнать, сколько времени прошло.

Обратите внимание, что этот метод не является «живым», поэтому вам нужно будет заново создать точки, если какая-либо из линий изменилась.

Стивен Лид
источник
Спасибо Стивен, это то, что я пытался избежать, однако.
Боб Митчелл
@BobMitchell Если вы в конечном итоге используете этот подход, вы можете написать его с помощью Python, чтобы было очень легко воссоздать точки при изменении базовых данных
Стивен Лид,
1

Единственное, что плагин в настоящее время работает только в master ... потому что он использует функцию, не предусмотренную в текущем стабильном выпуске 1.8 .. Поэтому вы должны использовать предоставленный ночной код (вероятно, параллельно с вашей существующей стабильной установкой). Обычно Я бы сказал, что мастер так же стабилен, как и «стабильный 1.8» - но в процессе подготовки мастера к релизу 2.0 идет большая реструктуризация, так что вы можете столкнуться с некоторыми проблемами. Извините за это - но QGIS продолжается прогресс :)

Как только появится 2.0, будет много новостей.

Натан - спасибо за алгоритм и за распространение "не сейчас" выпущенного плагина - я думаю, пришло время отправить его в официальный репозиторий ..

mach0
источник
2
Вы действительно должны были добавить это как комментарий к моему вопросу. Быстро прочитайте FAQ gis.stackexchange.com/faq
Натан W