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

Гугл подсказывает, что этот плагин не работает со старыми версиями 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 контрольные точки, или есть что-то другое?

В piclayer есть geotiff, но там никакой работы с проекциями не ведется, насколько я помню.

usm78-gis, а как еще могут задаваться пользовательские проекции? В geojson может быть или именованная проекция, или по ссылке - локальный файл или урл (я пока не понимаю разницы между proj4, ogcwkt, ersiwkt, типы данных в ссылке, но это вроде не проблема). Можешь показать пример того, что должно поддерживаться (можно и на почту)? Примеров из спеки geojson мне, мягко говоря, мало, а своих нет вообще.

Разница между proj4, ogcwkt, esriwkt иллюстрируется вот этим:
http://spatialreference.org/ref/sr-org/7483/proj4/
http://spatialreference.org/ref/sr-org/7483/esriwkt/
http://spatialreference.org/ref/sr-org/7483/prettywkt/ (тут кое-что избыточно, но тем не менее)

Если правильно установить параметры проекции в josm, а СТП составляются в четко определенных для
данной территории МСК, то достаточно определить линейный размер пиксела по 2 контрольным точкам
и сдвинуть картинку на нужное место, так как в аффинном преобразовании
таким образом исключается поворот осей СК.

Конкретный пример:
Координаты поворотных точек границы территории объекта культурного наследия федерального значения “Дом, в котором в 1880-х гг. жил врач-терапевт Боткин Сергей Петрович”
http://lawru.info/dok/2013/08/23/n1010654.htm
Соседний участок с кадастровым номером 47:01:1629001:3332 имеющий с ним две общих точки принадлежит/принадлежал
ГОМЗ им. ОГПУ ОАО ЛОМО
http://www.lomo.ru/site/about/index.php?stid=208
и для него можно было скачать (esri-)geojson файл прямо с сайта ПКК (его понимает GDAL/OGR и
соответственно QGIS) в таком виде (в ring оставлены только 1,2 и последняя точки):


{
 "displayFieldName": "PKK_ID",
 "fieldAliases": {
  "PKK_ID": "Идентификатор ПКК"
 },
 "geometryType": "esriGeometryPolygon",
 "spatialReference": {
  "wkid": 3352,
  "latestWkid": 3352
 },
 "fields": [
  {
   "name": "PKK_ID",
   "type": "esriFieldTypeString",
   "alias": "Идентификатор ПКК",
   "length": 24
  }
 ],
 "features": [
  {
   "attributes": {
    "PKK_ID": "4701162900103332"
   },
   "geometry": {
    "rings": [
     [
      [
       2325163.7656293921,
       6672819.5555726346
      ],
      [
       2325289.7957857726,
       6672890.4156353418
      ],

      [ 
       2325163.7656293921,
       6672819.5555726346
      ]
     ]  
    ]   
   }
  }
 ]
} 

Координаты поворотных точек заданы в МСК-47 зона 1
http://www.mapbasic.ru/msk47
а geojson в “wkid”: 3352, т.е. EPSG:3352, т.е. в СК-63 блок C зона 2 (QGIS знает ее: http://spatialreference.org/ref/epsg/pulkovo-1942-cs63-zone-c2/ )
http://epsg.io/3352.prettywkt
Эти СК, как видно, различаются только вертикальным сдвигом на 6200000 метра
(и сменой номера зоны 2 на 1 по горизонтали),
и ими можно пользоваться в josm (user-defined projection),
в том числе и для привязки СТП.
По этим данным можно кстати увидеть на сколько “сдвинута” ПКК относительно кадастровых выписок,
но это в данной теме неинтересно.

Судя по тому, что я нашел, это какой-то совершенно отдельный формат данных. В общем-то можно прицепить и такое, но тут заново писать надо и не со всеми его фичами понятно, что же делать и как показывать :slight_smile:
это оно, как я понимаю: http://resources.arcgis.com/en/help/rest/apiref/geometry.html

в теме смешана поддержка linked CRS и каких-то МСК-специфичных вещей

WKT это просто способ описания СК, linked CRS это просто способ задать СК для исходного набора данных

по идее, если geotools понимает WKT описание СК, то нужно просто добавить поддержку linked CRS, дальше geotools сам разберется с преобразованиями. Если geotools его не понимает, но понимает proj4 - отлично, этого вполне достаточно, без WKT спокойно можно обойтись.