powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Point(lat, lon) in Polygon from GeoJSON данных?
25 сообщений из 40, страница 1 из 2
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605025
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, кто-то имеет опыт с GeoJSON данными?

Подскажите, не могу найти соответствующую функцию или решение.

Есть у меня файл с GeoJSON данными, на вход принимаю latitude, lontitude нужно высчитать в каком полигоне находится данный пункт?

Нужно java решение.
Для NodeJs рабочее решение https://www.npmjs.com/package/geojson-utils#point-in-polygon

Такие же и схожие библиотеки есть и для Java но не могу найти, как сделать такое же.

Спасибо!
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605038
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_,
И постгри бд тоже умеет. И сиквел бд.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605040
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и просто библиотек для обработки гео-данных для Java как грязи
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605047
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Открытие. Честно. Хочется эти данные всегда держать в памяти. Думаю так будет лучше с точки зрения продуктивности.
Хочется отойти от реляционной бд, снова же из-за продуктивности. Думаю что из памяти будет быстрее.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605049
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevДа и просто библиотек для обработки гео-данных для Java как грязи - ткните пож пальцем на нужную мне функцию, я не могу найти...
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Думаю что из памяти будет быстрее.нет. Медленнее, т.к. в базе индекс по геополю.
На порядки медленнее.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605062
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Хочется отойти от реляционной бд,тогда и с форума SQL.ru уходи))))
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605064
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Leonid KudryavtsevДа и просто библиотек для обработки гео-данных для Java как грязи - ткните пож пальцем на нужную мне функцию, я не могу найти...в базе
https://postgis.net/docs/ST_Extent.html и т.д.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605065
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123_webdev_Думаю что из памяти будет быстрее.нет. Медленнее, т.к. в базе индекс по геополю.
На порядки медленнее. - коль вы в теме, то мы используем MariaDb
Если я правильно понимаю, то здесь именно то что мне нужно, или? https://mariadb.com/kb/en/library/geojson-st_asgeojson/

Немного не понимаю, как может быть индекс быстрее обработки данных в памяти?
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605066
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_webdev_Petro123пропущено...
нет. Медленнее, т.к. в базе индекс по геополю.
На порядки медленнее. - коль вы в теме, то мы используем MariaDb
Если я правильно понимаю, то здесь именно то что мне нужно, или? https://mariadb.com/kb/en/library/geojson-st_asgeojson/

Немного не понимаю, как может быть индекс быстрее обработки данных в памяти?
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605067
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищем библиотеку:
https://www.google.ru/webhp?q=GEO Library java

Читаем документацию:
http://docs.geotools.org/stable/userguide/library/jts/relate.html

Профит!

Within
One geometry is completely within another (no touching edges):

return geometryA.within( geometry2 );
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605080
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Немного не понимаю, как может быть индекс быстрее обработки данных в памяти?по индексу из миллиона объектов можно взять сразу 325-ый объект).
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605136
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Есть у меня файл с GeoJSON данными, на вход принимаю latitude, lontitude нужно высчитать в каком полигоне находится данный пункт?

Нужно java решение.
_webdev_- коль вы в теме, то мы используем MariaDb
Ты используешь MariaDB? Так и используй. Загрузи туда свой GeoJSON и переформулируй
вопрос в разрезе именно этой технологии.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605357
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevИщем библиотеку:
https://www.google.ru/webhp?q=GEO Library java

Читаем документацию:
http://docs.geotools.org/stable/userguide/library/jts/relate.html

Профит!

Within
One geometry is completely within another (no touching edges):

return geometryA.within( geometry2 );
- Эхххх, если бы всё было так профит...
Не работает этот способ. Я создаю точку. Точка не находится,хотя при более детальной проверке у меня в geoJSON данный участок как полигон присутствует. Проверяю более детально по индексу.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        GeoJSONReader reader = new GeoJSONReader();
        File file = new ClassPathResource("plz-5stellig.geojson").getFile();
        String geoJsonString = Files.toString(file, Charset.defaultCharset());

        GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
        Coordinate coord = new Coordinate(52.516818, 13.383675);
        Point point = geometryFactory.createPoint(coord);

        FeatureCollection featureCollection = (FeatureCollection) GeoJSONFactory.create(geoJsonString);
        for (Feature feature : featureCollection.getFeatures())
        {
           Geometry geometry = reader.read(feature.getGeometry());
           boolean contains = geometry.contains(point);
        }
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605361
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton_webdev_Есть у меня файл с GeoJSON данными, на вход принимаю latitude, lontitude нужно высчитать в каком полигоне находится данный пункт?

Нужно java решение.
_webdev_- коль вы в теме, то мы используем MariaDb
Ты используешь MariaDB? Так и используй. Загрузи туда свой GeoJSON и переформулируй
вопрос в разрезе именно этой технологии. - да, но для меня лично такие действия с помощью базы данных, немного "over engineering".. Я это просто, к слову, сказал.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605389
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Не работает этот способ.возьми пример из документации.
Может полигон не замкнут или перекрученый....
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605402
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123_webdev_Не работает этот способ.возьми пример из документации.
Может полигон не замкнут или перекрученый....
- эммм, что мне это даст? Наверняка пример из документации рабочий. С теми же дынными, библиотека для nodeJs успешно находит нужный полигон.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605406
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_эммм, что мне это даст?найдёшь почему у тебя сабж не работает).
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605411
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_...Точка не находится,хотя при более детальной проверке у меня в geoJSON данный участок как полигон присутствует...

Не верю ( С )
Если вдруг увидел глюк, не волнуйся, это люк. ( С )

Нужно проверять данные. В данных где-то косяк или в коде. Например "reader.read(...." меня как-то напрягает, я не очень понимаю эти манипуляции (((
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605414
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev_webdev_...Точка не находится,хотя при более детальной проверке у меня в geoJSON данный участок как полигон присутствует...

Не верю ( С )
Если вдруг увидел глюк, не волнуйся, это люк. ( С )

Нужно проверять данные. В данных где-то косяк или в коде. Например "reader.read(...." меня как-то напрягает, я не очень понимаю эти манипуляции ((( - geoJSON в формате FeatureCollection
Я читаю его с помощью https://github.com/bjornharrtell/jts2geojson
Потом конвертирую с помощью reader.read в com.vividsolutions.jts.geom.Geometry
Насколько я понял geotools не поддерживают FeatureCollection.
На выходе у меня 2 com.vividsolutions.jts.geom.Geometry объекта
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605417
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 com.vividsolutions.jts.geom.Geometry объекта
Один из них типа com.vividsolutions.jts.geom.Point
Другой com.vividsolutions.jts.geom.Polygon в котором shell=LinearRing
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605423
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще выложить пример GeoJSON'а с регионом. Вряд ли там какие-то сверх секретные данные.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605424
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что перебором никак? Надо для каждого полигона посчитать сумма углов секторов. Если =360 градусов то точка внутри полигона.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605426
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем самому что-то считать, когда давно уже есть либы )))

А так да... в 1993-1994 году отлаживали свой алгоритм отсечения одного полигона другим полигоном. Но сейчас все же 2018 год, за это время все уже давно написано за нас. Google и Copy Past рулит ))) IMHO
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605429
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О! тест на принадлежность есть в джаве аж с версии 1.0!
https://docs.oracle.com/javase/7/docs/api/java/awt/Polygon.html#contains(double, double)
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Point(lat, lon) in Polygon from GeoJSON данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]