ArcGIS Earth Automation API
Project description
This python package is the ArcGIS Earth Automation API. You can use this package to call some functions of ArcGIS Earth.
Dependencies
- urllib3 (1.15 or greater)
- six (1.10 or greater)
- certifi
- python-dateutil
- requests
- od
Installation
This package can be installed from the Python Package Index.
$ pip install earth-api
Usage
Import
You can use the following command to import the package.
>>> from earth_api import EarthAPI
Examples
Get the current camera information
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, camera = earth.get_camera()
>>> status_code
200
>>> camera
{'position': {'x': -92.0, 'y': 41.0, 'z': 11000000.0, 'spatial_reference': {'wkid': 4326}}, 'heading': 0.0, 'tilt': 0.0, 'roll': 0.0}
Set the camera position
The following codes are an example of the camera position.
camera_dict = {
"position": {
"x": 113.59647525051167,
"y": 32.464715999412107,
"z": 2213290.0751730204,
"spatialReference": {
"wkid": 4326
},
"heading": 354.04823651174161,
"tilt": 19.96239543740441
}
}
Then, you can set the camera position.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.set_camera(camera_dict)
(200, {'result': 'Success'})
Set the flight target
The following codes are an example of flight information.
flight_dict = {
"camera":{
"position":{
"x":-92,
"y":41,
"z":11000000,
"spatialReference":{
"wkid":4326
}
},
"heading":0.0,
"tilt":0.099999999996554886
},
"duration":2
}
Then, you can set the flight.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.set_flight(flight_dict)
(200, {'result': 'Success'})
Add a layer
The following codes are an example of layer information.
layer_dict = {
"type":"MapService",
"URI" :"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
"target" :"OperationalLayers"
}
Then, you can add the layer to ArcGIS Earth.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, layer_infor = earth.add_layer(layer_dict)
>>> status_code
200
>>> layer_infor
{'id': '91713d46-45f3-4bc4-9c82-38384905f1e1', 'opacity': 1.0, 'displayName': 'World_Imagery', 'isVisible': True, 'classType': 'Tiled_Layer', 'sourceURI': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer', 'brightness': 0.0, 'contrast': 0.0, 'gamma': 0.0, 'lastTilingScheme': 'WebMercator', 'surfacePlacement': 'DrapedBillboarded', 'elevationOffset': 0.0, 'loadStatus': 'Loaded'}
Get the target layer information
You can get the target layer information according to the layer id.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, layer_infor = earth.get_layer("91713d46-45f3-4bc4-9c82-38384905f1e1")
>>> status_code
200
>>> layer_infor
{'id': '91713d46-45f3-4bc4-9c82-38384905f1e1', 'opacity': 1.0, 'displayName': 'World_Imagery', 'isVisible': True, 'classType': 'Tiled_Layer', 'sourceURI': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer', 'brightness': 0.0, 'contrast': 0.0, 'gamma': 0.0, 'lastTilingScheme': 'WebMercator', 'surfacePlacement': 'DrapedBillboarded', 'elevationOffset': 0.0, 'loadStatus': 'Loaded'}
Remove the target layer
You can remove the target layer according to the layer id.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.remove_layer("91713d46-45f3-4bc4-9c82-38384905f1e1")
(200, {'result': 'Success'})
Clear layers
You can clear all layers according to the following command.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_layers()
(200, {})
Add the target graphic
The following codes are an example of a graphic.
graphic_dict = {
"id": "point-picture-marker-graphic-js",
"geometry": {
"type": "point",
"x": -100,
"y": 40
},
"symbol": {
"type": "picture-marker",
"url": "https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png",
"width": "64px",
"height": "64px",
"angle": 0,
"xoffset": "10px",
"yoffset": "10px"
}
}
Then, you can add the graphic to ArcGIS Earth.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, graphic_infor = earth.add_graphic(graphic_dict)
>>> status_code
201
>>> graphic_infor
{'id': 'point-picture-marker-graphic-js', 'geometry': {'x': -100, 'y': 40, 'type': 'point'}, 'symbol': {'angle': 0, 'height': 48, 'type': 'picture-marker', 'url': 'https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png', 'width': 48, 'xoffset': 7.5, 'yoffset': 7.5}}
Get the target graphic information
You can get the graphic information according to the graphic id.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, graphic_infor = earth.get_graphic('point-picture-marker-graphic-js')
>>> status_code
200
>>> graphic_infor
{'id': 'point-picture-marker-graphic-js', 'geometry': {'x': -100, 'y': 40, 'type': 'point'}, 'symbol': {'angle': 0, 'contentType': 'image/png', 'height': 48, 'type': 'picture-marker', 'url': 'https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png', 'width': 48, 'xoffset': 7.5, 'yoffset': 7.5}}
Update the graphic
You can update the graphic according to the new graphic information.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.update_graphic(new_graphic_dict)
(204, {})
Remove the target graghic
You can remove the graphic according to the graphic id.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.remove_graphic("point-picture-marker-graphic-js")
(204, {})
Clear graghics
You can clear graphics according to the following codes.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_graphics()
(204, {})
Add a drawing
The following codes are a drawing example.
drawing_dic = {
"id": "point graphic sample",
"title": "point graphic sample",
"geometry": {
"x": -100,
"y": 40,
"spatialReference": {
"wkid": 4326
}
},
"symbol": {
"type": "picture-marker",
"url": "https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png",
"width": "30px",
"height": "30px"
},
"labelSymbol": {
"type": "text",
"color": [
100,
100,
100,
255
],
"font": {
"size": 24
}
}
}
Then, you can add a drawing to ArcGIS Earth.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, drawing_infor = earth.add_drawing(drawing_dic)
>>> status_code
201
>>> drawing_infor
{'id': 'point graphic sample', 'result': 'Success'}
Remove the target drawing
You can remove the target drawing according to the drawing id.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.remove_drawing('point graphic sample')
(204, {})
Clear drawings
You can clear all drawings according to the following codes:
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_drawings()
(204, {})
Get the current workspace
You can get the current workspace of ArcGIS Earth.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, workspace_infor = earth.get_workspace()
>>> status_code
200
>>> workspace_infor
{'url': 'http://localhost:8000/workspaces/f47b11cf-5dee-4f92-a528-6bc870b87874.zip', 'path': 'C:\\Users\\username\\Documents\\ArcGISEarth\\automation\\workspaces\\f47b11cf-5dee-4f92-a528-6bc870b87874.zip'}
Import the target workspace
You can import the target workspace according to the workspace information.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> workspace_dict = {
"url":"http://localhost:6080/workspace.zip",
"path":"C:\\Users\\Administrator\\Desktop\\workspace.zip",
}
>>> earth.import_workspace(workspace_dict)
(200, {'result': 'Success'})
Clear the current workspace
You can clear the current workspace.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_workspace()
(200, {'result': 'Success'})
Get the snapshot
You can get the current snapshot of ArcGIS Earth.
>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.get_snapshot()
(200, <urllib3.response.HTTPResponse object at 0x0000027BB2FBB190>)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file earth_api-0.0.5.tar.gz
.
File metadata
- Download URL: earth_api-0.0.5.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c964251aa1b1d184ccad7c8daa5e63a47723f3dcbec99b56c7aa853bed628f3a |
|
MD5 | 1933abbdd2b2c70a57b8c38b22a9de47 |
|
BLAKE2b-256 | 66995b6f343f87516c8e9a23a614963ecc1406dcdd86d1ed741ed34639359a1d |