Существует ли существующая библиотека для преобразования объектов ArcGIS в Json?

9

Существует ли существующая библиотека для преобразования типов ArcGIS IFeature в Json / GeoJson и обратно?

BlinkyBill
источник
Для набора
nicogis

Ответы:

6

ArcGIS 10 имеет AsShapeфункцию для преобразования в формате GeoJSON arcpy геометрии, которая имитирует Изящный «ы AsShapeи arcpy объекты геометрии реализуют __geo_interface__стандарт (также от стройных) для получения arcpy геометрий назад , как GeoJSON.

Джейсон Шайрер
источник
Хотя сейчас хорошее время, мне бы хотелось, чтобы они использовали идею, аналогичную интерфейсу IXMLSerializer, но с Json. Более согласованный и доступный на всех языках, которые могут использовать ArcObjects.
BlinkyBill
1
Вы можете свернуть свои собственные в ArcGIS 10 с помощью IJSONWriter и JSONWriter CoClass: help.arcgis.com/en/sdk/10.0/Arcobjects_CPP/componenthelp/…
Джейсон Шайрер,
AsShape / __ geo_interface__ от arcpy удобна, но не передавайте полигоны с внутренними кольцами: gis.stackexchange.com/questions/10201/…
valveLondon
6

Вы должны проверить GeoJSON.Net от Vish: http://viswaug.wordpress.com/2008/05/11/geojsonnet-a-net-library-to-produce-geojson-output/

Это должно быть довольно легко расширить, чтобы использовать геометрию ArcObjects.

Кроме того, вы можете взглянуть на экспортер GeoJSON, который я сделал для SharpMap (вам придется Google, так как StackExchange не позволит мне опубликовать вторую гиперссылку). Геометрические объекты в SharpMap имеют структуру, очень похожую на объекты в ArcObjects, поэтому их также будет довольно легко расширять.

Билл Доллинз
источник
Там много хороших указателей, но, как и большинство других вариантов, мне пришлось бы написать собственную реализацию, по которой я и пошел.
BlinkyBill
1

Этот вопрос с ответом от переполнения стека может работать.

/programming/2223979/convert-a-shapefile-shp-to-xml-json

Zachary
источник
1
Спасибо за предложение. К сожалению, библиотека, на которую ссылаются, изначально читает шейп-файлы, а не использует инфраструктуру ArcObjects.
BlinkyBill
1

Лучше всего написать собственный каркас. Используйте arcobjects, чтобы вы могли использовать геометрии, хранящиеся в любой базе геоданных / шейп-файлах / покрытиях. Это не должно быть слишком сложно, чтобы сделать это.

Джордж Сильва
источник
1
Это довольно легко написать для простых геометрий, тем более, когда вам нужно поддерживать более экзотические случаи. Это, однако, маршрут, который я прошел.
BlinkyBill
0

Я не вижу никакой существующей библиотеки, но этот интерфейс C # REST от ArcDeveloper обеспечивает начало. Есть также этот набор инструментов Python, лицензированный CC-AO, для экспорта класса объектов в GeoJSON, который должен соответствовать всем требованиям, он обрабатывает пять основных векторных типов.

Спецификация GeoJSON проста и не должна быть слишком обременительной для реализации, если набор инструментов не отвечает вашим потребностям.

SCW
источник
К сожалению, опция python, хотя и отвечает всем требованиям, должна использоваться в контексте сервера, где использование объекта геообработки создает проблемы с многопоточностью и масштабированием.
BlinkyBill
0

ESRI имеет этот бесплатный скрипт Python, который конвертирует из класса объектов в json, geojson или csv. esri2open

klewis
источник
0

Немного поздно, но решил, что это полезное дополнение ...

Я использую ArcGIS.PCL, который работает очень хорошо. Позволяет вам взаимодействовать с ArcGIS и выкладывать любую геометрию как GeoJson.

Gavin
источник