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

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

в годном 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 плагину.

Хмм, geotools умеет работать с WKT http://johnewart.net/posts/2013/geotools_custom_crs ,
но josm внутри использует синтаксис proj4. PITA для user-defined МСК.

https://dl.dropbox.com/u/11265861/josm-geojson-0.0.1-SNAPSHOT.jar - тут версия, которая скипает все непонятные поля, экспортнутые из josm-а должна теперь читать.

usm78-gis, в общем-то можно и linked прикрутить, но будут ли этим пользоваться? Изначально не было в планах поддерживать все возможные вариации формата, даже описанные в спецификации :slight_smile:

На linked свет клином не сошелся, вопрос заключается в том, как поддержать
пользовательские проекции (МСК).
Для PicLayer и например растровых схем территориального планирования
эта проблема решена.
В былые времена был доступен (geo)JSON с сайта ПКК
с кадастровыми границами, и при всех их недостатках,
эти данные привязаны гораздо лучше чем bing.
Сейчас приходится создавать из кадастровых данных geoCSV,
конвертировать его с помощью ogr2ogr в GPX для того чтобы
подгрузить в josm, в то время как geojson позволил бы сохранить
исходные данные “как есть”. СТП я тоже уже давно не перегоняю
в EPSG:3857 с помощью gdalwarp, зачем портить исходные данные, когда
есть более разумные решения ?

В piclayer имеются ввиду растягивание через 3 контрольные точки, или есть что-то другое?