Po pierwsze, jestem nowy w GIS, więc przebacz wszelkie błędy. Muszę odkryć odległość między punktem szerokości i długości geograficznej a wielokątem szerokości/długości geograficznej (zwykłym lub nie). Dokładniej, muszę odkryć minimalną odległość od danego punktu do punktu na granicy wielokąta, jak pokazano poniżej. W tym przykładzie odległość od punktu p
do wielokąta wynosi d
. Uwaga: nie potrzebuję punktu, tylko minimalna odległość.Jak obliczyć odległość w metrach między punktem geograficznym a danym poligonem?
Po pewnym czytania, mam wymyślić następującym minimalnym przykład pracy z wykorzystaniem GeoTools API. Jednak myślę, że wpadam w efekt. Czy ktokolwiek może mnie oświecić, jak uzyskać minimalną odległość między punktem a poligonem w mteres?
MWE.java:
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
public class MWE {
public static void main(String[] args) throws Exception {
GeometryFactory gf = JTSFactoryFinder.getGeometryFactory();
Coordinate[] c = new Coordinate[5];
c[0] = new Coordinate(-49.242986, -16.662430);
c[1] = new Coordinate(-49.241999, -16.664465);
c[2] = new Coordinate(-49.239146, -16.663828);
c[3] = new Coordinate(-49.239832, -16.661443);
c[4] = new Coordinate(-49.242986, -16.662430);
Geometry geo = gf.createPolygon(c);
Point p = gf.createPoint(new Coordinate(-49.246870, -16.665493));
double distance = geo.distance(p);
System.out.println("Distance: " + distance);
}
}
Czy używasz zwykłego wielokąta? – 11thdimension
Powinieneś wyjaśnić, co masz na myśli, mówiąc o odległości między punktem i wielokąta. Masz na myśli centroid wieloboczny lub najbliższy punkt na granicy? – aengus
Dowolny wielokąt. Jest to jeden z punktów wielokątów. Próbowałem wyjaśnić w pytaniu. –