Openlayers连接arcgisonline.cn的rest地图
作者:mofangbao 发布:2013-11-25 11:38 分类:javascript 阅读:2,182次 抢沙发
最近工作上要倒腾Openlayers相关的东西,于是找了本参考手册先看着,我相信磨刀不误砍柴工,想把基础的弄懂是有必要的,但是因为之前用到arcgis免费服务做测试的时候,都是直接用的arcgis的api,因此都没去考虑具体的请求参数,这次用Openlayers(以下简称OL)连接就不是这样了,刚刚把WMS的服务弄个8成熟,又遇到了rest服务的问题,比如下面这个在线服务:
http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer
如果直接在OL中使用这个链接是怎么也取不到数据的,比如:
1 2 3 4 5 6 |
function init(){ map=new OpenLayers.Map('map',{}); var layer_rest=new OpenLayers.Layer.ArcGIS93Rest( 'rest', 'http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer' ); |
因为rest服务使用需要定义操作的类型,比如是export也就是导出图片,因此需要用这个:
http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/export
然后再至少带上需要获取的图层信息,也就是 layers参数,比如:{layers:’show:0′}
这个表示要取ID为0的图层来显示,图层的ID可以从rest服务的页面中获取:
点击上面的China连接,在出现的页面中有这个图层的详细信息。
这样的初始代码就是可用的:
1 2 3 4 5 6 7 8 9 10 11 |
function init(){ map=new OpenLayers.Map('map',{}); var layer_rest=new OpenLayers.Layer.ArcGIS93Rest( 'rest', 'http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer/export', {layers:'show:0'} ); map.addLayers([layer_rest]); map.setCenter(new OpenLayers.LonLat(115,35), 5); } |
地图显示如下:
另外找到一个REST服务的可用参数文档,挺有用的:
http://wenku.baidu.com/link?url=hk83eoBwEu31EiFBGHDBCX1Si3fBdPdBf2Hep_NdFT-OXg4adibE_3E9SB06dbtKYXmlCUyDkXLBYXjHI4eRpQh2ziuLZJU7I8ZEwp44psi