摘要
列出指定 ArcGIS Server 的地图服务名称。
说明
此方法自 ArcGIS 10.1 for Server 和 ArcGIS 10.1 for Desktop 起已弃用并会返回运行时错误。
ArcGIS 10.1 for Server 具有全新架构,这种架构可能要求您调整服务器的使用方式。有关详细信息,请参阅以下帮助主题:迁移至 ArcGIS Server 时可能出现的情况。
您可以使用 ArcGIS 站点目录中的 ArcGIS Server Administrator API 列出地图服务。ArcGIS Server 站点目录的默认 URL 如下所示:
http://<服务器名称>:6080/arcgis/admin
下面演示了使用 Python 和 ArcGIS Server Administrator API 列出地图服务:
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 Server REST API 列出地图服务。ArcGIS Server 服务目录的默认 URL 如下所示:
http://<服务器名称>:6080/arcgis/rest/services
要初步了解如何使用 ArcGIS Server 服务目录和 REST API,请参阅服务目录中的帮助。
下面演示了使用 Python 和 ArcGIS 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()
语法
ListMapServices (connection_url_or_name, server, {connection_username}, {connection_password}, {connection_domain})
参数 | 说明 | 数据类型 |
connection_url_or_name | 表示您想要从中获取服务列表的 ArcGIS Server URL 的字符串。 | String |
server | 表示 ArcGIS Server 主机名称的字符串。 | String |
connection_username | 表示用于连接到 ArcGIS Server 的用户名的字符串。为获取地图服务列表,该用户名应为 ArcGIS Server 管理员组的成员。只有在连接到 UNIX/Linux ArcGIS Server 时才需要此变量。 (默认值为 None) | String |
connection_password | 表示用于连接到 ArcGIS Server 的密码的字符串。只有在连接到 UNIX/Linux ArcGIS Server 时才需要此变量。 (默认值为 None) | String |
connection_domain | 表示用于连接到 ArcGIS Server 的域名的字符串。只有在连接到 UNIX/Linux ArcGIS Server 时才需要此变量。 (默认值为 None) | String |
返回值
数据类型 | 说明 |
List | 地图服务的 Python 列表。 |