Географические координаты многоугольника над Германией (или любым другим регионом)

Я использую Java. Я хочу проверить, находится ли какое-то место в Германии (это приложение для компании, и ее грузовики не могут пересекать границы).

Теперь я знаю, что это можно только приблизить, но это нормально, поскольку я в основном хочу проверять опечатки по долготе и широте (например, 25.123 вместо 52.123).

До сих пор я сталкивался с проблемой многоугольников, которая, кажется, соответствует моим потребностям. Есть ли стандарт для геополигонов над регионами? (**). Или я должен сделать это сам?

(**) Это кажется глупым вопросом. Однако это обеспечило бы прозрачность для моего клиента, и я не был бы виноват, если бы мой полигон был 1 метр к маленькому.

3 ответа

Решение

Вы просите "стандарт для геополигонов по регионам". В Германии есть " https://de.wikipedia.org/wiki/Digitales_Landschaftsmodell" (DLM) и " Digitales Geländemodell" (DGM).

Существует также общественная служба, где можно загружать различные пространственные данные.

Надеемся, что использование официальных стандартов и данных будет соответствовать требованиям заказчика.

GeometryFactory из com.vividsolutions.jts.geom содержит метод, который проверяет, находятся ли gps coodiantes внутри многоугольника. Если у вас есть полигон площади, возможно, все, что вам нужно, - это восстановить свой полигон с помощью библиотеки и проверить, находятся ли ваши координаты внутри полигона. Это не идеальный пример, но вы можете настроить его по своему вкусу.

private com.vividsolutions.jts.geom.GeometryFactory geometryFactory;

public boolean isCoordinatesInsidePolygon(double lat, double lng, MyPolygon myPolygon) {
            final Polygon area =geometryFactory.createPolygon(myPolygon.getCoordinates());
            final Point point = geometryFactory.createPoint(new Coordinate(lat, lng));
            return area.covers(point);
}

Вы можете легко получить данные с этого сайта, Германия выглядит достаточно точно:

Другие вопросы по тегам