Кратчайшее расстояние от точки до контура полигона

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Кратчайшее расстояние от точки до контура полигона

Сообщение nickleb » 02 июл 2015, 18:24

Как найти кратчайшее расстояние от точки до контура замкнутого полигона?
Точка находится вне контура полигона.

Sergey Astakhov
Активный участник
Сообщения: 218
Зарегистрирован: 21 дек 2012, 01:57
Репутация: 52
Откуда: Питер

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение Sergey Astakhov » 03 июл 2015, 01:46

nickleb писал(а):Как найти кратчайшее расстояние от точки до контура замкнутого полигона?
Точка находится вне контура полигона.

Код: Выделить всё

import com.vividsolutions.jts.operation.distance.DistanceOp;
...
double distance = DistanceOp.distance(polygon, point);

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение nickleb » 03 июл 2015, 07:46

Код: Выделить всё

import com.vividsolutions.jts.operation.distance.DistanceOp;
...
double distance = DistanceOp.distance(polygon, point);
Спасибо, Sergey. Это geolatte? Это я просто по-Googl'ил.... Если я правильно предполагаю... А как это попробовать использовать под Wind'ами?

Аватара пользователя
Филиппов Владислав
Гуру
Сообщения: 1035
Зарегистрирован: 17 фев 2006, 06:28
Репутация: 144
Ваше звание: Геннадич
Откуда: Новосибирск
Контактная информация:

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение Филиппов Владислав » 03 июл 2015, 09:41

это JTS, Java-библиотека, которая есть ещё в библиотеке GeoTools

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение gamm » 03 июл 2015, 09:50


Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение Ariki » 03 июл 2015, 10:54

Python + Shapely

Код: Выделить всё

>>> from shapely.geometry import Point, Polygon
>>> polygon = Polygon([(30, 10), (30, 30), (10, 30)]) # Implicitly closed
>>> point = Point(10, 20)
>>> point.distance(polygon)
7.0710678118654755

Sergey Astakhov
Активный участник
Сообщения: 218
Зарегистрирован: 21 дек 2012, 01:57
Репутация: 52
Откуда: Питер

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение Sergey Astakhov » 03 июл 2015, 12:58

nickleb писал(а):Спасибо, Sergey. Это geolatte? Это я просто по-Googl'ил.... Если я правильно предполагаю... А как это попробовать использовать под Wind'ами?
Как правильно подсказывают, это JTS.
nickleb писал(а):А как это попробовать использовать под Wind'ами?
Вставить в код программы в нужном месте.
Может вы для начала расскажите саму задачу? А то библиотек много всяких разных, под кучу языков.

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Кратчайшее расстояние от точки до контура полигона

Сообщение nickleb » 03 июл 2015, 14:27

Sergey Astakhov писал(а):
nickleb писал(а):Спасибо, Sergey. Это geolatte? Это я просто по-Googl'ил.... Если я правильно предполагаю... А как это попробовать использовать под Wind'ами?
Как правильно подсказывают, это JTS.

[quote=
Вставить в код программы в нужном месте.
Может вы для начала расскажите саму задачу? А то библиотек много всяких разных, под кучу языков.
Да, Sergey, уже понял по Вашим комментариям и ссылкам дорогих и уважаемых gis-lab-овцев, что ничего - справиться можно. А задача конкретная такая: льдина дрейфует в океане и несёт на себе массово-балансовый буй и его ежечасные обсервации доступны по http. Требуется по этим обсервациям:
1) вычислять расстояние до эксклюзивной экономической зоны Датского королевства окрест о.-ва Гренландия (где взять shp знаю );
2) вычислять расстояние до положения ближайших судов (тоже знаю, где взять таблички с крайними обсервациями)...
Такой R-скриптик по визуализации в GoogleEarth дрейфа буя я начал писать:

Код: Выделить всё

library(plotKML)
library(sp)

temp <- tempfile()
download.file("http://imb.erdc.dren.mil/irid_data/2015D_clean.csv",temp)
buoy <- read.csv(temp,header=T,sep=",")
unlink(temp)
#Какие колонки в файле?
names(buoy)
coordinates(buoy) <- ~Longitude..degrees.+Latitude..degrees.
proj4string(buoy) <- CRS("+proj=longlat +datum=WGS84")
plotKML(buoy, var.name="Date") 

Надо ещё положение границ водрузить на эту view-ху, положение судов, табличку с расстояниями в легенде...

Ответить

Вернуться в «Общий - ПО»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 26 гостей