arcgis.mapping module¶
The arcgis.mapping module provides components for visualizing GIS data and analysis. This module includes WebMap and WebScene components that enable 2D and 3D mapping and visualization in the GIS. This module also includes mapping layers like MapImageLayer, SceneLayer and VectorTileLayer.
Working with 2D Maps¶
WebMap¶
-
class
arcgis.mapping.
WebMap
(**kwargs)¶ Bases:
traitlets.traitlets.HasTraits
,collections.OrderedDict
The
WebMap
class represents aweb map
and provides access to its basemaps and operational layers as well as functionality to visualize and interact with said basemaps and layers.An ArcGIS
web map
is an interactive display of geographic information that you can use to tell stories and answer questions. Maps contain a basemap over which a set of data layers called operational layers are drawn.Note
To learn more about web maps, see the Web maps page in the ArcGIS REST API documentation.
Web maps
can be used across ArcGIS apps because they adhere to the same web map specification. This provides the functionality to author web maps in one ArcGIS app (including the Python API) and view and modify them in another ArcGIS app.Note
To learn more about the web map specification, refer to the Web Map Specification page in the ArcGIS REST API documentation.
Argument
Description
webmapitem
Optional
Item
object whose Item.type isWeb Map
.Note
If not specified, an empty
WebMap
object is created with some useful defaults.# USAGE EXAMPLE 1: Creating a WebMap object from an existing web map item from arcgis.mapping import WebMap from arcgis.gis import GIS # connect to your GIS and get the web map item gis = GIS(url, username, password) wm_item = gis.content.get('1234abcd_web map item id') # create a WebMap object from the existing web map item wm = WebMap(wm_item) type(wm) >> arcgis.mapping._types.WebMap # explore the layers in this web map using the 'layers' property wm.layers >> [{}...{}] # returns a list of dictionaries representing each operational layer
# USAGE EXAMPLE 2: Creating a new WebMap object from arcgis.mapping import WebMap # create a new WebMap object wm = WebMap() type(wm) >> arcgis.mapping._types.WebMap # explore the layers in this web map using the 'layers' property wm.layers >> [] # returns an empty list. You can add layers using the `add_layer()` method
-
add_layer
(layer, options=None)¶ Adds the given layer to the
WebMap
object.Argument
Description
layer
Required object. You can add:
Layer objects such as
FeatureLayer
,MapImageLayer
,
ImageryLayer
etc. -Item
objects,FeatureSet
andFeatureCollection
-Table
objectsoptions
Optional dict. Specify properties such as title, symbol, opacity, visibility, renderer for the layer that is added. If not specified, appropriate defaults are applied.
- Returns
True if layer was successfully added. Else, raises an appropriate exception.
# USAGE EXAMPLE: Add feature layer and map image layer item objects to the WebMap object. crime_fl_item = gis.content.search("2012 crime")[0] streets_item = gis.content.search("LA Streets","Map Service")[0] wm = WebMap() # create an empty web map with a default basemap wm.add_layer(streets_item) >> True # Add crime layer, but customize the title, transparency and turn off the default visibility. wm.add_layer(fl_item, {'title':'2012 crime in LA city', 'opacity':0.5, 'visibility':False}) >> True
-
add_table
(table, options=None)¶ Adds the given Table to the
WebMap
.Argument
Description
table
Required object. You can add:
Table
objects
options
Optional dict. Specify properties such as
title
,symbol
,opacity
,visibility
, andrenderer
for the table that is added. If not specified, appropriate defaults are applied.- Returns
True if table was successfully added. Else, raises appropriate exception.
wm = WebMap() table = Table('https://some-url.com/') wm.add_layer(table)
-
property
basemap
¶ Get/Set the base map layers in the
WebMap
.Argument
Description
value
Required string. What basemap you would like to apply to the map (‘topo’, ‘national-geographic’, etc.). See
basemaps
andgallery_basemaps
for a full list.- Returns
List of basemap layers as dictionaries
# Usage example 1: Get the basemap used in the web map from arcgis.mapping import WebMap wm = WebMap(wm_item) wm.basemap >> {"baseMapLayers": [ {"id": "defaultBasemap", "layerType": "ArcGISTiledMapServiceLayer", "url": "https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer", "visibility": true, "opacity": 1, "title": "Topographic" }], "title": "Topographic" } # Usage example 2: Set the basemap used in the web map from arcgis.mapping import WebMap wm = WebMap(wm_item) print(wm.basemaps) >> ['dark-gray', 'dark-gray-vector', 'gray', 'gray-vector', 'hybrid', 'national-geographic', 'oceans', 'osm', 'satellite', 'streets', 'streets-navigation-vector', 'streets-night-vector', 'streets-relief-vector', 'streets-vector', 'terrain', 'topo', 'topo-vector'] wm.basemap = 'dark-gray' print(wm.gallery_basemaps) >> ['custom_dark_gray_canvas', 'imagery', 'imagery_hybrid', 'light_gray_canvas', 'custom_basemap_vector_(proxy)', 'world_imagery_(proxy)', 'world_street_map_(proxy)'] wm.basemap = 'custom_dark_gray_canvas' # Usage example 3: Set the basemap equal to an item from arcgis.mapping import WebMap wm = WebMap(wm_item) # Use basemap from another item as your own wm.basemap = wm_item_2 wm.basemap = tiled_map_service_item wm.basemap = image_layer_item wm.basemap = wm2.basemap wm.basemap = wm2
-
property
basemap_switcher
¶ Get/Set whether the basemap of the
WebMap
can be switched.Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if Basemap switcher is enabled, False otherwise.
-
property
bookmarks
¶ Get/Set whether bookmarks are enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if bookmarks are enabled for dashboard widget, False otherwise.
-
property
events
¶ Gets the events associated or attached to the widget.
- Returns
A list of events attached to the widget.
-
property
forms
¶ The
forms
property retrieves the smart forms corresponding to each layer and table in the web map.- Returns
# Usage Example: Updating property of a form. wm = WebMap() wm.add_layer(table) forms = wm.forms form = forms.get(title="Manhole Inspection") form.title = "Manhole Inspection Form" form.update()
-
get_layer
(item_id=None, title=None, layer_id=None)¶ The
get_layer
method retrieves the first layer with a matchingitemId
,title
, orlayer_id
in the``WebMap`` object’s operational layers.Note
Pass one of the three parameters into the method to return the layer.
Argument
Description
item_id
Optional string. Pass the item_id for the operational layer you are trying to reference in the
WebMap
.title
Optional string. Pass the title for the operational layer you are trying to reference in the
WebMap
.layer_id
Optional string. Pass the id for the operational layer you are trying to reference in the
WebMap
.- Returns
A
FeatureLayer
as a dictionary
-
get_table
(item_id=None, title=None, layer_id=None)¶ The
get_table
method retrieves the first table with a matchingitemId
,title
, orlayer_id
in theWebMap
object’s tables.Note
Pass one of the three parameters into the method to return the table.
Argument
Description
item_id
Optional string. Pass the item_id for the table you are trying to reference in the
WebMap
.title
Optional string. Pass the title for the table you are trying to reference in the
WebMap
.layer_id
Optional string. Pass the id for the table you are trying to reference in the
WebMap
.- Returns
A
Table
object as a dictionary
-
property
height
¶ Get/Set the height of the widget.
Argument
Description
value
Required float between 0 and 1. (e.g. 0.75)
- Returns
A float representing the height of the widget
-
property
layer_visibility
¶ Get/Set whether layer visibility is enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if layer visibility is enabled for dashboard widget, False otherwise.
-
property
layers
¶ Gets the operational layers in the
Web Map
object.- Returns
List of
FeatureLayer
as dictionaries
# USAGE EXAMPLE 1: Get the list of layers from a web map from arcgis.mapping import WebMap wm = WebMap(wm_item) wm.layers >> [{"id": "Landsat8_Views_515", "layerType": "ArcGISImageServiceLayer", "url": "https://landsat2.arcgis.com/arcgis/rest/services/Landsat8_Views/ImageServer", ...}, {...}] len(wm.layers) >> 2
-
property
legend
¶ Get/Set whether legend visibility is enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if legend visibility is enabled for dashboard widget, False otherwise.
Get/Set whether navigation is enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if navigation is enabled for dashboard widget, False otherwise.
-
property
offline_areas
¶ The
offline_areas
property is the resource manager for offline areas cached for theWebMap
object.- Returns
The
OfflineMapAreaManager
for theWebMap
object.
-
property
pop_ups
¶ Get/Set whether popups are enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if popups are enabled for dashboard widget, False otherwise.
-
print
(file_format, extent, dpi=92, output_dimensions=500, 500, scale=None, rotation=None, spatial_reference=None, layout_template='MAP_ONLY', time_extent=None, layout_options=None)¶ The
print
method prints theWebMap
object to a printable file such as a PDF, PNG32, JPG.Note
The render and print operations happen server side (ArcGIS Online or Enterprise) and not on the client.
The
print
method takes the state of theWebMap
, renders and returns either a page layout or a map without page surrounds of the specified extent in raster or vector format.Argument
Description
file_format
Required string.Specifies the output file format. Valid types:
PNG8
|PNG32
|JPG
|GIF
|PDF
|EPS
|SVG
|SVGZ
.extent
Required dictionary.Specify the extent to be printed.
# Example Usage: >>> extent = {'spatialReference': {'latestWkid': 3857, 'wkid': 102100}, 'xmin': -15199645.40582486, 'ymin': 3395607.5273594954, 'xmax': -11354557.134968376, 'ymax': 5352395.451459487}
The spatial reference of the extent object is optional; when it is not provided, it is assumed to be in the map’s spatial reference. When the aspect ratio of the map extent is different than the size of the map on the output page or the
output_dimensions
, you might notice more features on the output map.dpi
Optional integer.Specify the print resolution of the output file.
dpi
stands for dots per inch. A higher number implies better resolution and a larger file size.output_dimensions
Specify the dimensions of the output file in pixels. If the
layout_template
is notMAP_ONLY
, the specific layout template chosen takes precedence over this paramter.scale
Optional float.Specify the map scale to be printed. The map scale at which you want your map to be printed. This parameter is optional but recommended for optimal results. The
scale
property is especially useful when map services in the web map have scale-dependent layers or reference scales set. Since the map that you are viewing on the web app may be smaller than the size of the output map (for example, 8.5 x 11 in. or A4 size), the scale of the output map will be different and you could see differences in features and/or symbols in the web application as compared with the output map.When scale is used, it takes precedence over the extent, but the output map is drawn at the requested scale centered on the center of the extent.
rotation
Optional float.Specify the number of degrees by which the map frame will be rotated, measured counterclockwise from the north. To rotate clockwise, use a negative value.
spatial_reference
Optional dictionary.Specify the spatial reference in which map should be printed. When not specified, the following is the order of precedence:
read from the
extent
parameterread from the base map layer of your web map
read from the
layout_template
chosen
layout_template
Optional string.The default value
MAP_ONLY
does not use any template. To get the list of available templates runget_layout_templates()
.time_extent
Optional list.If there is a time-aware layer and you want it to be drawn at a specified time, specify this property. This order list can have one or two elements. Add two elements (
startTime
followed byendTime
) to represent a time extent, or provide only one time element to represent a time instant. Times are always in UTC.# Example Usage to represent Tues. Jan 1, 2008 00:00:00 UTC: # to Thurs. Jan 1, 2009 00:00:00 UTC. >>> time_extent = [1199145600000, 1230768000000]
layout_options
Optional dictionary.This defines settings for different available page layout elements and is only needed when an available
layout_template
is chosen. Page layout elements includetitle
,copyright text
,scale bar
,author name
, andcustom text elements
. For more details, see ExportWebMap specification.- Returns
A URL to the file which can be downloaded and printed.
# USAGE EXAMPLE 1: Printing a web map to a JPG file of desired extent. from arcgis.mapping import WebMap from arcgis.gis import GIS # connect to your GIS and get the web map item gis = GIS(url, username, password) wm_item = gis.content.get('1234abcd_web map item id') # create a WebMap object from the existing web map item wm = WebMap(wm_item) # create an empty web map wm2 = WebMap() wm2.add_layer(<desired Item or Layer object>) # set extent redlands_extent = {'spatialReference': {'latestWkid': 3857, 'wkid': 102100}, 'xmin': -13074746.000753032, 'ymin': 4020957.451106308, 'xmax': -13014666.49652086, 'ymax': 4051532.26242039} # print printed_file_url = wm.print(file_format='JPG', extent=redlands_extent) printed_file2_url = wm2.print(file_format='PNG32', extent=redlands_extent) # Display the result in a notebook: from IPython.display import Image Image(printed_file_url) # Download file to disk import requests with requests.get(printed_file_url) as resp: with open('./output_file.png', 'wb') as file_handle: file_handle.write(resp.content)
-
remove_layer
(layer)¶ The
remove_layer
method removes the specified layer from theWebMap
.Note
A user can get the list of layers in map using the
layers
property and pass one of those layers to this method for removal from the map.Argument
Description
layer
Required object. Pass the
FeatureLaer
that needs to be removed from the map. You can get the list of layers in the map by calling thelayers
property.
-
remove_table
(table)¶ The
remove_table
method removes the specified table from theWebMap
.Note
A user can get the list of tables in map using the
tables
property and pass one of those tables to this method for removal from the map.Argument
Description
table
Required object. Pass the
Table
that needs to be removed from the map. You can get the list of tables in the map by calling thelayers
property.
-
save
(item_properties, thumbnail=None, metadata=None, owner=None, folder=None)¶ Saves the
WebMap
object as a new Web Map Item in yourGIS
.Note
If you started out with a fresh
WebMap
object, use this method to save it as a the web mapItem
in your GIS.Note
If you started with a
WebMap
object from an existing web map item, calling this method will create a new item with your changes. If you want to update the existingWebMap
item with your changes, call theupdate
method instead.Argument
Description
item_properties
Required dictionary. See table below for the keys and values.
thumbnail
Optional string. Either a path or URL to a thumbnail image.
metadata
Optional string. Either a path or URL to the metadata.
owner
Optional string. Defaults to the logged in user.
folder
Optional string. Name of the folder into which the web map should be saved.
Key:Value Dictionary Options for Argument item_properties
Key
Value
typeKeywords
Optional string. Provide a lists all sub-types, see URL 1 below for valid values.
description
Optional string. Description of the item.
extent
Optional dict, string, or array. The extent of the item.
title
Optional string. Name label of the item.
tags
Optional string. Tags listed as comma-separated values, or a list of strings. Used for searches on items.
snippet
Optional string. Provide a short summary (limit to max 250 characters) of the what the item is.
accessInformation
Optional string. Information on the source of the content.
licenseInfo
Optional string. Any license information or restrictions regarding the content.
culture
Optional string. Locale, country and language information.
access
Optional string. Valid values are private, shared, org, or public.
commentsEnabled
Optional boolean. Default is true, controls whether comments are allowed (true) or not allowed (false).
culture
Optional string. Language and country information.
The above are the most common item properties (metadata) that you set. To get a complete list, see the Common Parameters page in the ArcGIS REST API documentation.
- Returns
Item
object corresponding to the new web map Item created.
# USAGE EXAMPLE 1: Save a WebMap object into a new web map item from arcgis.gis import GIS from arcgis.mapping import WebMap # log into your GIS gis = GIS(url, username, password) # compose web map by adding, removing, editing layers and basemaps wm = WebMap() # new web map wm.add_layer(...) # add some layers # save the web map webmap_item_properties = {'title':'Ebola incidents and facilities', 'snippet':'Map created using Python API showing locations of Ebola treatment centers', 'tags':['automation', 'ebola', 'world health', 'python'], 'extent': {'xmin': -122.68, 'ymin': 45.53, 'xmax': -122.45, 'ymax': 45.6, 'spatialReference': {'wkid': 4326}}} new_wm_item = wm.save(webmap_item_properties, thumbnail='./webmap_thumbnail.png') # to visit the web map using a browser print(new_wm_item.homepage) >> 'https://your portal url.com/webadaptor/item.html?id=1234abcd...'
-
property
scale_bar
¶ Get/Set the scale bar type for the dashboard widget.
Argument
Description
value
Required string. Values: ‘none’ (disable) | ‘line’ | ‘ruler’
- Returns
A string representing the scale bar type. If “none” then it is disabled.
-
property
search
¶ Get/Set whether search is enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if search is enabled for dashboard widget, False otherwise.
-
property
tables
¶ Gets the tables in the
WebMap
object.- Returns
List of
Table
as dictionaries
wm = WebMap() table = Table('https://some-url.com/') wm.add_layer(table) wm.tables >> [{"id": "fZvgsrA68ElmNajAZl3sOMSPG3iTnL", "title": "change_table", "url": "https://some-url.com/", "popupInfo": { ...
-
update
(item_properties=None, thumbnail=None, metadata=None)¶ The
update
method updates the Web Map Item in yourGIS
with the changes you made to theWebMap
object. In addition, you can update other item properties, thumbnail and metadata.Note
If you started with a
WebMap
object from an existing web map item, calling this method will update the item with your changes.If you started out with a fresh WebMap object (without a web map item), calling this method will raise a RuntimeError exception. If you want to save the WebMap object into a new web map item, call the
save
method instead.For
item_properties
, pass in arguments for the properties you want to be updated. All other properties will be untouched. For example, if you want to update only the item’s description, then only provide the description argument initem_properties
.Argument
Description
item_properties
Optional dictionary. See table below for the keys and values.
thumbnail
Optional string. Either a path or URL to a thumbnail image.
metadata
Optional string. Either a path or URL to the metadata.
Key:Value Dictionary Options for Argument item_properties
Key
Value
typeKeywords
Optional string. Provide a lists all sub-types, see URL 1 below for valid values.
description
Optional string. Description of the item.
title
Optional string. Name label of the item.
tags
Optional string. Tags listed as comma-separated values, or a list of strings. Used for searches on items.
snippet
Optional string. Provide a short summary (limit to max 250 characters) of the what the item is.
accessInformation
Optional string. Information on the source of the content.
licenseInfo
Optional string. Any license information or restrictions regarding the content.
culture
Optional string. Locale, country and language information.
access
Optional string. Valid values are private, shared, org, or public.
commentsEnabled
Optional boolean. Default is true, controls whether comments are allowed (true) or not allowed (false).
The above are the most common item properties (metadata) that you set. To get a complete list, see the common parameters page in the ArcGIS REST API documentation.
- Returns
A boolean indicating success (True) or failure (False).
# USAGE EXAMPLE 1: Update an existing web map from arcgis.gis import GIS from arcgis.mapping import WebMap # log into your GIS gis = GIS(url, username, password) # edit web map by adding, removing, editing layers and basemaps wm = WebMap() # new web map wm.add_layer(...) # add some layers # save the web map webmap_item_properties = {'title':'Ebola incidents and facilities', 'snippet':'Map created using Python API showing locations of Ebola treatment centers', 'tags':['automation', 'ebola', 'world health', 'python']} new_wm_item = wm.save(webmap_item_properties, thumbnail='./webmap_thumbnail.png') # to visit the web map using a browser print(new_wm_item.homepage) >> 'https://your portal url.com/webadaptor/item.html?id=1234abcd...'
-
property
width
¶ Get/Set the width of the dashboard widget.
Argument
Description
value
Required float between 0 and 1. (e.g. 0.75)
- Returns
A float representing the width of the widget
-
property
zoom
¶ Get/Set whether zoom is enabled for the dashboard widget.
Argument
Description
value
Required bool. True to enable, False to disable
- Returns
True if zoom is enabled for dashboard widget, False otherwise.
-
OfflineMapAreaManager¶
-
class
arcgis.mapping.
OfflineMapAreaManager
(item, gis)¶ Bases:
object
The
OfflineMapAreaManager
is a helper class to manage offline map areas attached to a web map item.Note
Users should not instantiate this class directly, instead, should access the methods exposed by accessing the
offline_area
property on theWebMap
object.-
create
(area, item_properties=None, folder=None, min_scale=None, max_scale=None, layers_to_ignore=None, refresh_schedule='Never', refresh_rates=None, enable_updates=False, ignore_layers=None, tile_services=None, future=False)¶ The
create
method creates offline map area items and packages for ArcGIS Runtime powered applications. Thecreate
method creates two different types ofItem
objects. It first createsMap Area
items for the specified extent or bookmark. Next, it creates one or more map area packages corresponding to each layer type in the extent.Note
There can be only 1 map area item for an extent or bookmark.
You need to be the owner of the web map or an administrator of your
GIS
.
Argument
Description
area
Required object. Bookmark or extent. Specify as either:
bookmark name
>>> area = 'Bookmark1'
Note
WebMap.definition.bookmarks returns list of bookmarks.
list of coordinate pairs:
>>> area = [['xmin', 'ymin'], ['xmax', 'ymax']]
dictionary:
>>> area = { 'xmin': <value>, 'ymin': <value>, 'xmax': <value>, 'ymax': <value>, 'spatialReference' : {'wkid' : <value>} }
Note
If spatial reference is not specified, it is assumed ‘wkid’: 4326.
item_properties
Required dictionary. See table below for the keys and values.
folder
Optional string. Specify a folder name if you want the offline map area item and the packages to be created inside a folder.
min_scale
Optional number. Specify the minimum scale to cache tile and vector tile layers. When zoomed out beyond this scale, cached layers would not display.
max_scale
Optional number. Specify the maximum scale to cache tile and vector tile layers. When zoomed in beyond this scale, cached layers would not display.
layers_to_ignore
Optional List of layer objects to exclude when creating offline packages. You can get the list of layers in a web map by calling the layers property on the WebMap object.
refresh_schedule
Optional string. Allows for the scheduling of refreshes at given times.
The following are valid variables:
Never
- never refreshes the offline package (default)Daily
- refreshes everydayWeekly
- refreshes once a weekMonthly
- refreshes once a month
refresh_rates
Optional dict. This parameter allows for the customization of the scheduler. The dictionary accepts the following:
{ "hour" : 1 "minute" = 0 "nthday" = 3 "day_of_week" = 0 }
hour - a value between 0-23 (integers)
minute a value between 0-60 (integers)
nthday - this is used for monthly only. This say the refresh will occur on the ‘x’ day of the month.
day_of_week - a value between 0-6 where 0 is Sunday and 6 is Saturday.
# Example **Daily**: every day at 10:30 AM UTC >>> refresh_rates = { "hour": 10, "minute" : 30 } # Example **Weekly**: every Wednesday at 11:59 PM UTC >>> refresh_rates = { "hour" : 23, "minute" : 59, "day_of_week" : 4 }
enable_updates
Optional Boolean. Allows for the updating of the layers.
ignore_layers
Optional List. A list of individual layers, specified with their service URLs, in the map to ignore. The task generates packages for all map layers by default.
>>> ignore_layers = [ "https://services.arcgis.com/ERmEceOGq5cHrItq/arcgis/rest/services/SaveTheBaySync/FeatureServer/1", "https://services.arcgis.com/ERmEceOGq5cHrItq/arcgis/rest/services/WildfireSync/FeatureServer/0" ]
tile_services
Optional List. An array of JSON objects that contains additional export tiles enabled tile services for which tile packages (.tpk or .vtpk) need to be created. Each tile service is specified with its URL and desired level of details.
>>> tile_services = [ { "url": "https://tiledbasemaps.arcgis.com/arcgis/rest/services/World_Imagery/MapServer", "levels": "17,18,19" } ]
Note
Your
min_scale
value is always bigger in value than yourmax_scale
.Key:
Value Dictionary Options
for Argument:item_properties
Key
Value
description
Optional string. Description of the item.
title
Optional string. Name label of the item.
tags
Optional string. Tags listed as comma-separated values, or a list of strings. Used for searches on items.
snippet
Optional string. Provide a short summary (limit to max 250 characters) of the what the item is.
- Returns
Item
object for the offline map area item that was created. If Future==True, then the result is aPackagingJob
object.
USAGE EXAMPLE: Creating offline map areas wm = WebMap(wm_item) # create offline areas ignoring a layer and for certain min, max scales for other layers item_prop = {'title': 'Clear lake hyperspectral field campaign', 'snippet': 'Offline package for field data collection using spectro-radiometer', 'tags': ['python api', 'in-situ data', 'field data collection']} aviris_layer = wm.layers[-1] north_bed = wm.definition.bookmarks[-1]['name'] wm.offline_areas.create(area=north_bed, item_properties=item_prop, folder='clear_lake', min_scale=9000, max_scale=4500, layers_to_ignore=[aviris_layer])
Note
This method executes silently. To view informative status messages, set the verbosity environment variable as shown below:
USAGE EXAMPLE: setting verbosity from arcgis import env env.verbose = True
-
list
()¶ The
list
method retrieves a list ofMap Area
items related to the currentWebMap
object.Note
Map Area
items and the corresponding offline packages cached for each share a relationship of typeArea2Package
. You can use this relationship to get the list of package items cached for a particularMap Area
item. Refer to the Python snippet below for the steps:USAGE EXAMPLE: Finding packages cached for a Map Area item from arcgis.mapping import WebMap wm = WebMap(a_web_map_item_object) all_map_areas = wm.offline_areas.list() # get all the offline areas for that web map area1 = all_map_areas[0] area1_packages = area1.related_items('Area2Package','forward') for pkg in area1_packages: print(pkg.homepage) # get the homepage url for each package item.
- Returns
A List of
Map Area
items related to the currentWebMap
object
-
modify_refresh_schedule
(item, refresh_schedule=None, refresh_rates=None)¶ The
modify_refresh_schedule
method modifies an existing offline package’s refresh schedule.Argument
Description
item
Required
Item
object. This is the Offline Package to update the refresh schedule.refresh_schedule
Optional String. This is the rate of refreshing.
The following are valid variables:
Never - never refreshes the offline package (default)
Daily - refreshes everyday
Weekly - refreshes once a week
Monthly - refreshes once a month
refresh_rates
Optional dict. This parameter allows for the customization of the scheduler. Note all time is in UTC.
The dictionary accepts the following:
{ “hour” : 1 “minute” = 0 “nthday” = 3 “day_of_week” = 0 }
hour - a value between 0-23 (integers)
minute a value between 0-60 (integers)
nthday - this is used for monthly only. This say the refresh will occur on the ‘x’ day of the month.
day_of_week - a value between 0-6 where 0 is Sunday and 6 is Saturday.
Example Daily:
{ “hour”: 10, “minute” : 30 }
This means every day at 10:30 AM UTC
Example Weekly:
{ “hour” : 23, “minute” : 59, “day_of_week” : 4 }
This means every Wednesday at 11:59 PM UTC
- Returns
A boolean indicating success (True), or failure (False)
## Updates Offline Package Building Everyday at 10:30 AM UTC
gis = GIS(profile='owner_profile') item = gis.content.get('9b93887c640a4c278765982aa2ec999c') oa = wm.offline_areas.modify_refresh_schedule(item.id, 'daily', {'hour' : 10, 'minute' : 30})
-
property
offline_properties
¶ This property allows users to configure the offline properties for a webmap. The offline_properties allows for the definition of how available offline editing, basemap, and read-only layers behave in the web map application.
Argument
Description
values
Required Dict. The key/value object that defines the offline application properties.
The dictionary supports the following keys in the dictionary
Key
Values
download
When editing layers, the edits are always sent to the server. This string value indicates which data is retrieved. For example, none indicates that only the schema is written since neither the features nor attachments are retrieved. For a full sync without downloading attachments, indicate features. Lastly, the default behavior is to have a full sync using features_and_attachments where both features and attachments are retrieved.
If property is present, must be one of the following values:
Allowed Values: [features, features_and_attachments, None]
sync
sync applies to editing layers only. This string value indicates how the data is synced.
Allowed Values:
sync_features_and_attachments - bidirectional sync sync_features_upload_attachments - bidirection sync for feaures but upload only for attachments upload_features_and_attachments - upload only for both features and attachments (initial replica is just a schema)
reference_basemap
The filename of a basemap that has been copied to a mobile device. This can be used instead of the default basemap for the map to reduce downloads.
get_attachments
Boolean value that indicates whether to include attachments with the read-only data.
- Returns
Dictionary
-
update
(offline_map_area_items=None, future=False)¶ The
update
method refreshes existing map area packages associated with the list ofMap Area
items specified. This process updates the packages with changes made on the source data since the last time those packages were created or refreshed.Note
Offline map area functionality is only available if your
GIS
is ArcGIS Online.You need to be the owner of the web map or an administrator of your
GIS
.
Argument
Description
offline_map_area_items
Optional list. Specify one or more Map Area items for which the packages need to be refreshed. If not specified, this method updates all the packages associated with all the map area items of the web map.
To get the list of
Map Area
items related to theWebMap
object, call thelist
method.future
Optional Boolean.
- Returns
Dictionary containing update status.
Note
This method executes silently. To view informative status messages, set the verbosity environment variable as shown below:
USAGE EXAMPLE: setting verbosity from arcgis import env env.verbose = True
-
PackagingJob¶
-
class
arcgis.mapping.
PackagingJob
(future, notify=False)¶ Bases:
object
The
PackagingJob
class represents a Single Packaging Job.Argument
Description
future
Required
current.futures.Future
object. The async object created by thegeoprocessing
(GP) task.notify
Optional Boolean. When set to
True
, a message will inform the user that thegeoprocessing
task has completed. The default isFalse
.-
cancel
()¶ The
cancel
method attempts to cancel the job.Note
If the call is currently being executed or finished running and cannot be cancelled then the method will return
False
, otherwise the call will be cancelled and the method will return True.- Returns
A boolean indicating the call will be cancelled (True), or cannot be cancelled (False)
-
cancelled
()¶ The
cancelled
method retrieves whether the call was successfully cancelled.- Returns
A boolean indicating success (True), or failure (False)
-
done
()¶ The
done
method retrieves whether the call was successfully cancelled or finished running.- Returns
A boolean indicating success (True), or failure (False)
-
property
ellapse_time
¶ The
ellapse_time
property retrieves theEllapse Time
for theJob
.- Returns
The Ellapsed Time
-
result
()¶ The
result
method retrieves the value returned by the call.Note
If the call hasn’t yet completed then this method will wait.
- Returns
An Object
-
running
()¶ The
running
method retrieves whether the call is currently being executed and cannot be cancelled.- Returns
A boolean indicating success (True), or failure (False)
-
property
status
¶ Get the GP status of the call.
- Returns
A String
-
Working with 3D Maps¶
WebScene¶
-
class
arcgis.mapping.
WebScene
(websceneitem)¶ Bases:
collections.OrderedDict
The ``WebScene``represents a web scene and provides access to its basemaps and operational layers as well as functionality to visualize and interact with them.
If you would like more robust webscene authoring functionality, consider using the
MapView
class. You need to be using a Jupyter environment for the MapView class to function properly, but you can make copies ofWebScenes
, add layers using a simpleadd_layer()
call, adjust thebasemaps
, save to newwebscenes
, and more.-
update
([E, ]**F) → None. Update D from dict/iterable E and F.¶ If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
-
SceneLayer¶
-
class
arcgis.mapping.
SceneLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
SceneLayer
class represents a Web scene layer.Note
Web scene layers are cached web layers that are optimized for displaying a large amount of 2D and 3D features.
Note
Web scene layers can be used to represent 3D points, point clouds, 3D objects and integrated mesh layers.
Argument
Description
url
Required string, specify the url ending in /SceneServer/
gis
Optional GIS object. If not specified, the active GIS connection is used.
# USAGE EXAMPLE 1: Instantiating a SceneLayer object from arcgis.mapping import SceneLayer s_layer = SceneLayer(url='https://your_portal.com/arcgis/rest/services/service_name/SceneServer/') type(s_layer) >> arcgis.mapping._types.PointCloudLayer print(s_layer.properties.layers[0].name) >> 'your layer name'
SceneLayerManager¶
-
class
arcgis.mapping.
SceneLayerManager
(url, gis=None, scene_lyr=None)¶ Bases:
arcgis.gis._GISResource
The
SceneLayerManager
class allows administration (if access permits) of ArcGIS Online hosted scene layers. ASceneLayerManager
offers access to map and layer content.-
cancel_job
(job_id)¶ The
cancel_job
operation supports cancelling a job while update tiles is running from a hosted feature service. The result of this operation is a response indicating success or failure with error code and description.Argument
Description
job_id
Required String. The
job id
to cancel.
-
delete_tiles
(levels, extent=None)¶ The
delete_tiles
method deletes tiles from the current cache.Argument
Description
extent
optional dictionary, If specified, the tiles within this extent will be deleted or will be deleted based on the service’s full extent.
levels
required string, The level to delete. Example, 0-5,10,11-20 or 1,2,3 or 0-5
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.mapping import SceneLayerManager >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> deleted_tiles = SceneLayerManager.delete_tiles(levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} } ) >>> type(deleted_tiles) <Dictionary>
-
edit_tile_service
(service_definition=None, min_scale=None, max_scale=None, source_item_id=None, export_tiles_allowed=False, max_export_tile_count=100000)¶ The
edit_tile_service
operation updates a Tile Service’s properties.Argument
Description
service_definition
Required String. Updates a service definition.
min_scale
Required float. Sets the services minimum scale for caching.
max_scale
Required float. Sets the services maximum scale for caching.
source_item_id
Required String. The Source Item ID is the GeoWarehouse Item ID of the scene service
export_tiles_allowed
Required boolean.
exports_tiles_allowed
sets the value to let users export tilesmax_export_tile_count
Optional float. ``max_export_tile_count``sets the maximum amount of tiles to be exported from a single call.
Note
The default value is 100000.
# USAGE EXAMPLE >>> from arcgis.mapping import SceneLayerManager >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> SceneLayerManager.edit_tile_service(service_definition = "updated service definition", min_scale = 50, max_scale = 100, source_item_id = "geowarehouse_item_id", export_tiles_allowed = True, max_Export_Tile_Count = 10000 )
-
import_tiles
(item, levels=None, extent=None, merge=False, replace=False)¶ The
import_tiles
method imports tiles from anItem
object.Argument
Description
item
Required ItemId or
Item
object. The TPK file’s item id. This TPK file contains to-be-extracted bundle files which are then merged into an existing cache service.levels
Optional String / List of integers, The level of details to update. Example: “1,2,10,20” or [1,2,10,20]
extent
Optional String / Dict. The area to update as Xmin, YMin, XMax, YMax example: “-100,-50,200,500” or {‘xmin’:100, ‘ymin’:200, ‘xmax’:105, ‘ymax’:205}
merge
Optional Boolean. Default is false and applicable to compact cache storage format. It controls whether the bundle files from the TPK file are merged with the one in the existing cached service. Otherwise, the bundle files are overwritten.
replace
Optional Boolean. Default is false, applicable to compact cache storage format and used when merge=true. It controls whether the new tiles will replace the existing ones when merging bundles.
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.gis import GIS >>> from arcgis.mapping import SceneLayer # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> scene_item = gis.content.get('abcd_item-id') >>> scene_layer = SceneLayer(scene_item.sourceUrl, gis) >>> sl_manager = scene_layer.manager >>> imported_tiles = sl_manager.import_tiles(item = "<item_id>", levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} }, merge = True, replace = True ) >>> type(imported_tiles) <Dictionary>
-
job_statistics
(job_id)¶ Returns the job statistics for the given jobId
-
jobs
()¶ The tile service job summary (jobs) resource represents a summary of all jobs associated with a vector tile service. Each job contains a jobid that corresponds to the specific jobid run and redirects you to the Job Statistics page.
-
refresh
(service_definition=True)¶ The
refresh
operation refreshes a service, which clears the web server cache for the service.
-
property
rerun_job
¶ The
rerun_job
operation supports re-running a canceled job from a hosted map service. The result of this operation is a response indicating success or failure with error code and description.Argument
Description
code
required string, parameter used to re-run a given jobs with a specific error code:
ALL | ERROR | CANCELED
job_id
required string, job to reprocess
- Returns
A boolean or dictionary
-
swap
(target_service_name)¶ The swap operation replaces the current service cache with an existing one.
Note
The
swap
operation is for ArcGIS Online only.Argument
Description
target_service_name
Required string. Name of service you want to swap with.
- Returns
dictionary indicating success or error
-
update_tiles
(levels=None, extent=None)¶ The
update_tiles
method starts tile generation for ArcGIS Online. The levels of detail and the extent are needed to determine the area where tiles need to be rebuilt.Note
The
update_tiles
operation is for ArcGIS Online only.Argument
Description
levels
Optional String / List of integers, The level of details to update. Example: “1,2,10,20” or [1,2,10,20]
extent
Optional String / Dict. The area to update as Xmin, YMin, XMax, YMax example: “-100,-50,200,500” or {‘xmin’:100, ‘ymin’:200, ‘xmax’:105, ‘ymax’:205}
- Returns
Dictionary. If the product is not ArcGIS Online tile service, the result will be None.
# USAGE EXAMPLE >>> from arcgis.gis import GIS >>> from arcgis.mapping import SceneLayer # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> scene_item = gis.content.get('abcd_item-id') >>> scene_layer = SceneLayer(scene_item.sourceUrl, gis) >>> sl_manager = scene_layer.manager >>> update_tiles = sl_manager.update_tiles(levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} } ) >>> type(update_tiles) <Dictionary>
-
EnterpriseSceneLayerManager¶
-
class
arcgis.mapping.
EnterpriseSceneLayerManager
(url, gis=None, scene_lyr=None)¶ Bases:
arcgis.gis._GISResource
The
EnterpriseSceneLayerManager
class allows administration (if access permits) of ArcGIS Enterprise hosted scene layers. ASceneLayer
offers access to layer content...note:: Url must be admin url such as: https://services.myserver.com/arcgis/rest/admin/services/serviceName/SceneServer/
-
change_provider
(provider: str)¶ Allows for the switching of the service provide and how it is hosted on the ArcGIS Server instance.
Values:
‘ArcObjects’ means the service is running under the ArcMap runtime i.e. published from ArcMap
‘ArcObjects11’: means the service is running under the ArcGIS Pro runtime i.e. published from ArcGIS Pro
‘DMaps’: means the service is running in the shared instance pool (and thus running under the ArcGIS Pro provider runtime)
- Returns
Boolean
-
delete
()¶ deletes a service from arcgis server
-
edit
(service_dictionairy)¶ To edit a service, you need to submit the complete JSON representation of the service, which includes the updates to the service properties. Editing a service causes the service to be restarted with updated properties.
Argument
Description
service_dictionairy
Required dict. The service JSON as a dictionary.
- Returns
boolean
-
start
()¶ starts the specific service
-
stop
()¶ stops the specific service
-
BuildingLayer¶
-
class
arcgis.mapping.
BuildingLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
BuildingLayer
class represents a Web building layer.Note
Web scene layers are cached web layers that are optimized for displaying a large amount of 2D and 3D features. See the
SceneLayer
class for more information.Argument
Description
url
Required string, specify the url ending in /SceneServer/
gis
Optional GIS object. If not specified, the active GIS connection is used.
# USAGE EXAMPLE 1: Instantiating a SceneLayer object from arcgis.mapping import SceneLayer s_layer = SceneLayer(url='https://your_portal.com/arcgis/rest/services/service_name/SceneServer/') type(s_layer) >> arcgis.mapping._types.BuildingLayer print(s_layer.properties.layers[0].name) >> 'your layer name'
-
property
manager
¶
-
property
IntegratedMeshLayer¶
-
class
arcgis.mapping.
IntegratedMeshLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
IntegratedMeshLayer
class represents a Web scene Integrated Mesh layer.Note
Web scene layers are cached web layers that are optimized for displaying a large amount of 2D and 3D features. See the
SceneLayer
class for more information.Argument
Description
url
Required string, specify the url ending in /SceneServer/
gis
Optional GIS object. If not specified, the active GIS connection is used.
# USAGE EXAMPLE 1: Instantiating a SceneLayer object from arcgis.mapping import SceneLayer s_layer = SceneLayer(url='https://your_portal.com/arcgis/rest/services/service_name/SceneServer/') type(s_layer) >> arcgis.mapping._types.Point3DLayer print(s_layer.properties.layers[0].name) >> 'your layer name'
-
property
manager
¶
-
property
Object3DLayer¶
-
class
arcgis.mapping.
Object3DLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
Object3DLayer
rresents a Web scene 3D Object layer.Note
Web scene layers are cached web layers that are optimized for displaying a large amount of 2D and 3D features. See the
SceneLayer
class for more information.Argument
Description
url
Required string, specify the url ending in /SceneServer/
gis
Optional GIS object. If not specified, the active GIS connection is used.
# USAGE EXAMPLE 1: Instantiating a SceneLayer object from arcgis.mapping import SceneLayer s_layer = SceneLayer(url='https://your_portal.com/arcgis/rest/services/service_name/SceneServer/') type(s_layer) >> arcgis.mapping._types.Point3DLayer print(s_layer.properties.layers[0].name) >> 'your layer name'
-
property
manager
¶
-
property
Point3DLayer¶
-
class
arcgis.mapping.
Point3DLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
Point3DLayer
class represents a Web scene 3D Point layer.Note
Web scene layers are cached web layers that are optimized for displaying a large amount of 2D and 3D features. See the
SceneLayer
class for more information.Argument
Description
url
Required string, specify the url ending in /SceneServer/
gis
Optional GIS object. If not specified, the active GIS connection is used.
# USAGE EXAMPLE 1: Instantiating a SceneLayer object from arcgis.mapping import SceneLayer s_layer = SceneLayer(url='https://your_portal.com/arcgis/rest/services/service_name/SceneServer/') type(s_layer) >> arcgis.mapping._types.Point3DLayer print(s_layer.properties.layers[0].name) >> 'your layer name'
-
property
manager
¶
-
property
PointCloudLayer¶
-
class
arcgis.mapping.
PointCloudLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
PointCloudLayer
class represents a Web scene Point Cloud layer.Note
Point Cloud layers are cached web layers that are optimized for displaying a large amount of 2D and 3D features. See the
SceneLayer
class for more information.Argument
Description
url
Required string, specify the url ending in /SceneServer/
gis
Optional GIS object. If not specified, the active GIS connection is used.
# USAGE EXAMPLE 1: Instantiating a SceneLayer object from arcgis.mapping import SceneLayer s_layer = SceneLayer(url='https://your_portal.com/arcgis/rest/services/service_name/SceneServer/') type(s_layer) >> arcgis.mapping._types.PointCloudLayer print(s_layer.properties.layers[0].name) >> 'your layer name'
-
property
manager
¶
-
property
Working with Map Service Layers¶
MapServiceLayer¶
-
class
arcgis.mapping.
MapServiceLayer
(url, gis=None, container=None, dynamic_layer=None)¶ Bases:
arcgis.gis.Layer
The
MapServiceLayer
class is a factory that generates the Map Service Layers.Argument
Description
url
Required string, specify the url ending in /MapServer/<index>
gis
Optional
GIS
object. If not specified, the active GIS connection is used.# USAGE EXAMPLE 1: Instantiating a Map Service Layer object from arcgis.mapping import MapServiceLayer ms_layer = MapServiceLayer(url='https://your_portal.com/arcgis/rest/services/service_name/MapServer/0') type(ms_layer) >> arcgis.mapping._types.MapTable print(ms_layer.properties.name) >> 'pipe_properties'
MapFeatureLayer¶
-
class
arcgis.mapping.
MapFeatureLayer
(url, gis=None, container=None, dynamic_layer=None)¶ Bases:
arcgis.gis.Layer
The
MapFeatureLayer
class represents Map Feature Layers. Map Feature Layers can be added to and visualized using maps.Map Feature Layers are created by publishing feature data to a
GIS
, and are exposed as a broader resource (Item
) in theGIS
. MapFeatureLayer objects can be obtained through the layers attribute on map image service Items in theGIS
.-
property
attachements
¶ The
attachements
property provides a manager to work with attachments if theMapFeatureLayer
supports this functionality.
-
property
container
¶ The
container
property represents theMapImageLayer
to which this layer belongs.
-
export_attachments
(output_folder, label_field=None)¶ The
export_attachments
method exports attachments from the map feature layer inImagenet
format using theoutput_label_field
.Argument
Description
output_folder
Required. Output folder where the attachments will be stored.
label_field
Optional. Field which contains the label/category of each feature. If None, a default folder is created.
- Returns
A path to the exported attachments
-
classmethod
fromitem
(item, layer_id=0)¶ The
fromitem
method creates aMapFeatureLayer
from a GISItem
.Argument
Description
item
Required
Item
object. The type of item should be aMapImageService
object.layer_id
Optional. The id of the layer in the Map Service’s Layer. The default is 0.
- Returns
A
MapFeatureLayer
object
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer, MapFeatureLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_feature_layer = MapFeatureLayer.fromitem(item = map_image_item, layer_id = 2) >>> print(f"{map_feature_layer.properties.name:30}{type(map_feature_layer)}") <State Boundaries <class 'arcgis.mapping._msl.layer.MapFeatureLayer'>>
-
generate_renderer
(definition, where=None)¶ The
generate_renderer
operation groups data using the supplied definition (classification definition) and an optional where clause. The result is a renderer object. UsebaseSymbol
andcolorRamp
to define the symbols assigned to each class.Note
If the operation is performed on a table, the result is a renderer object containing the data classes and no symbols.
Argument
Description
definition
required dict. The definition using the renderer that is generated. Use either class breaks or unique value classification definitions. See the classification definitions page in the ArcGIS REST API documentation for more information.
where
optional string. A where clause for which the data needs to be classified. Any legal SQL where clause operating on the fields in the dynamic layer/table is allowed.
- Returns
dictionary
-
get_html_popup
(oid)¶ The
get_html_Popup
resource provides details about the HTML pop-up authored by the user using ArcGIS Pro or ArcGIS Desktop.Argument
Description
oid
Optional string. Object id of the feature to get the HTML popup.
- Returns
A string
-
get_unique_values
(attribute, query_string='1=1')¶ The
get_unique_values
method retrieves a list of unique values for a given attribute.Argument
Description
attribute
Required string. The map feature layer attribute to query.
query_string
Optional string. SQL Query that will be used to filter attributes before unique values are returned.
- Returns
A List
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer, MapFeatureLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_feature_layer = MapFeatureLayer.fromitem(item = map_image_item, layer_id = 2) >>> unique_values = map_feature_layer.get_unique_values(attribute ="Name", query_string ="name_2 like '%K%'") >>> type(unique_values) <List>
-
query
(where='1=1', text=None, out_fields='*', time_filter=None, geometry_filter=None, return_geometry=True, return_count_only=False, return_ids_only=False, return_distinct_values=False, return_extent_only=False, group_by_fields_for_statistics=None, statistic_filter=None, result_offset=None, result_record_count=None, object_ids=None, distance=None, units=None, max_allowable_offset=None, out_sr=None, geometry_precision=None, gdb_version=None, order_by_fields=None, out_statistics=None, return_z=False, return_m=False, multipatch_option=None, quantization_parameters=None, return_centroid=False, return_all_records=True, result_type=None, historic_moment=None, sql_format=None, return_true_curves=False, return_exceeded_limit_features=None, as_df=False, datum_transformation=None, range_values=None, parameter_values=None, **kwargs)¶ The
query
method queries a map feature layer based on a sql statement.Argument
Description
where
Optional string. The default is 1=1. The selection sql statement.
text
Optional String. A literal search text. If the layer has a display field associated with it, the server searches for this text in this field.
out_fields
Optional List of field names to return. Field names can be specified either as a List of field names or as a comma separated string. The default is “*”, which returns all the fields.
object_ids
Optional string. The object IDs of this layer or table to be queried. The object ID values should be a comma-separated string.
distance
Optional integer. The buffer distance for the input geometries. The distance unit is specified by units. For example, if the distance is 100, the query geometry is a point, units is set to meters, and all points within 100 meters of the point are returned.
units
Optional string. The unit for calculating the buffer distance. If unit is not specified, the unit is derived from the geometry spatial reference. If the geometry spatial reference is not specified, the unit is derived from the feature service data spatial reference. This parameter only applies if supportsQueryWithDistance is true.
- Value options:
esriSRUnit_Meter
|esriSRUnit_StatuteMile
|esriSRUnit_Foot
|esriSRUnit_Kilometer
|esriSRUnit_NauticalMile
|esriSRUnit_USNauticalMile
time_filter
Optional list of startTime and endTime values. :Syntax:
>>> time_filter=[<startTime>, <endTime>]
Note
Specified as
datetime.date
,datetime.datetime
ortimestamp
in millisecondsgeometry_filter
Optional
filter
object. Allows for the information to be filtered on spatial relationship with another geometry.max_allowable_offset
Optional float. This option can be used to specify the max_allowable_offset to be used for generalizing geometries returned by the query operation in the units of out_sr. If out_sr is not specified, the value is in units of the spatial reference of the layer.
out_sr
Optional Integer. The WKID for the spatial reference of the returned geometry.
geometry_precision
Optional Integer. This option can be used to specify the number of decimal places in the response geometries returned by the query operation. This applies to X and Y values only (not m or z-values).
gdb_version
Optional string. The geodatabase version to query. This parameter applies only if the isDataVersioned property of the layer is true. If not specified, the query will apply to the published map’s version.
return_geometry
Optional boolean. If true, geometry is returned with the query. Default is true.
return_distinct_values
Optional boolean. If True, it returns distinct values based on fields specified in out_fields. This parameter applies only if the supportsAdvancedQueries property of the layer is true.
return_ids_only
Optional boolean. Default is False. If True, the response only includes an array of object IDs. Otherwise, the response is a
FeatureSet
.return_count_only
Optional boolean. If True, the response only includes the count of features/records satisfying the query. Otherwise, the response is a
FeatureSet
. The default is False. This option supersedes the returns_ids_only parameter. If ``returnCountOnly = True`, the response will return both the count and the extent.return_extent_only
Optional boolean. If True, the response only includes the extent of the features satisying the query. If returnCountOnly=true, the response will return both the count and the extent. The default is False. This parameter applies only if the supportsReturningQueryExtent property of the layer is true.
order_by_fields
Optional string. One or more field names by which to order the results. Use
ASC
orDESC
for ascending or descending, respectively, following every field to be ordered:>>> order_by_fields = "STATE_NAME ASC, RACE DESC, GENDER ASC"
group_by_fields_for_statistics
Optional string. One or more field names on which to group results for calculating the statistics.
>>> group_by_fields_for_statiscits = "STATE_NAME, GENDER"
out_statistics
Optional List. The definitions for one or more field-based statistics to be calculated.
- Syntax
>>> out_statistics = [ { "statisticType": "<count | sum | min | max | avg | stddev | var>", "onStatisticField": "Field1", "outStatisticFieldName": "Out_Field_Name1" }, { "statisticType": "<count | sum | min | max | avg | stddev | var>", "onStatisticField": "Field2", "outStatisticFieldName": "Out_Field_Name2" } ]
return_z
Optional boolean. If True, Z values are included in the results if the features have Z values. Otherwise, Z values are not returned. The default is False.
return_m
Optional boolean. If True, M values are included in the results if the features have M values. Otherwise, M values are not returned. The default is False.
multipatch_option
Optional x/y footprint. This option dictates how the geometry of a multipatch feature will be returned.
result_offset
Optional integer. This option can be used for fetching query results by skipping the specified number of records and starting from the next record (that is, resultOffset + ith value). This option is ignored if return_all_records is True (i.e. by default).
result_record_count
Optional integer. This option can be used for fetching query results up to the result_record_count specified. When result_offset is specified but this parameter is not, the map service defaults it to max_record_count. The maximum value for this parameter is the value of the layer’s maxRecordCount property. This option is ignored if return_all_records is True (i.e. by default).
quantization_parameters
Optional dict. Used to project the geometry onto a virtual grid, likely representing pixels on the screen.
return_centroid
Optional boolean. Used to return the geometry centroid associated with each feature returned. If True, the result includes the geometry centroid. The default is False.
return_all_records
Optional boolean. When True, the query operation will call the service until all records that satisfy the where_clause are returned.
Note
result_offset and result_record_count will be ignored if set to True. If return_count_only, return_ids_only, or return_extent_only are True, this parameter is ignored.
result_type
Optional string. Controls the number of features returned by the operation. Options:
None
|standard
|tile
Note
See Query (Feature Service/Layer) for full explanation.
historic_moment
Optional integer. The historic moment to query. This parameter applies only if the layer is archiving enabled and the supportsQueryWithHistoricMoment property is set to true. This property is provided in the layer’s
properties
resource. If not specified, the query will apply to the current features.sql_format
Optional string. The sql_format parameter can be either standard SQL92 or it can use the native SQL of the underlying datastore. The default is None, which means it depends on the useStandardizedQuery layer property. Values:
None
|standard
|native
return_true_curves
Optional boolean. When set to True, returns true curves in output geometries. When set to False, curves are converted to densified polylines or polygons.
return_exceeded_limit_features
Optional boolean. Optional parameter which is true by default. When set to true, features are returned even when the results include the exceededTransferLimit: True property.
When set to False and querying with resultType = tile, features are not returned when the results include exceededTransferLimit: True. This allows a client to find the resolution in which the transfer limit is no longer exceeded without making multiple calls.
as_df
Optional boolean. If True, the results are returned as a DataFrame instead of a
FeatureSet
.datum_transformation
Optional Integer/Dictionary. This parameter applies a datum transformation while projecting geometries in the results when out_sr is different than the layer’s spatial reference. When specifying transformations, you need to think about which datum transformation best projects the layer (not the feature service) to the outSR and sourceSpatialReference property in the layer properties. For a list of valid datum transformation ID values ad well-known text strings, see Coordinate systems and transformations. For more information on datum transformations, please see the transformation parameter in the Project operation.
Examples
Inputs
Description
WKID
Integer. .. code-block:: python
>>> datum_transformation=4326
WKT
Dict.
>>> datum_transformation = {"wkt": "<WKT>"}
Composite
Dict.
>>> datum_transformation = {"geoTransforms" : [ {"wkid" : "<id>", "forward" : True | False}, {"wkt" : "WKT", "forward" : True: False} ] }
range_values
Optional List. Allows you to filter features from the layer that are within the specified range instant or extent.
>>> range_values = [ { "name": "range name" , # single value or a value-range "value": <value> or [ <value1>, <value2> ] }, { "name": "range name 2", "value": <value> or [ <value3>, <value4> ] } ]
Note
None is allowed in value-range case to indicate infinity
# all features with values <= 1500 >>> range_values = [ {"name" : "range name", "value" : [None, 1500]} ] # all features with values >= 1000 >>> range_values = [ {"name" : "range name", "value" : [1000, None]} ]
parameter_values
Optional Dict. Allows you to filter the layers by specifying value(s) to an array of pre-authored parameterized filters for those layers. When value is not specified for any parameter in a request, the default value, that is assigned during authoring time, gets used instead.
When a parameterInfo allows multiple values, you must pass them in an array.
Note
Check parameterInfos at the layer resources for the available parameterized filters, their default values and expected data type.
kwargs
Optional dict. Optional parameters that can be passed to the Query function. This will allow users to pass additional parameters not explicitly implemented on the function. A complete list of functions available is documented at Query (Feature Service/Layer).
- Returns
A
FeatureSet
containing the features matching the query unless another
return type is specified, such as
count
.# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer, MapFeatureLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_feature_layer = MapFeatureLayer.fromitem(item = map_image_item, layer_id = 2) >>> query_count = map_feature_layer.query(where "1=1", text = "Hurricane Data", units = "esriSRUnit_Meter", return_count_only = True, out_statistics = [ { "statisticType": "count", "onStatisticField": "Field1", "outStatisticFieldName": "Out_Field_Name1" }, { "statisticType": "avg", "onStatisticField": "Field2", "outStatisticFieldName": "Out_Field_Name2" } ], range_values= [ { "name": "range name", "value": [None, 1500] }, { "name": "range name 2", "value":[1000, None] } } ] ) >>> query_count <149>
The
query_related_records
operation is performed on aMapFeatureLayer
resource. The result of this operation areFeatureSet
objects grouped by source layer/table object IDs. EachFeatureSet
containsFeature
objects including the values for the fields requested by the user.Note
For related layers, if you request geometry information, the geometry of each feature is also returned in the feature set. For related tables, the feature set does not include geometries.
Note
See the
query
method for more information.Argument
Description
object_ids
Required string. The object IDs of the table/layer to be queried
relationship_id
Required string. The ID of the relationship to be queried.
out_fields
Required string. the list of fields from the related table/layer to be included in the returned feature set. This list is a comma delimited list of field names. If you specify the shape field in the list of return fields, it is ignored. To request geometry, set return_geometry to true. You can also specify the wildcard “*” as the value of this parameter. In this case, the results will include all the field values.
definition_expression
Optional string. The definition expression to be applied to the related table/layer. From the list of objectIds, only those records that conform to this expression are queried for related records.
return_geometry
Optional boolean. If true, the feature set includes the geometry associated with each feature. The default is true.
max_allowable_offset
Optional float. This option can be used to specify the max_allowable_offset to be used for generalizing geometries returned by the query operation. The max_allowable_offset is in the units of the outSR. If out_wkid is not specified, then max_allowable_offset is assumed to be in the unit of the spatial reference of the map.
geometry_precision
Optional integer. This option can be used to specify the number of decimal places in the response geometries.
out_wkid
Optional Integer. The spatial reference of the returned geometry.
gdb_version
Optional string. The geodatabase version to query. This parameter applies only if the isDataVersioned property of the layer queried is true.
return_z
Optional boolean. If true, Z values are included in the results if the features have Z values. Otherwise, Z values are not returned. The default is false.
return_m
Optional boolean. If true, M values are included in the results if the features have M values. Otherwise, M values are not returned. The default is false.
historic_moment
Optional Integer/datetime. The historic moment to query. This parameter applies only if the supportsQueryWithHistoricMoment property of the layers being queried is set to true. This setting is provided in the layer resource.
If historic_moment is not specified, the query will apply to the current features.
Syntax: historic_moment=<Epoch time in milliseconds>
return_true_curves
Optional boolean. Optional parameter that is false by default. When set to true, returns true curves in output geometries; otherwise, curves are converted to densified polylines or polygons.
- Returns
dict
-
property
renderer
¶ Get/Set the Renderer of the Map Feature Layer.
Note
The
renderer
property overrides the default symbology when displaying it on aWebMap
.- Returns
`InsensitiveDict`
: A case-insensitivedict
like object used to update and alter JSON A varients of a case-less dictionary that allows for dot and bracket notation.
-
property
time_filter
¶ Starting at Enterprise 10.7.1+, instead of querying time-enabled map service layers or time-enabled feature service layers, a time filter can be set using the
time_filter
property. Time can be filtered as Python datetime, objects or strings representing Unix epoch values in milliseconds. An extent can be specified by separating the start and stop values comma.>>> import datetime as dt >>> map_feature_lyr.time_filter = [dt.datetime(2021, 1, 1), dt.datetime(2022, 1, 10)]
-
property
MapRasterLayer¶
-
class
arcgis.mapping.
MapRasterLayer
(url, gis=None, container=None, dynamic_layer=None)¶ Bases:
arcgis.mapping._msl.layer.MapFeatureLayer
The
MapRasterLayer
class represents a geo-referenced image hosted in aMap Service
.
MapImageLayer¶
-
class
arcgis.mapping.
MapImageLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
The
MapImageLayer
allows you to display and analyze data from sublayers defined in a map service, exporting images instead of features. Map service images are dynamically generated on the server based on a request, which includes an LOD (level of detail), a bounding box, dpi, spatial reference and other options. The exported image is of the entire map extent specified.Note
MapImageLayer
does not display tiled images. To display tiled map service layers, seeTileLayer
.-
create_dynamic_layer
(layer)¶ The
create_dynamic_layer
method creates a dynamic layer. A dynamic layer / table represents a single layer / table of a map service published by ArcGIS Server or of a registered workspace. This resource is supported only when the map image layer supports dynamic layers, as indicated bysupportsDynamicLayers
on the map image layer properties.Argument
Description
layer
required dict. Dynamic layer/table source definition. Syntax: {
“id”: <layerOrTableId>, “source”: <layer source>, //required “definitionExpression”: “<definitionExpression>”, “drawingInfo”: {
“renderer”: <renderer>, “transparency”: <transparency>, “scaleSymbols”: <true,false>, “showLabels”: <true,false>, “labelingInfo”: <labeling info>
}, “layerTimeOptions”: //supported only for time enabled map layers {
“useTime” : <true,false>, “timeDataCumulative” : <true,false>, “timeOffset” : <timeOffset>, “timeOffsetUnits” : “<esriTimeUnitsCenturies,esriTimeUnitsDays,
esriTimeUnitsDecades,esriTimeUnitsHours, esriTimeUnitsMilliseconds,esriTimeUnitsMinutes, esriTimeUnitsMonths,esriTimeUnitsSeconds, esriTimeUnitsWeeks,esriTimeUnitsYears | esriTimeUnitsUnknown>”
}
}
- Returns
FeatureLayer
or None (if not enabled)
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> layer_to_add ={ "id": <layerId>, "source": <layer source> "definitionExpression": "<definitionExpression>", "drawingInfo": { "renderer": <renderer>, "transparency": <transparency>, "scaleSymbols": <true>, "showLabels": <true>, "labelingInfo": <labeling info> }, "layerTimeOptions": { "useTime" : <true,false>, "timeDataCumulative" : <true>, "timeOffset" : <timeOffset>, "timeOffsetUnits" : "<esriTimeUnitsCenturies>" } } >>> new_layer = map_image_item.create_dynamic_layer(layer= layer_to_add) >>>type(new_layer) <arcgis.features.FeatureLayer>
-
estimate_export_tiles_size
(export_by, levels, tile_package=False, export_extent='DEFAULTEXTENT', area_of_interest=None, asynchronous=True, **kwargs)¶ The
estimate_export_tiles_size
method is an asynchronous task that allows estimation of the size of the tile package or the cache data set that you download using theexport_tiles
operation. This operation can also be used to estimate the tile count in a tile package and determine if it will exceed themaxExportTileCount
limit set by the administrator of the service. The result of this operation isMapServiceJob
. This job response contains reference toMap Service Result
resource that returns the total size of the cache to be exported (in bytes) and the number of tiles that will be exported.Argument
Description
tile_package
optional boolean. Allows estimating the size for either a tile package or a cache raster data set. Specify the value true for tile packages format and false for Cache Raster data set. The default value is False
levels
required string. Specify the tiled service levels for which you want to get the estimates. The values should correspond to Level IDs, cache scales or the Resolution as specified in export_by parameter. The values can be comma separated values or a range. Example 1: 1,2,3,4,5,6,7,8,9 Example 2: 1-4,7-9
export_by
required string. The criteria that will be used to select the tile service levels to export. The values can be Level IDs, cache scales or the Resolution (in the case of image services). Values: LevelID, Resolution, Scale
export_extent
The extent (bounding box) of the tile package or the cache dataset to be exported. If extent does not include a spatial reference, the extent values are assumed to be in the spatial reference of the map. The default value is full extent of the tiled map service. Syntax: <xmin>, <ymin>, <xmax>, <ymax> Example: -104,35.6,-94.32,41
area_of_interest
optiona dictionary or Polygon. This allows exporting tiles within the specified polygon areas. This parameter supersedes extent parameter. Example: { “features”: [{“geometry”:{“rings”:[[[-100,35],
[-100,45],[-90,45],[-90,35],[-100,35]]], “spatialReference”:{“wkid”:4326}}}]}
asynchronous
optional boolean. The estimate function is run asynchronously requiring the tool status to be checked manually to force it to run synchronously the tool will check the status until the estimation completes. The default is True, which means the status of the job and results need to be checked manually. If the value is set to False, the function will wait until the task completes.
- Returns
dictionary
-
export_map
(bbox, bbox_sr=None, size='600,550', dpi=200, image_sr=None, image_format='png', layer_defs=None, layers=None, transparent=False, time_value=None, time_options=None, dynamic_layers=None, gdb_version=None, scale=None, rotation=None, transformation=None, map_range_values=None, layer_range_values=None, layer_parameter=None, f='json', save_folder=None, save_file=None, **kwargs)¶ The
export_map
operation is performed on a map service resource. The result of this operation is a map image resource. This resource provides information about the exported map image such as its URL, its width and height, extent and scale.Argument
Description
bbox
required string. The extent (bounding box) of the exported image. Unless the bbox_sr parameter has been specified, the bbox is assumed to be in the spatial reference of the map.
bbox_sr
optional integer,
SpatialReference
. spatial reference of the bbox.size
optional string. size - size of image in pixels
dpi
optional integer. dots per inch
image_sr
optional integer,
SpatialReference
. The spatial reference of the output image.image_format
optional string. The format of the exported image. The default format is .png. Values: `png | png8 | png24 | jpg | pdf | bmp | gif
svg | svgz | emf | ps | png32`layer_defs
optional dict. Allows you to filter the features of individual layers in the exported map by specifying definition expressions for those layers. Definition expression for a layer that is published with the service will be always honored.
layers
optional string. Determines which layers appear on the exported map. There are four ways to specify which layers are shown:
- show: Only the layers specified in this list will
be exported.
- hide: All layers except those specified in this
list will be exported.
- include: In addition to the layers exported by
default, the layers specified in this list will be exported.
- exclude: The layers exported by default excluding
those specified in this list will be exported.
transparent
optional boolean. If true, the image will be exported with the background color of the map set as its transparent color. The default is false.
Note
Only the .png and .gif formats support transparency.
time_value
optional list. The time instant or the time extent of the features to be identified.
time_options
optional dict. The time options per layer. Users can indicate whether or not the layer should use the time extent specified by the time parameter or not, whether to draw the layer features cumulatively or not and the time offsets for the layer.
dynamic_layers
optional dict. Use dynamicLayers property to reorder layers and change the layer data source. dynamicLayers can also be used to add new layer that was not defined in the map used to create the map service. The new layer should have its source pointing to one of the registered workspaces that was defined at the time the map service was created. The order of dynamicLayers array defines the layer drawing order. The first element of the dynamicLayers is stacked on top of all other layers. When defining a dynamic layer, source is required.
gdb_version
optional string. Switch map layers to point to an alternate geodatabase version.
scale
optional float. Use this parameter to export a map image at a specific map scale, with the map centered around the center of the specified bounding box (bbox)
rotation
optional float. Use this parameter to export a map image rotated at a specific angle, with the map centered around the center of the specified bounding box (bbox). It could be positive or negative number.
transformations
optional list. Use this parameter to apply one or more datum transformations to the map when sr is different than the map service’s spatial reference. It is an array of transformation elements.
map_range_values
optional list. Allows you to filter features in the exported map from all layer that are within the specified range instant or extent.
layer_range_values
optional dictionary. Allows you to filter features for each individual layer that are within the specified range instant or extent. Note: Check range infos at the layer resources for the available ranges.
layer_parameter
optional list. Allows you to filter the features of individual layers in the exported map by specifying value(s) to an array of pre-authored parameterized filters for those layers. When value is not specified for any parameter in a request, the default value, that is assigned during authoring time, gets used instead.
- Returns
A string, image of the map.
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_image_item.export_map(bbox="-104,35.6,-94.32,41", bbox_sr = 4326, image_format ="png, layers = "include", transparent = True, scale = 40.0, rotation = -45.0 )
-
export_tiles
(levels, export_by='LevelID', tile_package=True, export_extent=None, optimize_for_size=True, compression=75, area_of_interest=None, asynchronous=False, storage_format=None, **kwargs)¶ The
export_Tiles
operation is performed as an asynchronous task and allows client applications to download map tiles from a server for offline use. This operation is performed on aMap Service
that allows clients to export cache tiles. The result of this operation is aMap Service Job
. This job response contains a reference to theMap Service Result
resource, which returns a URL to the resulting tile package (.tpk) or a cache raster dataset.export_Tiles
can be enabled in a service by using ArcGIS Desktop or the ArcGIS Server Administrator Directory. In ArcGIS Desktop make an admin or publisher connection to the server, go to service properties, and enableAllow Clients
toExport Cache Tiles
in the advanced caching page of theService Editor
. You can also specify the maximum tiles clients will be allowed to download.Note
The default maximum allowed tile count is 100,000. To enable this capability using the Administrator Directory, edit the service, and set the properties
exportTilesAllowed
=True
andmaxExportTilesCount
= 100000.Note
In ArcGIS Server 10.2.2 and later versions, exportTiles is supported as an operation of the Map Server. The use of the http://Map_Service/exportTiles/submitJob operation is deprecated. You can provide arguments to the exportTiles operation as defined in the following parameters table:
Argument
Description
levels
required string. Specifies the tiled service levels to export. The values should correspond to Level IDs, cache scales. or the resolution as specified in export_by parameter. The values can be comma separated values or a range. Make sure tiles are present at the levels where you attempt to export tiles. Example 1: 1,2,3,4,5,6,7,8,9 Example 2: 1-4,7-9
export_by
required string. The criteria that will be used to select the tile service levels to export. The values can be Level IDs, cache scales. or the resolution. The defaut is ‘LevelID’. Values: LevelID | Resolution | Scale
tile_package
optiona boolean. Allows exporting either a tile package or a cache raster data set. If the value is true, output will be in tile package format, and if the value is false, a cache raster data set is returned. The default value is True.
export_extent
optional dictionary or string. The extent (bounding box) of the tile package or the cache dataset to be exported. If extent does not include a spatial reference, the extent values are assumed to be in the spatial reference of the map. The default value is full extent of the tiled map service. Syntax: <xmin>, <ymin>, <xmax>, <ymax> Example 1: -104,35.6,-94.32,41 Example 2: {“xmin” : -109.55, “ymin” : 25.76,
“xmax” : -86.39, “ymax” : 49.94, “spatialReference” : {“wkid” : 4326}}
optimize_for_size
optional boolean. Use this parameter to enable compression of JPEG tiles and reduce the size of the downloaded tile package or the cache raster data set. Compressing tiles slightly compromises the quality of tiles but helps reduce the size of the download. Try sample compressions to determine the optimal compression before using this feature. The default value is True.
compression=75,
optional integer. When optimize_for_size=true, you can specify a compression factor. The value must be between 0 and 100. The value cannot be greater than the default compression already set on the original tile. For example, if the default value is 75, the value of compressionQuality must be between 0 and 75. A value greater than 75 in this example will attempt to up sample an already compressed tile and will further degrade the quality of tiles.
area_of_interest
optional dictionary, Polygon. The area_of_interest polygon allows exporting tiles within the specified polygon areas. This parameter supersedes the exportExtent parameter. Example: { “features”: [{“geometry”:{“rings”:[[[-100,35],
[-100,45],[-90,45],[-90,35],[-100,35]]], “spatialReference”:{“wkid”:4326}}}]}
asynchronous
optional boolean. Default False, this value ensures the returns are returned to the user instead of the user having the check the job status manually.
storage_format
optional string. Specifies the type of tile package that will be created.
tpk - Tiles are stored using Compact storage format. It is supported across the ArcGIS platform. tpkx - Tiles are stored using CompactV2 storage format, which provides better performance on network shares and cloud store directories. This improved and simplified package structure type is supported by newer versions of ArcGIS products such as ArcGIS Online 7.1, ArcGIS Enterprise 10.7, and ArcGIS Runtime 100.5. This is the default.
- Returns
A path to download file is asynchronous is
False
. IfTrue
, a dictionary is returned.
-
find
(search_text, layers, contains=True, search_fields=None, sr=None, layer_defs=None, return_geometry=True, max_offset=None, precision=None, dynamic_layers=None, return_z=False, return_m=False, gdb_version=None, return_unformatted=False, return_field_name=False, transformations=None, map_range_values=None, layer_range_values=None, layer_parameters=None, **kwargs)¶ The
find
method performs the map servicefind
operation.Argument
Description
search_text
required string.The search string. This is the text that is searched across the layers and fields the user specifies.
layers
optional string. The layers to perform the identify operation on. There are three ways to specify which layers to identify on:
top: Only the top-most layer at the specified location.
visible: All visible layers at the specified location.
all: All layers at the specified location.
contains
optional boolean. If false, the operation searches for an exact match of the search_text string. An exact match is case sensitive. Otherwise, it searches for a value that contains the search_text provided. This search is not case sensitive. The default is true.
search_fields
optional string. List of field names to look in.
sr
optional dict, string, or SpatialReference. The well-known ID of the spatial reference of the input and output geometries as well as the map_extent. If sr is not specified, the geometry and the map_extent are assumed to be in the spatial reference of the map, and the output geometries are also in the spatial reference of the map.
layer_defs
optional dict. Allows you to filter the features of individual layers in the exported map by specifying definition expressions for those layers. Definition expression for a layer that is published with the service will be always honored.
return_geometry
optional boolean. If true, the resultset will include the geometries associated with each result. The default is true.
max_offset
optional integer. This option can be used to specify the maximum allowable offset to be used for generalizing geometries returned by the identify operation.
precision
optional integer. This option can be used to specify the number of decimal places in the response geometries returned by the identify operation. This applies to X and Y values only (not m or z-values).
dynamic_layers
optional dict. Use dynamicLayers property to reorder layers and change the layer data source. dynamicLayers can also be used to add new layer that was not defined in the map used to create the map service. The new layer should have its source pointing to one of the registered workspaces that was defined at the time the map service was created. The order of dynamicLayers array defines the layer drawing order. The first element of the dynamicLayers is stacked on top of all other layers. When defining a dynamic layer, source is required.
return_z
optional boolean. If true, Z values will be included in the results if the features have Z values. Otherwise, Z values are not returned. The default is false.
return_m
optional boolean.If true, M values will be included in the results if the features have M values. Otherwise, M values are not returned. The default is false.
gdb_version
optional string. Switch map layers to point to an alternate geodatabase version.
return_unformatted
optional boolean. If true, the values in the result will not be formatted i.e. numbers will returned as is and dates will be returned as epoch values.
return_field_name
optional boolean. If true, field names will be returned instead of field aliases.
transformations
optional list. Use this parameter to apply one or more datum transformations to the map when sr is different than the map service’s spatial reference. It is an array of transformation elements.
map_range_values
optional list. Allows you to filter features in the exported map from all layer that are within the specified range instant or extent.
layer_range_values
optional dictionary. Allows you to filter features for each individual layer that are within the specified range instant or extent. Note: Check range infos at the layer resources for the available ranges.
layer_parameters
optional list. Allows you to filter the features of individual layers in the exported map by specifying value(s) to an array of pre-authored parameterized filters for those layers. When value is not specified for any parameter in a request, the default value, that is assigned during authoring time, gets used instead.
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> search_results = map_image_item.find(search_text = "Hurricane Data", contains = True, layers = "top", return_geometry = False, max_offset = 100, return_z = True, return_m = False, ) >>> type(search_results) <Dictionary>
-
classmethod
fromitem
(item)¶ The
fromitem
method returns the layer at the specified index from a layerItem
object.Argument
Description
item
Required string. An item ID representing a layer.
index
Optional int. The index of the layer amongst the item’s layers
- Returns
The layer at the specified index.
# Usage Example >>> layer.fromitem(item="9311d21a9a2047d19c0faaebd6f2cca6", index=3)
-
generate_kml
(save_location, name, layers, options='composite')¶ The
generate_Kml
operation is performed on a map service resource. The result of this operation is a KML document wrapped in a KMZ file.Note
The document contains a network link to the KML Service endpoint with properties and parameters you specify.
Argument
Description
save_location
required string. Save folder.
name
The name of the resulting KML document. This is the name that appears in the Places panel of Google Earth.
layers
required string. the layers to perform the generateKML operation on. The layers are specified as a comma-separated list of layer ids.
options
required string. The layer drawing options. Based on the option chosen, the layers are drawn as one composite image, as separate images, or as vectors. When the KML capability is enabled, the ArcGIS Server administrator has the option of setting the layer operations allowed. If vectors are not allowed, then the caller will not be able to get vectors. Instead, the caller receives a single composite image. values: composite, separateImage, nonComposite
- Returns
A string to the file path
-
identify
(geometry, map_extent, image_display, geometry_type='Point', sr=None, layer_defs=None, time_value=None, time_options=None, layers='all', tolerance=None, return_geometry=True, max_offset=None, precision=4, dynamic_layers=None, return_z=False, return_m=False, gdb_version=None, return_unformatted=False, return_field_name=False, transformations=None, map_range_values=None, layer_range_values=None, layer_parameters=None, **kwargs)¶ The
identify
operation is performed on a map service resource to discover features at a geographic location. The result of this operation is an identify results resource.Note
Each identified result includes its
name
,layer ID
,layer name
,geometry
,geometry type
, and other attributes of that result as name-value pairs.Argument
Description
geometry
required
Geometry
or list. The geometry to identify on. The type of the geometry is specified by the geometryType parameter. The structure of the geometries is same as the structure of the JSON geometry objects returned by the API (See Geometry Objects). In addition to the JSON structures, for points and envelopes, you can specify the geometries with a simpler comma-separated syntax.geometry_type
required string.The type of geometry specified by the geometry parameter. The geometry type could be a point, line, polygon, or an envelope. Values: Point,Multipoint,Polyline,Polygon,Envelope
sr
optional dict, string, or SpatialReference. The well-known ID of the spatial reference of the input and output geometries as well as the map_extent. If sr is not specified, the geometry and the map_extent are assumed to be in the spatial reference of the map, and the output geometries are also in the spatial reference of the map.
layer_defs
optional dict. Allows you to filter the features of individual layers in the exported map by specifying definition expressions for those layers. Definition expression for a layer that is published with the service will be always honored.
time_value
optional list. The time instant or the time extent of the features to be identified.
time_options
optional dict. The time options per layer. Users can indicate whether or not the layer should use the time extent specified by the time parameter or not, whether to draw the layer features cumulatively or not and the time offsets for the layer.
layers
optional string. The layers to perform the identify operation on. There are three ways to specify which layers to identify on:
top: Only the top-most layer at the specified location.
visible: All visible layers at the specified location.
all: All layers at the specified location.
tolerance
optional integer. The distance in screen pixels from the specified geometry within which the identify should be performed. The value for the tolerance is an integer.
map_extent
required string. The extent or bounding box of the map currently being viewed.
image_display
optional string. The screen image display parameters (width, height, and DPI) of the map being currently viewed. The mapExtent and the image_display parameters are used by the server to determine the layers visible in the current extent. They are also used to calculate the distance on the map to search based on the tolerance in screen pixels. Syntax: <width>, <height>, <dpi>
return_geometry
optional boolean. If true, the resultset will include the geometries associated with each result. The default is true.
max_offset
optional integer. This option can be used to specify the maximum allowable offset to be used for generalizing geometries returned by the identify operation.
precision
optional integer. This option can be used to specify the number of decimal places in the response geometries returned by the identify operation. This applies to X and Y values only (not m or z-values).
dynamic_layers
optional dict. Use dynamicLayers property to reorder layers and change the layer data source. dynamicLayers can also be used to add new layer that was not defined in the map used to create the map service. The new layer should have its source pointing to one of the registered workspaces that was defined at the time the map service was created. The order of dynamicLayers array defines the layer drawing order. The first element of the dynamicLayers is stacked on top of all other layers. When defining a dynamic layer, source is required.
return_z
optional boolean. If true, Z values will be included in the results if the features have Z values. Otherwise, Z values are not returned. The default is false.
return_m
optional boolean.If true, M values will be included in the results if the features have M values. Otherwise, M values are not returned. The default is false.
gdb_version
optional string. Switch map layers to point to an alternate geodatabase version.
return_unformatted
optional boolean. If true, the values in the result will not be formatted i.e. numbers will returned as is and dates will be returned as epoch values. The default is False.
return_field_name
optional boolean. Default is False. If true, field names will be returned instead of field aliases.
transformations
optional list. Use this parameter to apply one or more datum transformations to the map when sr is different than the map service’s spatial reference. It is an array of transformation elements. Transformations specified here are used to project features from layers within a map service to sr.
map_range_values
optional list. Allows for the filtering features in the exported map from all layer that are within the specified range instant or extent.
layer_range_values
optional list. Allows for the filtering of features for each individual layer that are within the specified range instant or extent.
layer_parameters
optional list. Allows for the filtering of the features of individual layers in the exported map by specifying value(s) to an array of pre-authored parameterized filters for those layers. When value is not specified for any parameter in a request, the default value, that is assigned during authoring time, gets used instead.
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> identified = map_image_item.identify(geometry = geom1, geometry_type = "Multipoint", image_display = "width", return_geometry =True, return_z = True, retrun_m = True, return_field_name = True, ) >>> type(identified) <Dictionary>
-
property
item_info
¶ The
item_info
method retrieves the service’s item’s information.- Returns
A dictionary
-
property
legend
¶ The
legend
property represents a map service’s legend. It returns the legend information for all layers in the service. Each layer’s legend information includes the symbol images and labels for each symbol. Each symbol is an image of size 20 x 20 pixels at 96 DPI. Additional information for each layer such as the layer ID, name, and min and max scales are also included.Note
The legend symbols include the base64 encoded imageData as well as a url that could be used to retrieve the image from the server.
- Returns
Legend information
-
property
manager
¶
-
property
metadata
¶ The
metadata
property retrieves the service’s XML metadata file- Returns
An XML metadata file
-
thumbnail
(out_path=None)¶ The
thumbnail
method retrieves the thumbnail.Note
If a thumbnail is present, this operation will download the image to local disk.
- Returns
A path to the downloaded thumbnail, or None.
-
MapImageLayerManager¶
-
class
arcgis.mapping.
MapImageLayerManager
(url, gis=None, map_img_lyr=None)¶ Bases:
arcgis.gis._GISResource
The
MapImageLayerManager
class allows administration (if access permits) of ArcGIS Online hosted map image layers. AMapImageLayer
offers access to map and layer content.-
cancel_job
(job_id)¶ The
cancel_job
operation supports cancelling a job while update tiles is running from a hosted feature service. The result of this operation is a response indicating success or failure with error code and description.Argument
Description
job_id
Required String. The
job id
to cancel.
-
delete_tiles
(levels, extent=None)¶ The
delete_tiles
method deletes tiles from the current cache.Argument
Description
extent
optional dictionary, If specified, the tiles within this extent will be deleted or will be deleted based on the service’s full extent.
levels
required string, The level to delete. Example, 0-5,10,11-20 or 1,2,3 or 0-5
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_layer = MapImageLayer("<url>", gis) >>> mil_manager = map_image_layer.manager >>> deleted_tiles = mil_manager.delete_tiles(levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} } ) >>> type(deleted_tiles) <Dictionary>
-
edit_tile_service
(service_definition=None, min_scale=None, max_scale=None, source_item_id=None, export_tiles_allowed=False, max_export_tile_count=100000)¶ The
edit_tile_service
operation updates a Tile Service’s properties.Argument
Description
service_definition
Required String. Updates a service definition.
min_scale
Required float. Sets the services minimum scale for caching.
max_scale
Required float. Sets the services maximum scale for caching.
source_item_id
Required String. The Source Item ID is the GeoWarehouse Item ID of the map service
export_tiles_allowed
Required boolean.
exports_tiles_allowed
sets the value to let users export tilesmax_export_tile_count
Optional float.
max_export_tile_count
sets the maximum amount of tiles to be exported from a single call.Note
The default value is 100000.
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_layer = MapImageLayer("<url>", gis) >>> mil_manager = map_image_layer.manager >>> mil_manager.edit_tile_service(service_definition = "updated service definition", min_scale = 50, max_scale = 100, source_item_id = "geowarehouse_item_id", export_tiles_allowed = True, max_Export_Tile_Count = 10000 )
-
import_tiles
(item, levels=None, extent=None, merge=False, replace=False)¶ The
import_tiles
method imports tiles from anItem
object.Argument
Description
item
Required ItemId or
Item
object. The TPK file’s item id. This TPK file contains to-be-extracted bundle files which are then merged into an existing cache service.levels
Optional String / List of integers, The level of details to update. Example: “1,2,10,20” or [1,2,10,20]
extent
Optional String / Dict. The area to update as Xmin, YMin, XMax, YMax example: “-100,-50,200,500” or {‘xmin’:100, ‘ymin’:200, ‘xmax’:105, ‘ymax’:205}
merge
Optional Boolean. Default is false and applicable to compact cache storage format. It controls whether the bundle files from the TPK file are merged with the one in the existing cached service. Otherwise, the bundle files are overwritten.
replace
Optional Boolean. Default is false, applicable to compact cache storage format and used when merge=true. It controls whether the new tiles will replace the existing ones when merging bundles.
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_layer = MapImageLayer("<url>", gis) >>> mil_manager = map_image_layer.manager >>> imported_tiles = mil_manager.import_tiles(item="<item-id>", levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} }, merge = True, replace = True ) >>> type(imported_tiles) <Dictionary>
-
job_statistics
(job_id)¶ Returns the job statistics for the given jobId
-
refresh
(service_definition=True)¶ The
refresh
operation refreshes a service, which clears the web server cache for the service.
-
property
rerun_job
¶ The
rerun_job
operation supports re-running a canceled job from a hosted map service. The result of this operation is a response indicating success or failure with error code and description.Argument
Description
code
required string, parameter used to re-run a given jobs with a specific error code:
ALL | ERROR | CANCELED
job_id
required string, job to reprocess
- Returns
A boolean or dictionary
-
swap
(target_service_name)¶ The swap operation replaces the current service cache with an existing one.
Note
The
swap
operation is for ArcGIS Online only.Argument
Description
target_service_name
Required string. Name of service you want to swap with.
- Returns
dictionary indicating success or error
-
update_tiles
(levels=None, extent=None)¶ The
update_tiles
method starts tile generation for ArcGIS Online. The levels of detail and the extent are needed to determine the area where tiles need to be rebuilt.Note
The
update_tiles
operation is for ArcGIS Online only.Argument
Description
levels
Optional String / List of integers, The level of details to update. Example: “1,2,10,20” or [1,2,10,20]
extent
Optional String / Dict. The area to update as Xmin, YMin, XMax, YMax example: “-100,-50,200,500” or {‘xmin’:100, ‘ymin’:200, ‘xmax’:105, ‘ymax’:205}
- Returns
Dictionary. If the product is not ArcGIS Online tile service, the result will be None.
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_layer = MapImageLayer("<url>", gis) >>> mil_manager = map_image_layer.manager >>> update_tiles = mil_manager.update_tiles(levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} } ) >>> type(update_tiles) <Dictionary>
-
EnterpriseMapImageLayerManager¶
-
class
arcgis.mapping.
EnterpriseMapImageLayerManager
(url, gis=None, map_img_lyr=None)¶ Bases:
arcgis.gis._GISResource
The
EnterpriseMapImageLayerManager
class allows administration (if access permits) of ArcGIS Enterprise hosted map image layers. AMapImageLayer
offers access to layer content.Note
Url must be admin url such as: https://services.myserver.com/arcgis/rest/admin/services/serviceName/MapServer/
-
change_provider
(provider: str)¶ Allows for the switching of the service provide and how it is hosted on the ArcGIS Server instance.
Provider parameter options:
ArcObjects means the service is running under the ArcMap runtime i.e. published from ArcMap
ArcObjects11: means the service is running under the ArcGIS Pro runtime i.e. published from ArcGIS Pro
DMaps: means the service is running in the shared instance pool (and thus running under the ArcGIS Pro provider runtime)
- Returns
Boolean
-
delete
()¶ deletes a service from arcgis server
-
edit
(service_dictionary)¶ To edit a service, you need to submit the complete JSON representation of the service, which includes the updates to the service properties. Editing a service causes the service to be restarted with updated properties.
Argument
Description
service_dictionary
Required dict. The service JSON as a dictionary.
- Returns
boolean
-
start
()¶ starts the specific service
-
stop
()¶ stops the specific service
-
MapTable¶
-
class
arcgis.mapping.
MapTable
(url, gis=None, container=None, dynamic_layer=None)¶ Bases:
arcgis.mapping._msl.layer.MapFeatureLayer
The
MapTable
class represents entity classes with uniform properties.Note
In addition to working with “entities with
location
as features, theGIS
can also work with non-spatial entities as rows in tables.Working with tables is similar to working with a
MapFeatureLayer
, except that the rows (Feature
) in a table do not have a geometry, and tables ignore any geometry related operation.-
classmethod
fromitem
(item, table_id=0)¶ The
fromitem
method creates aMapTable
from a GISItem
.Argument
Description
item
Required
Item
object. The type of item should be aMapImageService
object.layer_id
Optional. The id of the layer in the Map Service’s Layer. The default is 0.
- Returns
A
MapTable
object
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer, MapTable >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_table = MapFeatureLayer.fromitem(item = map_image_item, layer_id = 2) >>> print(f"{map_table.properties.name:30}{type(map_table)}") <State Boundaries <class 'arcgis.mapping.MapTable'>>
-
query
(where='1=1', out_fields='*', time_filter=None, return_count_only=False, return_ids_only=False, return_distinct_values=False, group_by_fields_for_statistics=None, statistic_filter=None, result_offset=None, result_record_count=None, object_ids=None, gdb_version=None, order_by_fields=None, out_statistics=None, return_all_records=True, historic_moment=None, sql_format=None, return_exceeded_limit_features=None, as_df=False, range_values=None, parameter_values=None, **kwargs)¶ The
query
method queries a Table Layer based on a set of criteria from a sql statement.Argument
Description
where
Optional string. The default is 1=1. The selection sql statement.
out_fields
Optional List of field names to return. Field names can be specified either as a List of field names or as a comma separated string. The default is “*”, which returns all the fields.
object_ids
Optional string. The object IDs of this layer or table to be queried. The object ID values should be a comma-separated string.
time_filter
Optional list. The format is of [<startTime>, <endTime>] using datetime.date, datetime.datetime or timestamp in milliseconds.
>>> time_filter=[<startTime>, <endTime>]
Specified as
datetime.date
,datetime.datetime
ortimestamp
in milliseconds.>>> import datetime as dt >>> time_filter = [dt.datetime(2022, 1, 1), dt.dateime(2022, 1, 12)]
gdb_version
Optional string. The geodatabase version to query. This parameter applies only if the isDataVersioned property of the layer is true. If this is not specified, the query will apply to the published map’s version.
return_geometry
Optional boolean. If True, geometry is returned with the query. Default is True.
return_distinct_values
Optional boolean. If True, it returns distinct values based on the fields specified in out_fields. This parameter applies only if the supportsAdvancedQueries property of the layer is true.
return_ids_only
Optional boolean. Default is False. If True, the response only includes an array of object IDs. Otherwise, the response is a
FeatureSet
.return_count_only
Optional boolean. If True, the response only includes the count (number of features/records) that would be returned by a query. Otherwise, the response is a
FeatureSet
. The default is False. This option supersedes the return_ids_only parameter. If return_count_only = True, the response will return both the count and the extent.order_by_fields
Optional string. One or more field names by which to order the results. Use
ASC
orDESC
for ascending or descending, respectively, following every field to be ordered:>>> order_by_fields = "STATE_NAME ASC, RACE DESC, GENDER ASC"
group_by_fields_for_statistics
Optional string. One or more field names on which to group results for calculating the statistics.
>>> group_by_fields_for_statiscits = "STATE_NAME, GENDER"
out_statistics
Optional string. The definitions for one or more field-based statistics to be calculated.
- Syntax
>>> out_statistics = [ { "statisticType": "<count | sum | min | max | avg | stddev | var>", "onStatisticField": "Field1", "outStatisticFieldName": "Out_Field_Name1" },{ "statisticType": "<count | sum | min | max | avg | stddev | var>", "onStatisticField": "Field2", "outStatisticFieldName": "Out_Field_Name2" } ]
result_offset
Optional integer. This option can be used for fetching query results by skipping the specified number of records and starting from the next record (that is, result_offset + ith). This option is ignored if return_all_records is True (i.e. by default).
result_record_count
Optional integer. This option can be used for fetching query results up to the result_record_count specified. When result_offset is specified but this parameter is not, the map service defaults it to max_record_count. The maximum value for this parameter is the value of the layer’s maxRecordCount property. This option is ignored if return_all_records is True (i.e. by default).
return_all_records
Optional boolean. When True, the query operation will call the service until all records that satisfy the where_clause are returned. Note: result_offset and result_record_count will be ignored if return_all_records is True. Also, if return_count_only, return_ids_only, or return_extent_only are True, this parameter will be ignored.
historic_moment
Optional integer. The historic moment to query. This parameter applies only if the layer is archiving enabled and the supportsQueryWithHistoricMoment property is set to true. This property is provided in the layer resource.
Note
See Query (Feature Service/Layer) for full explanation of layer properties. Use
properties
to examine layer properties.If historic_moment is not specified, the query will apply to the current features.
sql_format
Optional string. The sql_format parameter can be either standard SQL92 or it can use the native SQL of the underlying datastore. The default is none which means the sql_format depends on the useStandardizedQuery parameter. Values:
none
|standard
|native
return_exceeded_limit_features
Optional boolean. Optional parameter which is true by default. When set to true, features are returned even when the results include the exceededTransferLimit: true property.
When set to false and querying with resultType = ‘tile’, features are not returned when the results include exceededTransferLimit: True. This allows a client to find the resolution in which the transfer limit is no longer exceeded without making multiple calls.
as_df
Optional boolean. If True, the results are returned as a DataFrame instead of a
FeatureSet
.range_values
Optional List. Allows you to filter features from the layer that are within the specified range instant or extent.
- Syntax
>>> range_values = [ { "name": "range name", "value": <value> or [ <value1>, <value2> ] }, { "name": "range name 2", "value": <value> or [ <value3>, <value4>] } } ]
Note
None is allowed in value-range case – that means infinity
# all features with values <= 1500 >>> range_values = {"name" : "range name", "value :[None, 1500]} # all features with values >= 1000 >>> range_values = {"name" : "range name", "value" : [1000, None]}
parameter_values
Optional Dict. Allows you to filter the features layers by specifying value(s) to an array of pre-authored parameterized filters for those layers. When value is not specified for any parameter in a request, the default value, that is assigned during authoring time, gets used instead.
When parameterInfo allows multiple values, you must pass them in an array.
Note: Check parameterInfos at the layer
properties
for the available parameterized filters, their default values and expected data type.kwargs
Optional dict. Optional parameters that can be passed to the Query function. This will allow users to pass additional parameters not explicitly implemented on the function. A complete list of possible parameters is documented at Query (Map Service/Layer)
- Returns
A
FeatureSet
or Panda’s DataFrame containing theFeature
objects matching the query, unless another return type is specified, such ascount
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer, MapFeatureLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_feature_layer = MapFeatureLayer.fromitem(item = map_image_item, layer_id = 2) >>> query_count = map_feature_layer.query(where "1=1", text = "Hurricane Data", units = "esriSRUnit_Meter", return_count_only = True, out_statistics = [ { "statisticType": "count", "onStatisticField": "Field1", "outStatisticFieldName": "Out_Field_Name1" }, { "statisticType": "avg", "onStatisticField": "Field2", "outStatisticFieldName": "Out_Field_Name2" } ], range_values= [ { "name": "range name", "value": [None, 1500] }, { "name": "range name 2", "value":[1000, None] } } ] ) >>> query_count <149>
-
classmethod
VectorTileLayer¶
-
class
arcgis.mapping.
VectorTileLayer
(url, gis=None)¶ Bases:
arcgis.gis.Layer
-
export_tiles
(levels=None, export_extent=None, polygon=None, max_export_tile_count=10000)¶ Export vector tile layer
Argument
Description
levels
Required string.Specifies the tiled service levels to export. The values should correspond to Level IDs. The values can be comma-separated values or a range of values. Ensure that the tiles are present at each specified level.
# Example: # Comma-separated values >>> levels=1,2,3,4,5,6,7,8,9 //Range values >>> levels=1-4, 7-9
export_extent
Dictionary of the extent (bounding box) of the vector tile package to be exported. The extent should be within the specified spatial reference. The default value is the full extent of the tiled map service.
# Example: >>> export_extent = { "xmin": -109.55, "ymin" : 25.76, "xmax": -86.39, "ymax" : 49.94, "spatialReference": {"wkid": 4326} }
polygon
Introduced at 10.7. A JSON representation of a polygon, containing an array of rings and a spatialReference.
# Example: polygon = { "rings": [ [[6453,16815],[10653,16423], [14549,5204],[-7003,6939], [6453,16815]],[[914,7992], [3140,11429],[1510,10525], [914,7992]] ], "spatialReference": {"wkid": 54004} }
max_export_tile_count
Optional float.
max_export_tile_count
sets the maximum amount of tiles to be exported from a single call.Note
The default value is 100000.
- Returns
A path to downloaded file
-
classmethod
fromitem
(item)¶ The
fromitem
method returns the layer at the specified index from a layerItem
object.Argument
Description
item
Required string. An item ID representing a layer.
index
Optional int. The index of the layer amongst the item’s layers
- Returns
The layer at the specified index.
# Usage Example >>> layer.fromitem(item="9311d21a9a2047d19c0faaebd6f2cca6", index=3)
-
property
info
¶ The
info
property retrieves the relative paths to a list of resource files.- Returns
A List of relative paths
-
property
manager
¶ The
manager
property returns an instance ofVectorTileLayerManager
class orEnterpriseVectorTileLayerManager
class which provides methods and properties for administering this service.
-
property
styles
¶
-
tile_fonts
(fontstack, stack_range)¶ The
tile_fonts
method retrieves glyphs in protocol buffer format.Note
The template url for this fonts resource is represented in Vector Tile Style resource.
- Returns
Glyphs in PBF format
-
tile_sprite
(out_format='sprite.json')¶ The
tile_sprite
resource retrieves sprite images and metadata- Returns
Sprite image and metadata.
-
vector_tile
(level, row, column)¶ The
vector_tile
method represents a single vector tile for the map.Note
The bytes for the tile at the specified level, row and column are returned in PBF format. If a tile is not found, an error is returned.
- Returns
Bytes in PBF format
-
VectorTileLayerManager¶
-
class
arcgis.mapping.
VectorTileLayerManager
(url, gis=None, vect_tile_lyr=None)¶ Bases:
arcgis.gis._GISResource
The
VectorTileLayerManager
class allows administration (if access permits) of ArcGIS Online hosted vector tile layers. AVectorTileLayer
offers access to layer content.Note
Url must be admin url such as: https://services.myserver.com/arcgis/rest/admin/services/serviceName/VectorTileServer/
-
cancel_job
(job_id)¶ The cancel operation supports cancelling a job while update tiles is running from a hosted feature service. The result of this operation is a response indicating success or failure with error code and description.
-
delete_job
(job_id)¶ This operation deletes the specified asynchronous job being run by the geoprocessing service. If the current status of the job is SUBMITTED or EXECUTING, it will cancel the job. Regardless of status, it will remove all information about the job from the system. To cancel a job in progress without removing information, use the Cancel Job operation.
-
delete_tiles
(levels, extent=None)¶ The
delete_tiles
method deletes tiles from the current cache.Argument
Description
extent
Optional dictionary, If specified, the tiles within this extent will be deleted or will be deleted based on the service’s full extent.
levels
Required string, The level to delete. Example, 0-5,10,11-20 or 1,2,3 or 0-5
- Returns
A dictionary
# USAGE EXAMPLE >>> from arcgis.mapping import VectorTileLayer >>> from arcgis.gis import GIS # connect to your GIS >>> gis = GIS(url, username, password) >>> vector_layer_item = gis.content.get('abcd_item-id') >>> vector_tile_layer = VectorTileLayer.fromitem(vector_layer_item) >>> vtl_manager = vector_tile_layer.manager >>> deleted_tiles = vtl_manager.delete_tiles(levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} } ) >>> type(deleted_tiles)
-
edit_tile_service
(source_item_id=None, export_tiles_allowed=None, min_scale=None, max_scale=None, max_export_tile_count=None, service_name=None)¶ The edit operation enables editing the service exportTilesAllowed, export_tile_count, max_scale, and min_scale properties. Allowed for Enterprise and ArcGIS Online
Argument
Description
source_item_id
Required String. The Source Item ID is the GeoWarehouse Item ID of the tile service
export_tiles_allowed
Optional boolean.
exports_tiles_allowed
sets the value to let users export tilesmin_scale
Optional float. Sets the services minimum scale for caching.
max_scale
Optional float. Sets the services maximum scale for caching.
max_export_tile_count
Optional int.
max_export_tile_count
sets the maximum amount of tiles to be exported from a single call.service_name
Optional String. Name of the service to edit. This only only applies for enterprise.
# USAGE EXAMPLE >>> from arcgis.mapping import VectorTileLayer >>> from arcgis.gis import GIS # connect to your GIS and get the tile layer item >>> gis = GIS(url, username, password) >>> vector_layer_item = gis.content.get('abcd_item-id') >>> vector_tile_layer = VectorTileLayer.fromitem(vector_layer_item) >>> vtl_manager = vector_tile_layer.manager >>> vtl_manager.edit_tile_service(service_name = "vector_layer_name", min_scale = 50, max_scale = 100, source_item_id = "geowarehouse_item_id", export_tiles_allowed = True, max_Export_Tile_Count = 10000 )
-
job_statistics
(job_id)¶ The tile service job summary (jobs) resource represents a summary of all jobs associated with a vector tile service. Each job contains a jobid that corresponds to the specific jobid run and redirects you to the Job Statistics page.
-
jobs
()¶ The tile service job summary (jobs) resource represents a summary of all jobs associated with a vector tile service. Each job contains a jobid that corresponds to the specific jobid run and redirects you to the Job Statistics page.
-
rebuild_cache
()¶ The rebuild_cache operation update the vector tile layer cache to reflect any changes made to the feature layer used to publish this vector tile layer. The results of the operation is a response indicating success, which redirects you to the Job Statistics page, or failure.
-
refresh
()¶ The refresh operation clears and refreshes the service cache.
-
rerun_job
(code, job_id)¶ The
rerun_job
operation supports re-running a canceled job from a hosted map service. The result of this operation is a response indicating success or failure with error code and description.Argument
Description
code
required string, parameter used to re-run a given jobs with a specific error code:
ALL | ERROR | CANCELED
job_id
required string, job to reprocess
- Returns
A boolean or dictionary
-
status
()¶ The status operation returns whether a service is started (available) or stopped.
-
swap
(target_service_name)¶ The swap operation replaces the current service cache with an existing one.
Note
The
swap
operation is for ArcGIS Online only.Argument
Description
target_service_name
Required string. Name of service you want to swap with.
- Returns
dictionary indicating success or error
-
update_tiles
(levels=None, extent=None)¶ The update_tiles operation supports updating the cooking extent and cache levels in a hosted vector tile service. The results of the operation is a response indicating success, which redirects you to the Job Statistics page, or failure.
Note
The
update_tiles
operation is for ArcGIS Online only.Argument
Description
levels
Optional String / List of integers, The level of details to update. Example: “1,2,10,20” or [1,2,10,20]
extent
Optional String / Dict. The area to update as Xmin, YMin, XMax, YMax example: “-100,-50,200,500” or {‘xmin’:100, ‘ymin’:200, ‘xmax’:105, ‘ymax’:205}
- Returns
Dictionary. If the product is not ArcGIS Online tile service, the result will be None.
# USAGE EXAMPLE >>> from arcgis.mapping import VectorTileLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> vector_layer_item = gis.content.get('abcd_item-id') >>> vector_tile_layer = VectorTileLayer.fromitem(vector_layer_item) >>> vtl_manager = vector_tile_layer.manager >>> update_tiles = vtl_manager.update_tiles(levels = "11-20", extent = {"xmin":6224324.092137296, "ymin":487347.5253569535, "xmax":11473407.698535524, "ymax":4239488.369818687, "spatialReference":{"wkid":102100} } ) >>> type(update_tiles) <Dictionary>
-
EnterpriseVectorTileLayerManager¶
-
class
arcgis.mapping.
EnterpriseVectorTileLayerManager
(url, gis=None, vect_tile_lyr=None)¶ Bases:
arcgis.gis._GISResource
The
VectorTileLayerManager
class allows administration (if access permits) of ArcGIS Enterprise hosted vector tile layers. AVectorTileLayer
offers access to layer content...note:: Url must be admin url such as: https://services.myserver.com/arcgis/rest/admin/services/serviceName/VectorTileServer/
-
change_provider
(provider: str)¶ Allows for the switching of the service provide and how it is hosted on the ArcGIS Server instance.
Values:
‘ArcObjects’ means the service is running under the ArcMap runtime i.e. published from ArcMap
ArcObjects: means the service is running under the ArcGIS Pro runtime i.e. published from ArcGIS Pro
DMaps: means the service is running in the shared instance pool (and thus running under the ArcGIS Pro provider runtime)
- Returns
Boolean
-
delete
()¶ deletes a service from arcgis server
-
edit
(service_dictionairy)¶ To edit a service, you need to submit the complete JSON representation of the service, which includes the updates to the service properties. Editing a service causes the service to be restarted with updated properties.
Argument
Description
service_dictionairy
Required dict. The service JSON as a dictionary.
- Returns
boolean
-
start
()¶ starts the specific service
-
stop
()¶ stops the specific service
-
Working with OGC layers¶
arcgis.mapping.ogc¶
Working with Map Forms¶
arcgis.mapping.forms¶
Utility Functions for Mapping¶
export_map¶
-
arcgis.mapping.
export_map
(web_map_as_json: str = None, format: str = 'PDF', layout_template: str = 'MAP_ONLY', gis=None)¶ The
export_map
function takes the state of theWebMap
object (for example, included services, layer visibility settings, client-side graphics, and so forth) and returns either (a) a page layout or (b) a map without page surrounds of the specified area of interest in raster or vector format. The input for this function is a piece of text in JavaScript object notation (JSON) format describing the layers, graphics, and other settings in the web map. The JSON must be structured according to the WebMap specification in the ArcGIS Help.Note
The
export_map
tool is shipped with ArcGIS Server to support web services for printing, including the preconfigured service namedPrintingTools
.Argument
Description
web_map_as_json
Web Map JSON along with export options. See the Export Web Map Specifications for more information on structuring this JSON.
format
Format (str). Optional parameter. The format in which the map image for printing will be delivered. The following strings are accepted. For example:PNG8 Choice list:[‘PDF’, ‘PNG32’, ‘PNG8’, ‘JPG’, ‘GIF’, ‘EPS’, ‘SVG’, ‘SVGZ’]
layout_template
Layout Template (str). Optional parameter. Either a name of a template from the list or the keyword MAP_ONLY. When MAP_ONLY is chosen or an empty string is passed in, the output map does not contain any page layout surroundings (for example title, legends, scale bar, and so forth). Choice list:[‘A3 Landscape’, ‘A3 Portrait’, ‘A4 Landscape’, ‘A4 Portrait’, ‘Letter ANSI A Landscape’, ‘Letter ANSI A Portrait’, ‘Tabloid ANSI B Landscape’, ‘Tabloid ANSI B Portrait’, ‘MAP_ONLY’]. You can get the layouts configured with your GIS by calling the :meth:get_layout_templates<arcgis.mapping.get_layout_templates> function
gis
The :class:GIS<arcgis.gis.GIS> to use for printing. Optional parameter. When not specified, the active GIS will be used.
- Returns:
A dictionary with URL to download the output file.
get_layout_templates¶
-
arcgis.mapping.
get_layout_templates
(gis=None) → str¶ The
get_layout_templates
method returns the content of theGIS
object’s layout templates.Note
The layout templates are formatted as a dictionary.
Note
See the Get Layout Templates Info Task for additional help on the
get_layout_templates
method.Argument
Description
gis
Optional
GIS
object. TheGIS
on whichget_layout_templates
runs.Note
If
gis
is not specified, the active GIS is used.- Returns:
output_json
- The layout templates as Python dictionary
Symbology¶
The Symbology
class generates Symbol Types for the GIS
object.
-
arcgis.mapping.symbol.
create_symbol
(geometry_type, symbol_type=None, symbol_style=None, colors=None, **kwargs)¶ The
create_symbol
method generates a Symbol from a given set of parameters.creat_symbol
creates either aPicture
,Text
,Cartographic
, orSimple Symbol
based on a given set of parameters.Note
Each symbol type has a specific set of parameters that are excepted. There is a simplified input definition similar to matplotlib.
Required Argument
Description
geometry_type
required string. This can be
point
,line
,polygon
, ormultipoint
. It helps to ensure that the symbol created will be supported by that geometry type.Optional Argument
Description
symbol_type
optional string. This is the type of symbol the user needs to create. Valid inputs are: simple, picture, text, or carto. The default is simple.
symbol_style
optional string. This is the symbology used by the geometry. For example ‘s’ for a Line geometry is a solid line. And ‘-’ is a dash line.
Point Symbols
‘o’ - Circle (default)
‘+’ - Cross
‘D’ - Diamond
‘s’ - Square
‘x’ - X
Polyline Symbols
‘s’ - Solid (default)
‘-’ - Dash
‘-.’ - Dash Dot
‘-..’ - Dash Dot Dot
‘.’ - Dot
‘–’ - Long Dash
‘–.’ - Long Dash Dot
‘n’ - Null
‘s-’ - Short Dash
‘s-.’ - Short Dash Dot
‘s-..’ - Short Dash Dot Dot
‘s.’ - Short Dot
Polygon Symbols
‘s’ - Solid Fill (default)
‘’ - Backward Diagonal
‘/’ - Forward Diagonal
‘|’ - Vertical Bar
‘-’ - Horizontal Bar
‘x’ - Diagonal Cross
‘+’ - Cross
colors
optional string or list. This is the color scheme a user
can provide if the exact color is not needed, or a user can provide a list with the color defined as: [red, green blue, alpha]. The values red, green, blue are from 0-255 and alpha is a float value from 0 - 1. The default value is ‘jet’ color scheme.
cstep
optional integer. If provided, its the color location on the color scheme.
Simple Symbols
This is a list of optional parameters that can be given for point, line or polygon geometries.
Argument
Description
marker_size
optional float. Numeric size of the symbol given in points.
marker_angle
optional float. Numeric value used to rotate the symbol. The symbol is rotated counter-clockwise. For example, The following, angle=-30, in will create a symbol rotated -30 degrees counter-clockwise; that is, 30 degrees clockwise.
marker_xoffset
Numeric value indicating the offset on the x-axis in points.
marker_yoffset
Numeric value indicating the offset on the y-axis in points.
line_width
optional float. Numeric value indicating the width of the line in points
outline_style
Optional string. For polygon point, and line geometries , a customized outline type can be provided.
Allowed Styles:
‘s’ - Solid (default)
‘-’ - Dash
‘-.’ - Dash Dot
‘-..’ - Dash Dot Dot
‘.’ - Dot
‘–’ - Long Dash
‘–.’ - Long Dash Dot
‘n’ - Null
‘s-’ - Short Dash
‘s-.’ - Short Dash Dot
‘s-..’ - Short Dash Dot Dot
‘s.’ - Short Dot
outline_color
optional string or list. This is the same color as the colors property, but specifically applies to the outline_color.
Picture Symbol
This type of symbol only applies to Points, MultiPoints and Polygons.
Argument
Description
marker_angle
Numeric value that defines the number of degrees ranging from 0-360, that a marker symbol is rotated. The rotation is from East in a counter-clockwise direction where East is the 0 axis.
marker_xoffset
Numeric value indicating the offset on the x-axis in points.
marker_yoffset
Numeric value indicating the offset on the y-axis in points.
height
Numeric value used if needing to resize the symbol. Specify a value in points. If images are to be displayed in their original size, leave this blank.
width
Numeric value used if needing to resize the symbol. Specify a value in points. If images are to be displayed in their original size, leave this blank.
url
String value indicating the URL of the image. The URL should be relative if working with static layers. A full URL should be used for map service dynamic layers. A relative URL can be dereferenced by accessing the map layer image resource or the feature layer image resource.
image_data
String value indicating the base64 encoded data.
xscale
Numeric value indicating the scale factor in x direction.
yscale
Numeric value indicating the scale factor in y direction.
outline_color
optional string or list. This is the same color as the colors property, but specifically applies to the outline_color.
outline_style
Optional string. For polygon point, and line geometries , a customized outline type can be provided.
Allowed Styles:
‘s’ - Solid (default)
‘-’ - Dash
‘-.’ - Dash Dot
‘-..’ - Dash Dot Dot
‘.’ - Dot
‘–’ - Long Dash
‘–.’ - Long Dash Dot
‘n’ - Null
‘s-’ - Short Dash
‘s-.’ - Short Dash Dot
‘s-..’ - Short Dash Dot Dot
‘s.’ - Short Dot
outline_color
optional string or list. This is the same color as the colors property, but specifically applies to the outline_color.
line_width
optional float. Numeric value indicating the width of the line in points
Text Symbol
This type of symbol only applies to Points, MultiPoints and Polygons.
Argument
Description
font_decoration
The text decoration. Must be one of the following values: - line-through - underline - none
font_family
Optional string. The font family.
font_size
Optional float. The font size in points.
font_style
Optional string. The text style. - italic - normal - oblique
font_weight
Optional string. The text weight. Must be one of the following values: - bold - bolder - lighter - normal
background_color
optional string/list. Background color is represented as a four-element array or string of a color map.
halo_color
Optional string/list. Color of the halo around the text. The default is None.
halo_size
Optional integer/float. The point size of a halo around the text symbol.
horizontal_alignment
optional string. One of the following string values representing the horizontal alignment of the text. Must be one of the following values: - left - right - center - justify
kerning
optional boolean. Boolean value indicating whether to adjust the spacing between characters in the text string.
line_color
optional string/list. Outline color is represented as a four-element array or string of a color map.
line_width
optional integer/float. Outline size.
marker_angle
optional int. A numeric value that defines the number of degrees (0 to 360) that a text symbol is rotated. The rotation is from East in a counter-clockwise direction where East is the 0 axis.
marker_xoffset
optional int/float.Numeric value indicating the offset on the x-axis in points.
marker_yoffset
optional int/float.Numeric value indicating the offset on the x-axis in points.
right_to_left
optional boolean. Set to true if using Hebrew or Arabic fonts.
rotated
optional boolean. Boolean value indicating whether every character in the text string is rotated.
text
Required string. Text Value to display next to geometry.
vertical_alignment
Optional string. One of the following string values representing the vertical alignment of the text. Must be one of the following values: - top - bottom - middle - baseline
Cartographic Symbol
This type of symbol only applies to line geometries.
Argument
Description
line_width
optional float. Numeric value indicating the width of the line in points
cap
Optional string. The cap style.
join
Optional string. The join style.
miter_limit
Optional string. Size threshold for showing mitered line joins.
- Returns
Dictionary
-
arcgis.mapping.symbol.
display_colormaps
(colors=None)¶ The
display_colormaps
method displays a visual colormaps in order to assist users in selecting a color scheme for the data they wish to display on a map, or in a web map.Note
``display_colormaps is a variation of the colormaps reference page for matplotlib.
-
arcgis.mapping.symbol.
show_styles
(geometry_type)¶ The
show_styles
method retrieves the available styles for a given geometry type as a Pandas dataframe.- Returns
A Pandas Dataframe
generate_renderer¶
-
arcgis.mapping.renderer.
generate_renderer
(geometry_type, sdf_or_series=None, label=None, render_type=None, colors=None, **symbol_args)¶ Generates the Renderer JSON
Explicit Argument
Description
geometry_type
required string. The allowed values are:
Point
,Polyline
,Polygon
, orRaster
. This required parameter is used to help ensure the requested renderer is valid for the specific type of geometry.Geometry
Supported Renderer Types
Point
simple, unique, class breaks, heat map, temporal
Polyline
simple, unique, class break
Polygon
simple, unique, class break, dot density
Raster
stretched
The table above provides a quick summary based on the allowed renderer types based on the geometry.
sdf_or_series
optional Pandas Series. The spatial dataset to render.
label
optional string. Name of the layer in the TOC/Legend
render_type
optional string. Determines the type of renderer to use for the provided dataset. The default is ‘s’ which is for simple renderers.
Allowed values:
‘s’ - is a simple renderer that uses one symbol only.
- ‘u’ - unique renderer symbolizes features based on one
or more matching string attributes.
- ‘u-a’ - unique renderer symbolizes features based on
an arcade expression.
- ‘c’ - A class breaks renderer symbolizes based on the
value of some numeric attribute.
- ‘h’ - heatmap renders point data into a raster
visualization that emphasizes areas of higher density or weighted values.
‘d’ - dot density renderer
colors
optional string/list. Color mapping. For simple renderer, just provide a string. For more robust renderers like unique renderer, a list can be given.
** Simple Renderer**
A simple renderer is a renderer that uses one symbol only.
Optional Argument
Description
symbol_type
optional string. This is the type of symbol the user needs to create. Valid inputs are: simple, picture, text, or carto. The default is simple.
symbol_style
optional string. This is the symbology used by the geometry. For example ‘s’ for a Line geometry is a solid line. And ‘-’ is a dash line.
Point Symbols
‘o’ - Circle (default)
‘+’ - Cross
‘D’ - Diamond
‘s’ - Square
‘x’ - X
Polyline Symbols
‘s’ - Solid (default)
‘-’ - Dash
‘-.’ - Dash Dot
‘-..’ - Dash Dot Dot
‘.’ - Dot
‘–’ - Long Dash
‘–.’ - Long Dash Dot
‘n’ - Null
‘s-’ - Short Dash
‘s-.’ - Short Dash Dot
‘s-..’ - Short Dash Dot Dot
‘s.’ - Short Dot
Polygon Symbols
‘s’ - Solid Fill (default)
‘’ - Backward Diagonal
‘/’ - Forward Diagonal
‘|’ - Vertical Bar
‘-’ - Horizontal Bar
‘x’ - Diagonal Cross
‘+’ - Cross
description
Description of the renderer.
rotation_expression
A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it’s enclosed in square brackets.
rotation_type
String value which controls the origin and direction of rotation on point features. If the rotationType is defined as arithmetic, the symbol is rotated from East in a counter-clockwise direction where East is the 0 degree axis. If the rotationType is defined as geographic, the symbol is rotated from North in a clockwise direction where North is the 0 degree axis.
Must be one of the following values:
arithmetic
geographic
visual_variables
An array of objects used to set rendering properties.
Heatmap Renderer
The HeatmapRenderer renders point data into a raster visualization that emphasizes areas of higher density or weighted values.
Optional Argument
Description
blur_radius
The radius (in pixels) of the circle over which the majority of each point’s value is spread.
field
This is optional as this renderer can be created if no field is specified. Each feature gets the same value/importance/weight or with a field where each feature is weighted by the field’s value.
max_intensity
The pixel intensity value which is assigned the final color in the color ramp.
min_intensity
The pixel intensity value which is assigned the initial color in the color ramp.
ratio
A number between 0-1. Describes what portion along the gradient the colorStop is added.
Predominance/Unique Renderer
This renderer symbolizes features based on one or more matching string attributes.
Optional Argument
Description
background_fill_symbol
A symbol used for polygon features as a background if the renderer uses point symbols, e.g. for bivariate types & size rendering. Only applicable to polygon layers. PictureFillSymbols can also be used outside of the Map Viewer for Size and Predominance and Size renderers.
default_label
Default label for the default symbol used to draw unspecified values.
default_symbol
Symbol used when a value cannot be matched.
field1, field2, field3
Attribute field renderer uses to match values.
field_delimiter
String inserted between the values if multiple attribute fields are specified.
rotation_expression
A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it’s enclosed in square brackets. Rotation is set using a visual variable of type rotation info with a specified field or value expression property.
rotation_type
String property which controls the origin and direction of rotation. If the rotation type is defined as arithmetic the symbol is rotated from East in a counter-clockwise direction where East is the 0 degree axis. If the rotation type is defined as geographic, the symbol is rotated from North in a clockwise direction where North is the 0 degree axis. Must be one of the following values:
arithmetic
geographic
arcade_expression
An Arcade expression evaluating to either a string or a number.
arcade_title
The title identifying and describing the associated Arcade expression as defined in the valueExpression property.
visual_variables
An array of objects used to set rendering properties.
unique_values
Optional list of dictionaries. If you want to define the unique values listed in the renderer, specify the list using this variable. The format of each unique value is as follows:
- {
“value” : <value>, “label” : <label value>, “description” : <optional text description>, “symbol” : {…symbol…}
}
Class Breaks Renderer
A class breaks renderer symbolizes based on the value of some numeric attribute.
Optional Argument
Description
background_fill_symbol
A symbol used for polygon features as a background if the renderer uses point symbols, e.g. for bivariate types & size rendering. Only applicable to polygon layers. PictureFillSymbols can also be used outside of the Map Viewer for Size and Predominance and Size renderers.
default_label
Default label for the default symbol used to draw unspecified values.
default_symbol
Symbol used when a value cannot be matched.
method
Determines the classification method that was used to generate class breaks.
Must be one of the following values:
esriClassifyDefinedInterval
esriClassifyEqualInterval
esriClassifyGeometricalInterval
esriClassifyNaturalBreaks
esriClassifyQuantile
esriClassifyStandardDeviation
esriClassifyManual
field
Attribute field used for renderer.
min_value
The minimum numeric data value needed to begin class breaks.
normalization_field
Used when normalizationType is field. The string value indicating the attribute field by which the data value is normalized.
normalization_total
Used when normalizationType is percent-of-total, this number property contains the total of all data values.
normalization_type
Determine how the data was normalized.
Must be one of the following values:
esriNormalizeByField
esriNormalizeByLog
esriNormalizeByPercentOfTotal
rotation_expression
A constant value or an expression that derives the angle of rotation based on a feature attribute value. When an attribute name is specified, it’s enclosed in square brackets.
rotation_type
A string property which controls the origin and direction of rotation. If the rotation_type is defined as arithmetic, the symbol is rotated from East in a couter-clockwise direction where East is the 0 degree axis. If the rotationType is defined as geographic, the symbol is rotated from North in a clockwise direction where North is the 0 degree axis.
Must be one of the following values:
arithmetic
geographic
arcade_expression
An Arcade expression evaluating to a number.
arcade_title
The title identifying and describing the associated Arcade expression as defined in the arcade_expression property.
visual_variables
An object used to set rendering options.
Dot Density Renderer
A class breaks renderer symbolizes based on the value of some numeric attribute.
Optional Argument
Description
attributes
Required List. The fields, labels and colors to add to the web map. The list consists of dictionarys with the following keys:
Argument
Description
field
Required String. Name of the dataset field
label
Required String. Descriptive name of the field.
color
Required List. A integer array consisting of R,G,B,A values
If the field name is not in the SeDF, then an error will be raised on renderering.
dot_value
Required Float. The unit value of what 1 dot equals.
ref_scale
Required Int. The reference scale of the dots.
unit
Required string. A label of the unit which each dot means.
blend_dots
Optional boolean. Allows for the dots to overlap.
size
Optional float. The size of the dot on the density map.
background
Optional List. A color background as a list of [r,g,b,a] values. The default is no background [0,0,0,0].
- Returns
A dictionary of the renderer.
visual_variables¶
-
arcgis.mapping.renderer.
visual_variables
(geometry_type, sdf_or_list, **kwargs)¶ The
visual_variables
function is used to create visual variables for theGIS
object.visual_variables
allows developers to take a deep dive into developing custom renderer. Here a user/developer can create transparency, size information, and other rules to improve the overall feel and look of spatial information on a map.Note
Each type of information is detailed in the tables below.
optional variables
description
trans_info_field
Attribute field used for setting the transparency of a feature if no trans_value_exp is provided.
trans_norm_field
Attribute field used to normalize the data.
trans_stops
An array of transparency stop objects.
trans_value_exp
An Arcade expression evaluating to a number.
trans_exp_title
The title identifying and describing the associated Arcade expression as defined in the valueExpression property.
Size Info Visual Variable
The size Info visual variable defines how size is applied to features based on the values of a numeric field attribute. The minimum and maximum values of the data should be indicated along with their respective size values. You must specify minSize and maxSize or stops to construct the size ramp. All features with values falling in between the specified min and max data values (or stops) will be scaled proportionally between the provided min and max sizes.
arguements
description
si_field
Attribute field used for size rendering if no si_expression is provided.
si_max_data_value
The maximum data value.
si_max_size
Specifies the largest marker size to use at any given map scale. Can be either a fixed number or object, depending on whether the user chose a fixed range or not.
si_min_data_value
The minimum data value.
si_min_size
Specifies the smallest marker size to use at any given map scale. Can be either a fixed number or object, depending on whether the user chose a fixed range or not.
si_norm_field
Attribute field used to normalize the data.
si_stops
An array of objects that defines the thematic size ramp in a sequence of data or expression stops.
si_target
Only used when sizeInfo is used for polygon outlines. Value of this property must be outline
si_expression
An Arcade expression evaluating to a number
si_expression_title
the title identifying and describing the associated Arcade expression
si_value_unit
A string value indicating the required unit of measurement.
Rotation Info Visual Variable
A rotation variable is a visual variable that defines the rotation of a symbol based on a numeric data value returned from a field or expression. This value is typically used to rotate symbols that indicate directionality.
arguements
description
ri_field
Attribute field used for setting the rotation of a symbol if no ri_expression is provided.
ri_type
Defines the origin and direction of rotation depending on how the angle of rotation was measured. Possible values are geographic which rotates the symbol from the north in a clockwise direction and arithmetic which rotates the symbol from the east in a counter-clockwise direction. Must be one of the following values:
geographic
arithmetic
ri_expression
An Arcade expression evaluating to a number.
ri_expression_title
The title identifying and describing the ri_expression