Здравствуйте!
Имеется слой с маршрутами (линии) и слой точек находок (след пересекает маршрут). Точность плюс-минус ошибка GPS, поэтому точки могут лежать чуть-чуть не на маршруте. Надо получить число пересечений на километр каждого маршрута. Сейчас просто визуально считаю точки и через инструмент "определить объекты" смотрю длину маршрута. А хотелось бы автоматизировать процесс. Например, поле в таблице маршрутов со значением "найти все точки в слое точек, которые лежат не дальше 5 м от этого маршрута, поделить их число на длину маршрута". Если, конечно, такое возможно. Если да, то нужна ссылка на учебник SQL-диалекта, используемого в QGIS, с примерами. Или пример запроса, если нетрудно. Да, оба слоя - таблицы в одной БД (файл gpkg).
Пересечение точек и линий (QGIS)
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 19 авг 2017, 10:38
- Репутация: 9
- Откуда: Москва
-
- Участник
- Сообщения: 86
- Зарегистрирован: 31 янв 2012, 10:51
- Репутация: 51
Re: Пересечение точек и линий (QGIS)
Диалект - SQLite.
Создайте виртуальный слой, добавьте слои и обзовите их pnt и lin
запрос
создаст таблицу с идентификатором линейного объекта, количеством пересечений, и искомым значением расстояния для каждой линии. Пороговое расстояние от точки до линии - размер буфера в запросе.
Создайте виртуальный слой, добавьте слои и обзовите их pnt и lin
запрос
Код: Выделить всё
select lin.fid,count(pnt.fid) , st_length(lin.geometry)/count(pnt.fid) from lin, pnt where st_intersects(lin.geometry, st_buffer(pnt.geometry, 5)) group by lin.fid, lin.geometry;
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 19 авг 2017, 10:38
- Репутация: 9
- Откуда: Москва
Re: Пересечение точек и линий (QGIS)
Спасибо! Долго бился, пытаясь понять, почему только 1 строка в итоговой таблице, но понял, что это глюк именно просмотрщика таблицы атрибутов - он ставит некий необнаружимый фильтр (на минимальном примере с 2 линиями и 10 точками "Features Total:2, Filtered:1, Selected:0 "). Если просматривать таблицу через менеджер БД - всё ОК. Осталось сообразить, как эту табличку в отчёт вкрячить. Подозреваю, что придётся изучать R-пакеты, связанные с ГИС, я давно уже все отчёты и черновики статей в rmarkdown делаю.
Кстати, русского учебника по SQLite+spatialite (или английского с кучей примеров) так и не нашёл, если знаете, дайте ссылку, пожалуйста.
Кстати, русского учебника по SQLite+spatialite (или английского с кучей примеров) так и не нашёл, если знаете, дайте ссылку, пожалуйста.
-
- Участник
- Сообщения: 86
- Зарегистрирован: 31 янв 2012, 10:51
- Репутация: 51
Re: Пересечение точек и линий (QGIS)
Про учебники ничего сказать не могу, документация по spaialite с примерами https://www.gaia-gis.it/gaia-sins/spati ... opics.html. Хорошо описаны функции геообработки в документации postgis http://postgis.net/docs/manual-2.5/reference.html
Кто сейчас на конференции
Сейчас этот форум просматривают: Kyliepably и 33 гостя