Как оцифровать следы здания с ортогональными краями?

10

Используя QGIS, я пытаюсь оцифровать старую растровую карту, и, поскольку я в конечном итоге хочу загрузить эти 2-мерные слои в эскиз, чтобы превратить их в 3D-модели, мне нужно, чтобы все было квадратным.

Вот образец карты, с которой я работаю:

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

Зеленые линии, которые вы можете видеть, - это векторный слой железнодорожных путей, которые я уже оцифровал с использованием геометрических линий, остальные - это растровый слой, на который я правильно ссылался, и фон за каждым слоем.

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

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

Хотя этого достаточно для создания 2D-векторной карты (например, для отображения в виде листов веб-карты или для использования в QGis), его бесполезно экспортировать как KML, а затем импортировать в Sketch-up, поскольку все не является квадратным на 100%, а что Более того, крайне сложно получить вещи на 100% кв.

Как вы можете видеть из моих инструментов в QGis, у меня установлены оцифрованные прямоугольники и плагины cad-tools, но они не подходят для того, что мне нужно сделать, например, если мы возьмем инструмент захвата ортогонального многоугольника:

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

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

Если здание, которое я пытаюсь отследить, находится на этих осях, то нет проблем, все идеально, но многие из них не так, там под разными углами вокруг комплекса (это большая фабрика, я оцифровываю)

Идеальный инструмент, похожий на инструмент начала координат в эскизе вверх, с помощью которого вы начинаете с начала координат в одном углу, затем растягиваете X и Y, которые находятся под углом 90 градусов друг к другу, один поперек передней части. грань, одна на левую грань, все, что вы затем привязываете к этим исходным точкам, или любые полученные из него направляющие автоматически под углом 90 градусов к другим линиям, но с поворотом учитывается по мере необходимости, как вы можете видеть на следующем изображении:

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

Захват и оцифровка полигонов в эскизе, безусловно, возможна без использования QGis, но если я сделаю их таким образом, я не смогу их географически привязать, они просто получат стандартные мировые координаты с центром около 0,0

Оцифровка их в QGis выполняется таким образом, чтобы расположение в пространстве было правильным и соответствовало проекции OSGB36.

Эскиз также не подчиняется географическим ссылкам на фоновой карте. Когда я пытаюсь импортировать его, он привязывает нижний левый угол к 0,0, а затем просит меня масштабировать его соответствующим образом.

Только способ я нашел на получение географической привязки карты в эскиз вверх, если я использую область захвата от Google инструмента земли. Однако, начиная с версии SK 8 или выше, при этом она импортирует только базовую фотографию Google Earth Ariel, а не какие-либо пользовательские оверлеи, которые вы, возможно, отображали. Это означает, что если я загружу свою географическую привязку, она игнорируется, когда я пытаюсь захватить местоположение с географической привязкой.

