获取地图列表

发送反馈


maps 资源是 SuperMap iServer 服务器上包含所有地图资源的集合,通过对它执行 GET 请求能够得到 SuperMap iServer 服务器提供的地图信息。

maps 资源: http://localhost:8090/iserver/services/map-china400/rest/maps.json 执行 GET 请求,其中,localhost 是服务器名(这里是本机启动的服务),后缀 .json 设置返回的表述为 JSON 格式,构建 getMapsList()方法代码如下:

function getMapsList()

{

//获取 XMLHttpRequest 对象

var commit=getcommit();

//HTTP 请求的方法类型,这里是 GET

var method="GET";

//请求的地址

var url="http://localhost:8090/iserver/services/map-china400/rest/maps.json";

//设置是否为异步通信

var async=false;

//用户名和密码,当服务器需要验证时指定

var user="";

var password="";

//消息体(Entity Body)内容

var entry=null;

//建立 HTTP 连接,对 url 进行编码以保证 URI 的正确性。

commit.open(method,encodeURI(url),async,user,password);

//设置消息头(Message Headers)

commit.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

//发送 HTTP 请求

commit.send(entry);

//commit.responseText 就是接收的服务器响应

}

对服务器端返回的内容进行处理,就需要了解服务器端返回的 JSON 字符串的结构,可参考 REST API 帮助中的maps 资源页面

由 maps 资源的响应结构可知,我们可以获取地图集合中元素的 name 和 path 字段,在 getMapsList()方法中添加代码如下:

//解析从服务器端返回的 json 字符串,解析为一个 JavaScript 对象。

var response = json_parse(commit.responseText, null);

//获取用作显示的 Div 容器。

var container = document.getElementById('container');

//获取地图的个数

var len=response.length;

container.innerHTML="";

for(var i=0;i<len;i++)

{

container.innerHTML += '<li>地图名:' + response[i].name + ',访问路径:' + response[i].path + '</li>';

}        

结果如下: