You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

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

sim
Member
Registered: 2008-04-19
Posts: 632
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: Tallinn
Registered: 2010-10-14
Posts: 5,699
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,950

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: 632
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: 632
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,672

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: 632
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: 632
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,672

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

sim wrote:

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

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

Offline

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

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

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

Offline

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

trolleway
Member
Registered: 2011-02-09
Posts: 564
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: 632
Website

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

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

Offline

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

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

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

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

Offline

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

trolleway
Member
Registered: 2011-02-09
Posts: 564
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: 564
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,026
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