Поддержка 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’ом, ЧЯДНТ?

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

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

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

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

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

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

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

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

ю-ху

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

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

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

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

https://github.com/Larry0ua/josm-geojson

Не компилируется на 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


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

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

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

А нашел

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

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

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

Нашел в чем проблема. В общем 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-а, которые не открываются, покажи, пожалуйста. Полугигабайтных только не надо :slight_smile:

Linked CRS не поддерживается ?


"crs": {
    "type": "link", 
    "properties": {
      "href": "http://example.com/crs/42",
      "type": "proj4"
      }
    }

Впрочем даже для Named CRS не все так просто:


OGC CRS URNs such as "urn:ogc:def:crs:OGC:1.3:CRS84" shall be preferred 
over legacy identifiers such as "EPSG:4326":

Нет, linked не поддерживается.

А с name и URN и старый формат обрабатываются нормально, спасибо geotools плагину.