OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2015-11-02 21:21:06

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Поддержка GeoJSON в JOSM

Почему-то не могу найти себе места из-за того что JOSM не читает GeoJSON. Давайте NextGIS проспонсирует, а кто-нибудь напишет плагин для этого? Отличная задача для студента. Мы поддержим не только финансово, но и морально-методически.

Попытался заангажировать трех участников форума известных своими плагинами, но они либо заняты, либо меня игнорируют. Видимо кризис настолько силен, что уже и не до денег, живым бы остаться)

Функциональность:

- чтение данных
- поддержка на входе EPSG:4326, 3857

Полезные ссылки:

- Кто-то начинал писать такой плагин (но он не работает): https://github.com/iandees/josm-geojson. Обновленный форк этого плагина можно найти тут.
- Умные люди рекомендуют использовать какой-нибудь событийный парсер JSON, например, Jackson: https://github.com/FasterXML/jackson, вот тут есть реализация GeoJSON POJO для Jackson
- Спецификация GeoJSON, там же, работа с системами координат.


UPD: Плагин исправлен, улучшен и успешно работает. Качаем тут: http://nextgis.ru/programs/josm-geojson.jar

Last edited by sim (2015-11-23 22:17:01)

Offline

#2 2015-11-02 21:29:56

Zverik
Moderator
From: Москва
Registered: 2010-10-14
Posts: 5,644
Website

Re: Поддержка GeoJSON в JOSM

Парсер JSON уже есть в ядре JOSM, потенциальный автор плагина пусть его использует.


ШТОСМ | josm.ru | обо мне | где господствует любовь, там отсутствует воля к власти

Offline

#3 2015-11-06 16:35:26

az09
Member
From: Магнитогорск
Registered: 2011-02-03
Posts: 221
Website

Re: Поддержка GeoJSON в JOSM

Этот гитхаб вообще-то пару раз форкнут.
например> Latest commit c07eb09 29 days ago

Offline

#4 2015-11-06 16:47:35

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,949

Re: Поддержка GeoJSON в JOSM

Zverik wrote:

Парсер JSON уже есть в ядре JOSM, потенциальный автор плагина пусть его использует.

Там небось «DOM»-парсер, который умрет от 100-мегабайтного JSON'а. :3

Last edited by Hind (2015-11-06 16:47:53)

Offline

#5 2015-11-06 17:15:13

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Поддержка GeoJSON в JOSM

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

Offline

#6 2015-11-06 18:12:19

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Re: Поддержка GeoJSON в JOSM

az09 wrote:

Этот гитхаб вообще-то пару раз форкнут.
например> Latest commit c07eb09 29 days ago

О, вот это ценный комментарий который может поменять дело.

Offline

#7 2015-11-08 20:08:03

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Поддержка GeoJSON в JOSM

sim wrote:
az09 wrote:

Этот гитхаб вообще-то пару раз форкнут.
например> Latest commit c07eb09 29 days ago

О, вот это ценный комментарий который может поменять дело.

Да, похоже, что этот плагин, если собрать, работает (хотя и странно немного, как по мне - создает по два слоя на файл, например). Не было возможности проверить с другими проекциями, но по опыту PicLayer надо попробовать выставлять проекцию в настройках JOSM перед открытием файла.

В общем если будет список идей, как эту штуку улучшить, это можно организовать.

Offline

#8 2015-11-08 22:16:09

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Re: Поддержка GeoJSON в JOSM

круто

попробовал собрать через gradle из этого форка, но у меня

sim@sim-think:~/josm-geojson$ gradle clean build

FAILURE: Build failed with an exception.

* Where:
Build file '/home/sim/josm-geojson/build.gradle' line: 64

* What went wrong:
Could not compile build file '/home/sim/josm-geojson/build.gradle'.
> startup failed:
  build file '/home/sim/josm-geojson/build.gradle': 64: unable to resolve class de.undercouch.gradle.tasks.download.Download
   @ line 64, column 1.
     import de.undercouch.gradle.tasks.download.Download
     ^
  
  1 error

никогда не собирал ничего gradle'ом, ЧЯДНТ?

Offline

#9 2015-11-08 23:17:24

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Поддержка GeoJSON в JOSM

А у вас сам https://plugins.gradle.org/plugin/de.un … h.download прикручен?


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#10 2015-11-09 00:22:43

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Поддержка GeoJSON в JOSM

Larry0ua wrote:

Не было возможности проверить с другими проекциями, но по опыту PicLayer надо попробовать выставлять проекцию в настройках JOSM перед открытием файла.

Это ад какой-то, проще через ogr2ogr тогда...


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#11 2015-11-09 00:46:17

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,473

Re: Поддержка GeoJSON в JOSM

BushmanK wrote:
Larry0ua wrote:

Не было возможности проверить с другими проекциями, но по опыту PicLayer надо попробовать выставлять проекцию в настройках JOSM перед открытием файла.

Это ад какой-то, проще через ogr2ogr тогда...

josm же знает сам почти все проекции
(кроме oblique mercator, которая была бы
в принципе полезна для WMS во всяких МСК дер. Гадюкино)

Offline

#12 2015-11-09 01:23:32

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Поддержка GeoJSON в JOSM

usm78-gis wrote:
BushmanK wrote:
Larry0ua wrote:

Не было возможности проверить с другими проекциями, но по опыту PicLayer надо попробовать выставлять проекцию в настройках JOSM перед открытием файла.

Это ад какой-то, проще через ogr2ogr тогда...

josm же знает сам почти все проекции
(кроме oblique mercator, которая была бы
в принципе полезна для WMS во всяких МСК дер. Гадюкино)

