Расстояние от точки до полигона
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 24 июн 2011, 10:06
- Репутация: 2
Расстояние от точки до полигона
Всем доброго времени суток!
Появился еще один вопрос: есть полигональный контур земли, есть точечная тема расположенная в море.
Можно каким-либо образом узнать расстояние от точки до ближайшего берега? Единицы измерения могут быть условные.
Появился еще один вопрос: есть полигональный контур земли, есть точечная тема расположенная в море.
Можно каким-либо образом узнать расстояние от точки до ближайшего берега? Единицы измерения могут быть условные.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Статистические вычисления в QGIS
можно. Это дистанционное преобразование, есть в любой растровой ГИС (называться может по разному). Берег сносится на растр, делается дистанционное преобразование, и в точках с растра снимается ответlosdimas писал(а):Появился еще один вопрос: есть полигональный контур земли, есть точечная тема расположенная в море.
Можно каким-либо образом узнать расстояние от точки до ближайшего берега? Единицы измерения могут быть условные.
-
- Интересующийся
- Сообщения: 24
- Зарегистрирован: 24 июн 2011, 10:06
- Репутация: 2
Re: Статистические вычисления в QGIS
gamm, спасибо!
Если кому пригодится, то в ArcGIS это: Инструменты -> Анализ -> Близость -> Ближайший объект. Здесь конвертировать в растр не надо.
Если кому пригодится, то в ArcGIS это: Инструменты -> Анализ -> Близость -> Ближайший объект. Здесь конвертировать в растр не надо.
-
- Активный участник
- Сообщения: 142
- Зарегистрирован: 16 окт 2009, 22:08
- Репутация: 55
- Откуда: Харьков
Re: Статистические вычисления в QGIS
решение как сделать используя PostgreSQL/PostGIS:losdimas писал(а):Всем доброго времени суток!
Появился еще один вопрос: есть полигональный контур земли, есть точечная тема расположенная в море.
Можно каким-либо образом узнать расстояние от точки до ближайшего берега? Единицы измерения могут быть условные.
Код: Выделить всё
---------------------------------------------------------------
DROP TABLE IF EXISTS linefrompoly;
CREATE TABLE linefrompoly AS
SELECT id, ST_MakeLine(sp,ep) AS the_geom
FROM
-- extract the endpoints for every 2-point line segment for each linestring
(SELECT
id,
ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
ST_PointN(geom, generate_series(2, ST_NPoints(geom) )) as ep
FROM
-- extract the individual linestrings
(SELECT id, (ST_Dump(ST_Boundary(the_geom))).geom
FROM polygon -- existing polygonal layer
) AS linestrings
) AS segments;
---------------------------------------------------------------
DROP TABLE IF EXISTS pointonline;
CREATE TABLE pointonline AS
SELECT b.id AS ponlid, ST_Closestpoint(ST_Collect(a.the_geom), b.the_geom) as the_geom
FROM linefrompoly a INNER JOIN point b
ON ST_Dwithin(a.the_geom, b.the_geom, 100) -- distance for collect points
GROUP BY b.gid, b.the_geom;
---------------------------------------------------------------
DROP TABLE IF EXISTS distance;
CREATE TABLE distance AS
SELECT
b.the_geom,
b.id,
ST_Distance_Sphere(a.the_geom, b.the_geom) AS dist
FROM pointonline a , point b
WHERE a.ponlid = b.id
---------------------------------------------------------------
создается точечный слой (distance) с исходным номером точки и минимальным расстоянием до линейного слоя (полигонального).
Использовалась статья http://www.jordogskog.no/blog/postgis/h ... gis-part1/
Последний раз редактировалось HasT 16 дек 2014, 13:48, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Статистические вычисления в QGIS
это делается в векторе (как и приведенный вариант в базе), время квадратичное, при очень большом числе точек и линий будет работать очень долго (но точно; и время зависит от наличия и качества пространственного индекса и т.д.). В растровом варианте время зависит только от требуемой точности, к тому же сетка с расстоянием сохраняется и может быть использована для разных нужд.losdimas писал(а):Если кому пригодится, то в ArcGIS это: Инструменты -> Анализ -> Близость -> Ближайший объект. Здесь конвертировать в растр не надо.
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 03 окт 2008, 14:16
- Репутация: 4
Re: Расстояние от точки до полигона
Коллеги, а подскажите как в ArcGIS, для каждой точки растра посчитать расстояние до векторного объекта?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя