OGR & ArcGIS (rosreestr.ru)

Ответить
Nikolka00
Активный участник
Сообщения: 101
Зарегистрирован: 01 авг 2010, 23:34
Репутация: 2

OGR & ArcGIS (rosreestr.ru)

Сообщение Nikolka00 » 16 ноя 2012, 04:42

согласно примеру, ogr берет онлайн данные и конвертирует в нужный. в данном случае JSON формате

ogr2ogr -f GeoJSON test.json "http://sampleserver3.arcgisonline.com/A ... s=*&f=json" OGRGeoJSON

если запрос сделать на росреестр
допустим такая строка вываливает ошибку. не поддерживаемый формат
ogr2ogr -f GeoJSON test.json "http://maps.rosreestr.ru/ArcGIS/rest/se ... 35&f=pjson" OGRGeoJSON

я так понимаю ogr умеет работать только по своему стандарту? или у rosreestr свой?

посмотрел данные из тестовых(примеров) с репозитория GDAL.
Спойлер

Код: Выделить всё

{
  "objectIdFieldName" : "objectid",
  "globalIdFieldName" : "",
  "geometryType" : "esriGeometryPoint",
  "spatialReference" : {
    "wkid" : 4326
  },
  "fields" : [
    {
      "name" : "objectid",
      "alias" : "Object ID",
      "type" : "esriFieldTypeOID"
    },
    {
      "name" : "fooInt",
      "alias" : "fooInt",
      "type" : "esriFieldTypeInteger",
      "length" : 36
    },
    {
      "name" : "fooDouble",
      "alias" : "fooDouble",
      "type" : "esriFieldTypeDouble"
    },
    {
      "name" : "fooString",
      "alias" : "fooString",
      "type" : "esriFieldTypeString",
      "length" : 50
    },
  ],
  "features" : [
    {
      "geometry" : {
        "x" : 2,
        "y" : 49
      },
      "attributes" : {
        "objectid" : 1,
        "fooInt" : 2,
        "fooDouble" : 3.4,
        "fooString" : "56",
      }
    }
  ]
}
Спойлер

Код: Выделить всё

{
  "objectIdFieldName" : "objectid",
  "globalIdFieldName" : "",
  "geometryType" : "esriGeometryMultiPoint",
  "spatialReference" : {
    "wkid" : 4326
  },
  "fields" : [
    {
      "name" : "objectid",
      "alias" : "Object ID",
      "type" : "esriFieldTypeOID"
    },
    {
      "name" : "fooInt",
      "alias" : "fooInt",
      "type" : "esriFieldTypeInteger",
      "length" : 36
    },
    {
      "name" : "fooDouble",
      "alias" : "fooDouble",
      "type" : "esriFieldTypeDouble"
    },
    {
      "name" : "fooString",
      "alias" : "fooString",
      "type" : "esriFieldTypeString",
      "length" : 50
    },
  ],
  "features" : [
    {
      "geometry" : {
        "points" : [ [2,49], [3,50] ],
      },
      "attributes" : {
        "objectid" : 1,
        "fooInt" : 2,
        "fooDouble" : 3.4,
        "fooString" : "56",
      }
    }
  ]
}

и других. везде формат ответа начинаются с "geometry"
"features" : [
{
"geometry" : {
у росреестра "attributes"
{
"features" : [
{
"attributes" : {

как исправить положение? где код подправить в скрипте?

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Максим Дубинин » 16 ноя 2012, 07:07

а то что выдает РР - GeoJSON?

http://geojsonlint.com/ говорит что нет.
пристегивайтесь, турбулентность прямо по курсу

Nikolka00
Активный участник
Сообщения: 101
Зарегистрирован: 01 авг 2010, 23:34
Репутация: 2

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Nikolka00 » 16 ноя 2012, 08:43

http://gdal.org/ogr/drv_geojson.html
Спойлер
This driver implements read/write support for access to features encoded in GeoJSON format. The GeoJSON is a dialect based on the JavaScript Object Notation (JSON). The JSON is a lightweight plain text format for data interchange and GeoJSON is nothing other than its specialization for geographic content.

At the moment of writing this, GeoJSON is supported as output format of services implemented by FeatureServer, GeoServer and CartoWeb.

The OGR GeoJSON driver translates a GeoJSON encoded data to objects of OGR Simple Features model: Datasource, Layer, Feature, Geometry. The implementation is based on GeoJSON Specification draft, v5.0.
Starting with OGR 1.8.0, the GeoJSON driver can read the JSON output of Feature Service request following the GeoServices REST Specification, like implemented by ArcGIS Server REST API
Начиная с OGR 1.8.0, GeoJSON может прочитать JSON по запросу службы по спецификации REST геосервис, как осуществляется ArcGIS Server REST API
вот и я про то же. росреестр изобрел велосипед? или это некая защита от "дурака" так сказать

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Дмитрий Барышников » 16 ноя 2012, 10:13

На самом деле ogr ограниченно поддерживает geojson
http://gdal.org/ogr/drv_geojson.html
Если выдача росреестра не подходит под описанные сервисы, то надо в драйвер функционал добавлять или делать разбор в своей программе.

[ Сообщение с мобильного устройства ]

Nikolka00
Активный участник
Сообщения: 101
Зарегистрирован: 01 авг 2010, 23:34
Репутация: 2

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Nikolka00 » 16 ноя 2012, 11:05

плохо (

согласно валидатора, данные по ссылкам валидны в формате JSON

Код: Выделить всё

http://maps.rosreestr.ru/ArcGIS/rest/services/CadastreNew/Cadastre/MapServer/exts/GKNServiceExtension/online/parcel/find?cadNum=23:43:122036:35&f=pjson

Код: Выделить всё

http://psearch-maps.yandex.ru/1.x/?callback=&text=%D0%BC%D0%B5%D1%85%D0%BC%D0%B0%D1%82%20%D0%9C%D0%93%D0%A3&key=AKgqHEkBAAAA-WzMYwIAeAeamm8ETZZZpdfp2R07eIuGyX4AAAAAAAAAAACjUCDoHIHZJ2pcl5mSL1zWVp2Myw==&format=json
http://zaach.github.com/jsonlint/

п.с. не плохой JSON Editor Online -редактор JSON
http://jsoneditoronline.org/

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Дмитрий Барышников » 16 ноя 2012, 11:22

JSON != GeoJSON
Они обмениваются JSON и обрабатывают его (и другим предлагают) как хотят.
Подождите. А откуда у вас такая ссылка?
http://maps.rosreestr.ru/ArcGIS/rest/se ... 35&f=pjson
Если идти по структуре каталога - то на этой странице (понятно до какого уровня я дошел) вроде нет перехода на exts
http://maps.rosreestr.ru/ArcGIS/rest/se ... /MapServer
Нашел - это же экстеншен (Supported Extensions GknServiceExtension). Он и не обязан вам GeoJSON гнать. Они честно схему привели: http://maps.rosreestr.ru/ArcGIS/rest/se ... n?f=schema
"supportedOutputFormats" : [
"json",
"html"
]
Вы можете получить через ogr с этой страницы все, что находится в секции Layers
http://maps.rosreestr.ru/ArcGIS/rest/se ... /MapServer

Nikolka00
Активный участник
Сообщения: 101
Зарегистрирован: 01 авг 2010, 23:34
Репутация: 2

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Nikolka00 » 16 ноя 2012, 11:36

ссылки привел просто для примера. GeoJSON расширенный JSON же? ) и полностью поддерживает спецификацию, вроде 5 xx . ну эт не столь важно.

вывод ток из всего, как заставить работать по сторонним "схемам" OGR ? ))
Вы можете получить через ogr с этой страницы все, что находится в секции Layers
http://maps.rosreestr.ru/ArcGIS/rest/se ... /MapServer
можете привести пример?
ogr2ogr.py -f GeoJSON test.json "http://...." OGRGeoJSON
мне не ясно какая должна быть ссылка и обратные данные в виде адресных данных

ну то что в лейерс мне не интересно )) мне нужны именно координаты и адреса))

может подскажете как сформировать ссылку по кадастр. номеру иль другому идентификатору, чтобы получит в JSON формате полигон кадастр.квартала, района ???

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: OGR & ArcGIS (rosreestr.ru)

Сообщение Дмитрий Барышников » 16 ноя 2012, 15:40

Nikolka00 писал(а): может подскажете как сформировать ссылку по кадастр. номеру иль другому идентификатору, чтобы получит в JSON формате полигон кадастр.квартала, района ???
Здесь надо либо в OGR добавлять функционал по разбору этого ответа в OGRLayer либо свою программу делать которая будет разбирать ответ и пихать его в OGRLayer.

В драйвере GeoJSON OGR есть ветвление по разбору ответа от сервера для FeatureServer, GeoServer, CartoWeb и ArcGIS Server.

Причем, то что написано в http://gdal.org/ogr/drv_geojson.html
The implementation is based on GeoJSON Specification draft, v5.0.
означает, что основывается, а не 100% поддерживает.

В общем, я считаю, что халява вида: ogr2ogr -f GeoJSON ... здесь не пройдет.

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей