Skip to main content

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

earth_api-0.0.5.tar.gz (26.4 kB view details)

Uploaded Source

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

Hashes for earth_api-0.0.5.tar.gz
Algorithm Hash digest
SHA256 c964251aa1b1d184ccad7c8daa5e63a47723f3dcbec99b56c7aa853bed628f3a
MD5 1933abbdd2b2c70a57b8c38b22a9de47
BLAKE2b-256 66995b6f343f87516c8e9a23a614963ecc1406dcdd86d1ed741ed34639359a1d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page