Sketch-up V7 и ниже не игнорировали пользовательские изображения, но V7 больше не доступен для загрузки, и даже если вы найдете копию, она не запустится, потому что сервер аутентификации больше не будет аутентифицировать ключи для нее ... :-(

Главный вопрос

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

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

Если нет, то, похоже, мне придется изучить API подключаемого модуля QGis и написать свой собственный плагин.

Shawty
источник
Для ответа Shawty есть видеоурок: youtube.com/watch?v=QsjmLa16obs PS. Я оставляю его как ответ, так как у меня недостаточно репутации, чтобы оставить комментарий. PPS - Кто-нибудь решил последнюю проблему?
МОЛОДОЙ
Проблема «Последняя точка» больше не является проблемой. В самых последних версиях QGis срабатывает автоматическая привязка, вы должны использовать версию плагина только в том случае, если у вас действительно старая сборка QGis.
Shawty

Ответы:

20

Когда я отправил этот вопрос, я все еще использовал версию 2.2.0, с тех пор я обновился до 2.8.1.

То, что следует, является небольшим учебным пособием для тех, кто хочет решить ту же проблему.

Решением для меня был плагин cadinput от Oliver Dlang , я установил его довольно давно, но на самом деле никогда не смотрел на то, что он делал.

Затем я наткнулся на эту документацию:

https://github.com/olivierdalang/CadInput

и видео об этом на Vimeo.

https://vimeo.com/85052231

Подумав, где я могу найти плагин, я заглянул в свой менеджер плагинов, но обнаружил, что он уже установлен, поэтому я начал изучать, как его использовать. Позже я узнал, что начиная с версии 2.8.0 QGis этот плагин фактически встроен в ядро ​​в рамках усовершенствованных инструментов оцифровки.

Как использовать Cad Input

Документация на самом деле не вдавалась в подробности, и к видео нет комментариев, по сути, все сводится к следующим сочетаниям клавиш:

  • A: угол
  • D: расстояние
  • X: X координата
  • Y: координата y
  • Объедините их со «сдвигом» для переключения абсолютного / относительного режима
  • Объедините их с «alt» или «ctrl» для переключения заблокированного режима.
  • C: режим строительства
  • P: параллельно / перпендикулярно сегменту
  • ESC: разблокировать все заблокированные параметры

Выберите функцию, которую вы хотите оцифровать, и переведите слой в режим редактирования, как обычно, в моем случае это то, что я оцифровываю.

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

Перейдя в режим редактирования, нажмите на значок добавления новой функции (опять-таки стандартный материал), а затем найдите и активируйте либо расширенные инструменты оцифровки, либо плагин cad-input (значок одинаков для них обоих)

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

Это похоже на квадрат с линейкой позади него.

Однако здесь есть предупреждение, если вы используете более новый плагин QGis Don't Install Cad-Input. Я обнаружил, что с установленным плагином и версией QGis, включающей встроенную версию, горячие клавиши перестали работать.

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

Как только вы активируете инструмент ввода cad, у вас должна появиться панель, которая выглядит следующим образом:

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

(Я сделал некоторые основные моменты на этом ...)

  • У вас есть основная кнопка включения / выключения (красный прямоугольник)
  • Кнопка режима строительства (зеленый прямоугольник)
  • Кнопки параллельного и перпендикулярного режима (синий прямоугольник)

Глядя на сочетания клавиш, C включает / выключает кнопку режима конструирования, P переключает кнопки параллельного режима, нажимает ее один раз, чтобы получить перпендикуляр, дважды нажимает ее, чтобы выбрать параллельные линии.

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

С активным новым инструментом и включенной расширенной оцифровкой нарисуйте первые две точки вашего прямоугольника вдоль одного края объекта, который вы хотите оцифровать.

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

Как только вы нажмете вторую точку, вы увидите, что тонкая зеленая строительная линия выступает из конца созданной вами линии.

Это строительная линия для современных инструментов оцифровки. Если вы перемещаете мышь вниз, чтобы сделать второе лицо, вы должны обнаружить, что ваш ввод cad начнет показывать угол, под которым вы двигаетесь.

Именно в этот момент есть разница между двумя версиями.

Во встроенной версии по умолчанию инструмент автоматически привязывается к углам 90 градусов (хотя вы можете изменить это в настройках), если это произойдет, вы увидите следующее:

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

Заметили синюю линию под прямым углом к ​​ярко-зеленой?

На панели оцифровки вы увидите, что угол должен составлять 90 градусов. Если вы используете версию плагина, вы не увидите эту синюю линию, однако вам все равно следует нажать Ctrl + A, чтобы зафиксировать угол на панели сбора.

В версии плагина, если вы нажмете Ctrl + A даже с углом, который не равен 90 градусам, вы обнаружите, что можете навести курсор мыши на панель и набрать 90 вручную, не влияя на процесс оцифровки, получив 90 в коробка и блокировка, это то, что делает остальную часть процесса простой.

Продолжайте добавлять точки в углах вашего здания, не забывая нажимать ctrl + a после каждой добавляемой точки, это будет гарантировать, что ваша следующая точка всегда будет нарисована под углом 90 градусов к предыдущей.

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

Как только вы дойдете до последней точки, выровняйте ее вручную (к сожалению, инструмент здесь не поможет ..) щелкните, чтобы добавить последнюю точку, затем щелкните правой кнопкой мыши, чтобы закрыть многоугольник как обычно.

В инструментах также есть намного больше функциональности, но здесь нет места, чтобы документировать все это.

Мой последний вид 100 футов однако:

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

Не было бы возможно без этого.

Shawty
источник
+1 Я собираюсь оставить это на потом. Будучи очень привыкшим к ярлыкам ArcMap, которые будут выполнять эти задачи, но желая работать более независимо от ESRI, это будет очень полезно в будущем. Спасибо!
mr.adam
Надеюсь, вы найдете его таким же полезным, как и я :-) Если у меня будет время, я напишу мини-статью об использовании других инструментов, как только освою их.
Shawty
«выстроить его вручную (к сожалению, инструмент здесь не поможет ...)» Вот тут-то и бросается в глаза расширенная оцифровка в QGIS. Было бы неплохо нарисовать простой прямоугольник без создания линий построения.
Дэмиен
??? Вы можете :-) Просто отключить строительные линии на панели, используемой для управления расширенной оцифровкой. Клавиша «C», я считаю, позволяет вам делать это с клавиатуры. Тем не менее, для таких вещей, как простые прямоугольники и круги, я использую дополнительный плагин под названием «Оцифровка овалов прямоугольников», который позволяет мне делать прямоугольники, которые перпендикулярны, используя 3 точки, и круги из центров очень легко. Также, если вы разбираетесь в таких системах САПР, как autodesk (я часто использую Map3D), вы также можете взглянуть на «CADDigitize» и «Инструменты оцифровки».
Shawty
2

Вы можете достичь своих результатов с помощью комбинации инструментов и плагинов. Это не идеально, но это будет работать

  • Используйте плагин «Оцифровка прямоугольников овалов» для создания прямоугольников.
  • Используйте инструменты «Advanced Digitizing» для поворота прямоугольников. См. Шаг 29 и далее в этом руководстве для точного рабочего процесса.
  • Используйте инструмент «Ортогональная оцифровка» из плагина CAD Tools, чтобы нарисовать многоугольники, которые вам, возможно, придется вырезать из прямоугольников.
  • Используйте инструмент «Разделить объекты» расширенной оцифровки, чтобы разделить прямоугольник и удалить ненужную часть.

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

spatialthoughts
источник
Ладно, вот что я понял :-) Это заняло у меня неделю, но я узнал кое-что, чего не знал о QGis за это время. Я должен сказать, однако, что именно ваш ответ побудил меня задуматься об использовании инструментов по-разному, и тем более изучить инструменты / плагины, которые я установил, но никогда не удосужился попробовать. Теперь у меня есть ответ, который я собираюсь задокументировать сам. Тем не менее, спасибо за то, что дали мне начальный толчок, но в конечном счете, да, это было слишком громоздко.
Shawty
Спасибо за подробное описание вашего решения. Я узнал что-то новое!
spatialthoughts