ListMapServices (arcpy.mapping)
摘要
此方法自 ArcGIS 10.1 for Server 和 ArcGIS 10.1 for Desktop 起已弃用并会返回运行时错误。有关新的 ArcGIS for Server Administrator API 的使用方法,请查阅 ArcGIS 文档。
列出指定 ArcGIS for Server 的地图服务名称。
讨论
此方法自 ArcGIS 10.1 for Server 和 ArcGIS 10.1 for Desktop 起已弃用并会返回运行时错误。
ArcGIS 10.1 for Server 具有全新架构,这种架构可能要求您调整服务器的使用方式。有关详细信息,请参阅以下帮助主题:迁移至 ArcGIS for Server 时可能出现的情况。
您可以使用 ArcGIS 站点目录中的 ArcGIS for Server Administrator API 列出地图服务。ArcGIS for Server 站点目录的默认 URL 如下所示:
http://<服务器名称>:6080/arcgis/admin
如果您已将 ArcGIS for Server Web Adaptor 配置为与您的站点配合使用,则 Site Directory 的 URL 可能会有所不同。例如,可能不需要端口号 6080。检查 Web Adaptor 配置以获得正确的 URL。
下面演示了使用 Python 和 ArcGIS for Server Administrator API 列出地图服务:
有关生成 ArcGIS for Server 令牌的代码示例,请参阅:DeleteMapService。
import json, urllib2
server = "<server>"
port = "6080"
token = '<token string>'
baseUrl = "http://{}:{}/arcgis/admin/services".format(server, port)
def getCatalog(token):
catalog = json.load(urllib2.urlopen(baseUrl + "/" + "?f=json&token=" + token))
print 'Root'
if "error" in catalog: return
services = catalog['services']
for service in services:
response = json.load(urllib2.urlopen(baseUrl + '/' + service['serviceName'] + '/' + service['type'] + "?f=json&token=" + token))
print ' %s %s (%s)' % (service['serviceName'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')
folders = catalog['folders']
for folderName in folders:
catalog = json.load(urllib2.urlopen(baseUrl + "/" + folderName + "?f=json&token=" + token))
print folderName
if "error" in catalog: return
services = catalog['services']
for service in services:
response = json.load(urllib2.urlopen(baseUrl + '/' + service['serviceName'] + '/' + service['type'] + "?f=json&token=" + token))
print ' %s %s (%s)' % (service['serviceName'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')
getCatalog(token)
您也可以使用 ArcGIS 服务目录中的 ArcGIS for Server REST API 列出地图服务。ArcGIS for Server 服务目录的默认 URL 如下所示:
http://<服务器名称>:6080/arcgis/rest/services
要初步了解如何使用 ArcGIS for Server 服务目录和 REST API,请参阅服务目录中的帮助。
下面演示了使用 Python 和 ArcGIS for Server REST API 列出地图服务:
import json, urllib2
server = "<server>"
port = "6080"
baseUrl = "http://{}:{}/arcgis/rest/services".format(server, port)
def getCatalog():
catalog = json.load(urllib2.urlopen(baseUrl + "/" + "?f=json"))
print 'ROOT'
if "error" in catalog: return
services = catalog['services']
for service in services:
response = json.load(urllib2.urlopen(baseUrl + '/' + service['name'] + '/' + service['type'] + "?f=json"))
print ' %s %s (%s)' % (service['name'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')
folders = catalog['folders']
for folderName in folders:
catalog = json.load(urllib2.urlopen(baseUrl + "/" + folderName + "?f=json"))
print folderName
if "error" in catalog: return
services = catalog['services']
for service in services:
response = json.load(urllib2.urlopen(baseUrl + '/' + service['name'] + '/' + service['type'] + "?f=json"))
print ' %s %s (%s)' % (service['name'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')
getCatalog()
语法
参数 | 说明 | 数据类型 |
connection_url_or_name |
A string that represents the URL of the ArcGIS for Server to which you want to get a list of services. | String |
server |
A string that represents the ArcGIS for Server host name. | String |
connection_username |
A string that represents a user name used to connect to the ArcGIS for Server. In order to get a list of map services this user name should be a member of the ArcGIS for Server admin group. This variable is only necessary when connecting to a UNIX/Linux ArcGIS for Server. (默认值为 None) | String |
connection_password |
A string that represents a password used to connect to the ArcGIS for Server. This variable is only necessary when connecting to a UNIX/Linux ArcGIS for Server. (默认值为 None) | String |
connection_domain |
A string that represents a domain name used to connect to the ArcGIS for Server. This variable is only necessary when connecting to a UNIX/Linux ArcGIS for Server. (默认值为 None) | String |
数据类型 | 说明 |
List |
地图服务的 Python 列表。 |