Да, только там вечно нужно что-то переключать и настраивать вручную, чтобы это все подцепилось правильно.


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#13 2015-11-09 02:04:29

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Re: Поддержка GeoJSON в JOSM

в годном geojson-е должны быть конструкции вида:

"crs": {
    "type": "name",
    "properties": {
      "name":"urn:ogc:def:crs:EPSG::3857"
      }
    }

Если они есть, то нужно просто взять оттуда EPSG код и сделать EPSG XXX -> EPSG:4326.

Если инфы о СК нет, нужно по хорошему спрашивать в какой СК данные, но релизацию этого это можно отложить, а пока просто отказываться грузить данные.

Last edited by sim (2015-11-09 02:04:59)

Offline

#14 2015-11-12 23:26:36

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Re: Поддержка GeoJSON в JOSM

ю-ху

Благодаря Larry0ua при моей скромной поддержке мы таки довели плагин до работоспособного состояния и сделали ряд важных улучшений (например поддержку проекций).

Качать здесь: http://nextgis.ru/programs/josm-geojson.jar (build 31244)

Установка простая, положить в ~/.josm-latest/plugins/, после запуска джосм предложет подтянуть ке-какие зависимости.

Offline

#15 2015-11-13 00:42:51

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,473

Re: Поддержка GeoJSON в JOSM

sim wrote:

Благодаря Larry0ua при моей скромной поддержке мы таки довели плагин до работоспособного состояния и сделали ряд важных улучшений (например поддержку проекций).

Оччень интересно smile
Исходники покажите, а то .jar это как-то не кошерно.

Offline

#16 2015-11-13 06:56:25

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Re: Поддержка GeoJSON в JOSM

Offline

#17 2015-11-13 09:56:34

trolleway
Member
Registered: 2011-02-09
Posts: 549
Website

Re: Поддержка GeoJSON в JOSM

Не компилируется на Ubuntu.

trolleway@nextgis2:~/josm-geojson$ gradle clean build

FAILURE: Build failed with an exception.

* Where:
Build file '/home/trolleway/josm-geojson/build.gradle' line: 74

* What went wrong:
Could not compile build file '/home/trolleway/josm-geojson/build.gradle'.
> startup failed:
  build file '/home/trolleway/josm-geojson/build.gradle': 74: unable to resolve class de.undercouch.gradle.tasks.download.Download
   @ line 74, column 1.
     import de.undercouch.gradle.tasks.download.Download
     ^
  
  1 error

Last edited by trolleway (2015-11-13 09:57:02)

Offline

#18 2015-11-13 10:54:26

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Поддержка GeoJSON в JOSM

Гугл подсказывает, что этот плагин не работает со старыми версиями gradle, предлагаю обновить его до 2.1+ или поменять билд-файл как тут https://plugins.gradle.org/plugin/de.un … h.download

Last edited by Larry0ua (2015-11-13 10:55:53)

Offline

#19 2015-11-13 12:48:52

sim
Member
Registered: 2008-04-19
Posts: 629
Website

Re: Поддержка GeoJSON в JOSM

trolleway, чего jar-то просто не заберешь и папку не положишь?

Offline

#20 2015-11-13 12:57:16

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 7,760

Re: Поддержка GeoJSON в JOSM

А вдруг там вирусы и завтра его кошелёк опустеет smile

Offline

#21 2015-11-13 22:39:45

trolleway
Member
Registered: 2011-02-09
Posts: 549
Website

Re: Поддержка GeoJSON в JOSM

sim wrote:

trolleway, чего jar-то просто не заберешь и папку не положишь?

А нашел

Last edited by trolleway (2015-11-13 22:41:30)

Offline

#22 2015-11-23 10:25:12

trolleway
Member
Registered: 2011-02-09
Posts: 549
Website

Re: Поддержка GeoJSON в JOSM

У меня этот плагин не открывает ни один файл, даже те, что были сохранены в самом JOSM.

Offline

#23 2015-11-23 11:06:08

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Поддержка GeoJSON в JOSM

trolleway wrote:

У меня этот плагин не открывает ни один файл, даже те, что были сохранены в самом JOSM.

Ну примеры файлов не помешали бы.

Offline

#24 2015-11-23 11:23:44

Max Vasilev
Member
Registered: 2009-06-16
Posts: 1,025
Website

Re: Поддержка GeoJSON в JOSM

То, что сохраняет сам JOSM в geojson этот же плагин и не открывает вообще. Вроде бы было заявлено только возможность чтения. А вот файлы с NextGIS Mobile у меня этот плагин в JOSM открывает (при наличии плагина opendata).

Offline

#25 2015-11-23 20:43:57

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Поддержка GeoJSON в JOSM

Нашел в чем проблема. В общем josm в geojson форматирует объект с информацией про СК (crs) не по стандарту geojson.
По стандарту:

crs: { 
    type:"name", 
    properties: {
        name:"тут название СК"
    }
}

Josm выдает там:

crs: {
    type:"name",
    name:"название СК",
}

Так что можно заводить тикет JOSM-у. (отписался с патчем в существующий https://josm.openstreetmap.de/ticket/10770, там добавляли этот crs)

У объекта crs по спецификации должны быть поля type и properties. С другой стороны, над кодом библиотеки, которая читает geojson тоже поработать надо - в той же спецификации нет ограничений на дополнительные поля, а в библиотеке на любом неподходящем поле сразу ошибка.

trolleway, если есть файлы, не из josm-а, которые не открываются, покажи, пожалуйста. Полугигабайтных только не надо smile

Last edited by Larry0ua (2015-11-23 21:06:45)

Offline

Board footer

Powered by FluxBB