V mém předchozím příspěvku (Tvorba webové mapy ze souboru JSON pomocí ArcGIS API for Python) je popsáno vytváření webové mapy na základě souborů JSON. Tento článek popisuje možnosti při ukládání webových map či aplikací jako samotné soubory JSON. V ukázce jsou znovu použity funkce dostupné v rámci ArcGIS API for Python bez nutnosti načíst modul arcpy.
JavaScript Object Notation (JSON) je standardní textový formát, který reprezentuje strukturovaná data založená na objektové syntaxi jazyka JavaScript. Webové mapy a aplikace uložené jako soubory JSON mohou administrátoři snadno přenášet, spravovat nebo obnovovat ze zálohy.
Mezi administrátorské nástroje pro práci se soubory JSON patří například uživatelské rozhraní ArcGIS Online Assistant. Pro hromadný přístup a stahování obsahu z ArcGIS Online bude ovšem v tomto článku použit skript v jazyku Python, který lze zakomponovat mezi další procesy v rámci většího celku.
Následující kód popisuje načtení a uložení dat JSON pro jednu webovou mapu.
Začátek a přihlášení do ArcGIS Online je shodné s variantou z předchozího dílu o nahrávání JSON souborů.
1/ Import potřebných modulů
from arcgis import gis
from arcgis.gis import GIS
import json
2/ Přihlášení do prostředí, v rámci kterého chceme obsah spravovat
Pomocí vyplnění údajů Portálu nebo ArcGIS Online se přihlásíme a vytvoříme potřebnou konektivitu pro správu obsahu.
gis = GIS("https://arcgis.com", "Username")
print ("Úspěšné přihlášeno do: ", gis)
3/ Zadání ID webové mapy v ArcGIS Online
web_map = gis.content.get("<item ID>")
jsonData=web_map.get_data(try_json=True)
4/ Uložení podrobností JSON jako soubor .json do umístění složky
with open ("<Folder Location>", "w") as file_handle:
file_handle.write(json.dumps(jsonData))
print("Completed")
Celý první způsob stažení samostatného podrobného souboru JSON je tedy následující:
from arcgis import gis
from arcgis.gis import GIS
import json
gis = GIS("https://arcgis.com", "Username")
print ("Úspěšné přihlášeno do: ", gis)
web_map = gis.content.get("<item ID>")
jsonData=web_map.get_data(try_json=True)
with open ("<Folder Location>", "w") as file_handle: #Upravte umisteni slozky
file_handle.write(json.dumps(jsonData))
print("Completed")
Výsledkem je podrobný přepis celé webové mapy do jednoho souboru JSON.
Výsledný soubor JSON z první ukázky je ke stažení formou přílohy pod článkem.
Vícenásobné načtení a uložení dat ve formátu JSON od konkrétního vlastníka v ArcGIS Online.
1/ Načtení modulů a přihlášení
První dvě části pro načtení modulů a přihlášení jsou shodné s první ukázkou.
from arcgis import gis
from arcgis.gis import GIS
import json
gis = GIS("https://arcgis.com", "Username")
print ("Úspěšné přihlášeno do: ", gis)
2/ Specifikace uživatele a obsahu
V dalším kroku je nutné specifikovat konkrétního uživatele a vyhledat požadovaný obsah. V této ukázce například všechny webové mapy.
x=0
my_item = gis.content.search(query="owner:<owner Name>",item_type="Web Map") #Edit the owner's name and the item_type parameter
print(my_item)
3/ Procházení seznamem a vytváření záznamu JSON
Po načtení budeme procházet seznamem vyhledaných položek a přímo načítat specifikace JSON každého prvku, který bude následně uložen do příslušné zvolené složky.
for item in my_item:
my_item = gis.content.search(query="owner:daviddavedemo_arcdatapraha3",item_type="Web Map")[x]
item = my_item.get_data(try_json=True)
with open ('/arcgis/json_from_map_All{}.json'.format(x), "w") as file_handle:
file_handle.write(json.dumps(item))
x=x+1
print(x)
print("Completed")
from arcgis import gis
from arcgis.gis import GIS
import json
gis = GIS("https://arcgis.com", "Username")
print ("Úspěšné přihlášeno do: ", gis)
x=0
my_item = gis.content.search(query="owner:<owner Name>",item_type="Web Map") #Edit the owner's name and the item_type parameter
print(my_item)
for item in my_item:
my_item = gis.content.search(query="owner:<owner Name>",item_type="Web Map")[x]
item = my_item.get_data(try_json=True)
with open ('/arcgis/json_from_map_All{}.json'.format(x), "w") as file_handle:
file_handle.write(json.dumps(item))
x=x+1
print(x)
print("Completed")
Výsledkem jsou jednotlivé soubory JSON popisující základní vlastnosti webových map z ArcGIS Online určeného vlastníka.
Pro názornou ukázku přikládám jeden z těchto souborů níže do zazipovaného balíčku.
V rámci jednoduchých Python skriptů jsme si ukázali, jak přistupovat k jednotlivým položkám na ArcGIS Online. V případě potřeby lze takto vytvořit proces, který bude obsah na ArcGIS Online spravovat s určitou úrovní automatizace.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.