У меня есть два векторных шейп-файла: один файл представляет собой точки, представляющие люки, а другой - файл ломаной линии, представляющий трубы, ведущие к и из люков. Мне нужно привязать линии на указанном расстоянии до ближайшего колодца.
Есть ли простой способ сделать это, не делая это вручную?
Обновить
Согласно Александру, я экспортировал свои шейп-файлы в пространственный формат. Не уверен, что дальше.
Обновление № 2 Я создал новый файл БД и импортировал шейп-файлы в новый БД, используя пространственный-GUI, я скорректировал свой запрос SQL, но, как вы можете видеть, я получаю сообщение об ошибке «нет такого столбца: f.geom»
Ответы:
Если вы хотите поместить свои данные в Postgis (или Spatialite ), вы можете использовать ST_Snap, чтобы делать то, что вы хотите.
Просто используйте линии layer \ table в качестве входных данных, а слой точек в качестве эталона и установите допуск. Что-то вроде этого:
Результат таков:
Затем вы можете обновить свою геометрию, используя идентификатор объекта.
источник
Я не знаю много о QGIS или GRASS, но некоторые быстрые поиски в Google привели к v.clean в GRASS.
Посмотрите на этот пост и этот .
Альтернативы QGIS и GRASS:
Если бы я делал это в ArcGIS, я бы, вероятно, сохранил бы свои данные в наборе классов объектов в файловой базе геоданных и создал бы топологию, чтобы определить области, где точечный слой не находится на конечных точках линий. Затем вы можете исправить ошибки с помощью Инспектора ошибок .
Но, вероятно, самое быстрое и простое решение будет в FME. Вы можете попробовать использовать Snapper Tool или, еще лучше, AnchoredSnapper Tool . Если вы используете AnchoredSnapper, убедитесь, что ваш тип привязки - привязка к конечной точке. Конечно, вам понадобится лицензия для FME. Но вы можете скачать 14-дневную пробную версию, если у вас ее нет.
источник
В QGIS Snap Geometries для слоя будет делать то, что вы хотите. Посмотри эту тему Как привязать линии к ближайшей точке?
источник
Ручной способ
Qgis -> Настройки -> Параметры привязки (и я не уверен, но для этого может потребоваться расширение CadTools) и включить топологическое редактирование.
Автоматический способ
v.clean, который находится в инструментах GRASS в наборе инструментов SEXTANTE в QGIS. Если у вас есть PostGIS 2.0, тогда ST_Snap и ST_SnapToGrid () (и нет никаких причин, почему вы не можете его использовать, это очень хороший пространственный инструмент)
Коммерческий путь
Инструмент FME и MRF (коммерческое расширение, у меня была оценочная версия. Это было очень хорошо).
Также меня интересует управление водопроводом / канализацией с помощью инструментов с открытым исходным кодом. Есть ли у вас какие-либо советы?
источник