powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Point(lat, lon) in Polygon from GeoJSON данных?
40 сообщений из 40, показаны все 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
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605431
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevПроще выложить пример GeoJSON'а с регионом. Вряд ли там какие-то сверх секретные данные. - документ 10 мб, но вот я ожидаю что этот пункт будет в этом полигоне.
Должен быть, так как специально смотрел этот район с этим индексом и на карте в этом районе ставил поинт..

Код: javascript
1.
2.
3.
4.
5.
6.
Geometry testPoint = gf.createPoint(new Coordinate(52.516818, 13.383675));

//Это моя geometry
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.3736395,52.5278007],[13.3847635,52.5242291],[13.3863697,52.5270645],[13.397525,52.5275777],[13.3953979,52.5243498],[13.4030555,52.5121676],[13.4036335,52.5081778],[13.3857617,52.5073286],[13.3776503,52.5079658],[13.3765769,52.51620160000001],[13.3710334,52.5253868],[13.3736395,52.5278007]]]},"properties":{"plz":"10117","note":"10117 Berlin Mitte","qkm":3.402597,"einwohner":12217}},

boolean within = testPoint.within(geometry);
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605434
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
unregesteredО! тест на принадлежность есть в джаве аж с версии 1.0!
https://docs.oracle.com/javase/7/docs/api/java/awt/Polygon.html#contains(double, double) - Я не использую awt. Спасибо.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605435
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevЗачем самому что-то считать, когда давно уже есть либы )))

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

LOL. Религия чтоли?
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605449
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered_webdev_пропущено...
- Я не использую awt. Спасибо.

LOL. Религия чтоли?

А что общего между AWT и обработкой Гео-Данных?
Кроме того, что то и то в компьютере и, иногда, отображаются на экран )))
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605456
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_....
Код: javascript
1.
2.
3.
4.
5.
6.
Geometry testPoint = gf.createPoint(new Coordinate(52.516818, 13.383675));

//Это моя geometry
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.3736395,52.5278007],[13.3847635,52.5242291],[13.3863697,52.5270645],[13.397525,52.5275777],[13.3953979,52.5243498],[13.4030555,52.5121676],[13.4036335,52.5081778],[13.3857617,52.5073286],[13.3776503,52.5079658],[13.3765769,52.51620160000001],[13.3710334,52.5253868],[13.3736395,52.5278007]]]},"properties":{"plz":"10117","note":"10117 Berlin Mitte","qkm":3.402597,"einwohner":12217}},

boolean within = testPoint.within(geometry);


Как минимум невооруженным взглядом видно, что в точке сначала 52..., потом 13...
а в геоданных координаты идут наоборот, сначала 13..., потом 52...
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605464
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevunregesteredпропущено...


LOL. Религия чтоли?

А что общего между AWT и обработкой Гео-Данных?
Кроме того, что то и то в компьютере и, иногда, отображаются на экран )))

Вы думаете awt это только UI? нефига. Просто сгруппированно в этот пакет может не очень удачно.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605468
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev_webdev_....
Код: javascript
1.
2.
3.
4.
5.
6.
Geometry testPoint = gf.createPoint(new Coordinate(52.516818, 13.383675));

//Это моя geometry
{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[13.3736395,52.5278007],[13.3847635,52.5242291],[13.3863697,52.5270645],[13.397525,52.5275777],[13.3953979,52.5243498],[13.4030555,52.5121676],[13.4036335,52.5081778],[13.3857617,52.5073286],[13.3776503,52.5079658],[13.3765769,52.51620160000001],[13.3710334,52.5253868],[13.3736395,52.5278007]]]},"properties":{"plz":"10117","note":"10117 Berlin Mitte","qkm":3.402597,"einwohner":12217}},

boolean within = testPoint.within(geometry);



Как минимум невооруженным взглядом видно, что в точке сначала 52..., потом 13...
а в геоданных координаты идут наоборот, сначала 13..., потом 52...
- аааа, СПАСИБО ОГРОМНОЕ! Я этого не замечал!!!
Всё работает, всё находит как надо.
Вопрос решён!
Желаю Вам и всем откликнувшимся - хорошего дня!
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605476
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unregestered....Вы думаете awt это только UI? нефига. Просто сгруппированно в этот пакет может не очень удачно.
Можно ссылку на доку с классами для работы с WSG-84 и Google Spherical Mercator ?

А то я то в свое время мучился, не знал, что все уже есть в стандарте Java (((

p.s. Я так подозреваю, что у автора топика координаты заданы в "классическом" WSG-84.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605478
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsevp.s. Я так подозреваю, что у автора топика координаты заданы в "классическом" WSG-84. - да, так и есть. Есть ещё возможность скачать данные в формате 3857 - webmercator - нужно почитать сейчас в чём разница
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605479
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.p.s. Наверное Google maps делали на Java, на AWT.... У всех Spherical Mercator нормальный, а у гугля он вдвойне сферический получился )))) и по названию и по реализации )))
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605503
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_...3857 - webmercator - нужно почитать сейчас в чём разница
Это google и есть.

Как в школе круглый глобус видели, так и запрограммировали ))) Хорошо хоть, земля у них не плоская и не на китах )))

https://gis-lab.info/forum/viewtopic.php?f=34&t=22965

С проблемой описанной в данном топике сам сталкивался ((( карта хранилась в WSG 84, а клики мышкой по экрану в Spherical Mercator - в результате ничего никуда не попадало ((( Пришлось в БД хранить сразу две координаты: реальную wsg-84 для обработки (экспорта/импорта) и перевод в Google Spherical Mercator для работы в интерфейсе (отображение, обработка кликов мышки).
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605506
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevМожно ссылку на доку с классами для работы с WSG-84 и Google Spherical Mercator ?

В смысле трансформация из геоида в шар и обратно? Там формула на пару строчек.
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605508
unregestered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev_webdev_...3857 - webmercator - нужно почитать сейчас в чём разница
Это google и есть.

Как в школе круглый глобус видели, так и запрограммировали ))) Хорошо хоть, земля у них не плоская и не на китах )))

https://gis-lab.info/forum/viewtopic.php?f=34&t=22965

С проблемой описанной в данном топике сам сталкивался ((( карта хранилась в WSG 84, а клики мышкой по экрану в Spherical Mercator - в результате ничего никуда не попадало ((( Пришлось в БД хранить сразу две координаты: реальную wsg-84 для обработки (экспорта/импорта) и перевод в Google Spherical Mercator для работы в интерфейсе (отображение, обработка кликов мышки).

Из известных мне картографических сервисов только яндекс считает на геоиде.
Но самый большой геморой вы обретёте с Китайскими координатами :D
...
Рейтинг: 0 / 0
Point(lat, lon) in Polygon from GeoJSON данных?
    #39605513
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафига изобретать велосипед?

И так достаточно велосипедов, типа сверх-секретной Пулкова-42 ((( да еще когда в MapInfo карту размером в Ленобласть введена в режиме "план-схема, метры". Тут какой формулой не считай... в любом случае фигня получается ((( так хоть можно сказать: использовали стандартное преобразование, фигня в данных. IMHO
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Point(lat, lon) in Polygon from GeoJSON данных?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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