Select to view content in your preferred language

Převod na GeoJSON v ArcPy

194
0
05-17-2022 06:23 AM
MartinKrál
Esri Contributor
0 0 194

V ArcGIS Pro můžeme pomocí funkce arcpy.FeaturesToJSON_conversion převést data do formátu GeoJSON, pokud jako 6. parametr funkce použijeme hodnotu GEOJSON. (Bez použití tohoto parametru nebo s hodnotou NO_GEOJSON proběhne převod do výchozího formátu Esri JSON.) V aplikaci ArcMap lze tento parametr použít od verze 10.5.

Pokud chceme pomocí ArcPy přistupovat přímo k objektu s GeoJSON geometrií, můžeme použít v kurzoru u geometrie prvku nedokumentovanou vlastnost __geo_interface__ k získání řetězce této geometrie a pak ji převést do formátu GeoJSON, případně s ní dále pracovat. Níže uvádíme příklad vypisující GeoJSON geometrii prvků ve vybraném souboru SHP. Tuto vlastnost je možné použít i ve starších verzích aplikace ArcMap.

Je vhodné zkontrolovat, zda objekt geometrie není None (pokus získat vlastnost __geo_interface__ takového objektu totiž skončí chybou), a také nahradit kulaté závorky hranatými. Může se totiž stát, že výsledný GeoJSON bude obsahovat chybně kulaté závorky.

import arcpy
fc = 'c:/TEMP/ArcCR500_v30/ZEL_STAN.shp'
fields = ['ZEL_STAN_','SHAPE@']
with arcpy.da.SearchCursor(fc, fields) as cursor:
    for row in cursor:
        if row[1] is not None:
            print(str(row[1].__geo_interface__).replace("(","[").replace(")","]"))

Tags (2)