Openlayers 2.X加载天地图
来源:互联网 发布:visio 数据流程图 编辑:程序博客网 时间:2024/04/28 07:08
概述:
在前面的章节,讲到了Arcgis for js加载天地图,在本节讲述如何在Openlayers 2.X的版本中加载天地图,并添加自己的wms服务。
效果:
地图
影像
地形
去掉本地wms
实现:
1、天地图服务
在天地图的官方网站上,我们可以看到如下所示的:
页面上列出了我们可调用的图的url,网站地址为:http://www.tianditu.com/guide/index.html。
2、加载天地图
在openlayers中加载天地图可用OpenLayers.Layer.XYZ来实现,在此,我将之封装成了两个函数,getBaseLayer和getAnnoLayer,分别实现基础底图和标注图层,代码如下:
function getBaseLayer(layername, layer){ return new OpenLayers.Layer.XYZ( layername, [ "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}" ], { isBaseLayer: true, displayInLayerSwitcher:true } ); }; function getAnnoLayer(layername, layer, visiable){ return new OpenLayers.Layer.XYZ( layername, [ "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}" ], { isBaseLayer: false, visibility:visiable, displayInLayerSwitcher:false } ); };调用方式为:
var baseLayers = ["vec_c","img_c","ter_c"]; var vecLayer = getBaseLayer("地图",baseLayers[0]); var imgLayer = getBaseLayer("影像",baseLayers[1]); var terLayer = getBaseLayer("地形",baseLayers[2]); var vecAnno = getAnnoLayer("地图标注", "cva_c", true);
完整代码如下:
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"><meta name="apple-mobile-web-app-capable" content="yes"><title>OpenLayers MapQuest Demo</title> <link rel="stylesheet" type="text/css" href="http://200.200.200.222/OpenLayers-2.12/theme/default/style.css"/> <style type="text/css"> html, body, #map{ padding:0; margin:0; height:100%; width:100%; } </style> <script type="text/javascript" src="http://200.200.200.222/OpenLayers-2.12/OpenLayers.js"></script> <script type="text/javascript"> var map; function init(){ function getBaseLayer(layername, layer){ return new OpenLayers.Layer.XYZ( layername, [ "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}" ], { isBaseLayer: true, displayInLayerSwitcher:true } ); }; function getAnnoLayer(layername, layer, visiable){ return new OpenLayers.Layer.XYZ( layername, [ "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}", "http://t0.tianditu.com/DataServer?T="+layer+"&X=${x}&Y=${y}&L=${z}" ], { isBaseLayer: false, visibility:visiable, displayInLayerSwitcher:false } ); }; var baseLayers = ["vec_c","img_c","ter_c"]; var vecLayer = getBaseLayer("地图",baseLayers[0]); var imgLayer = getBaseLayer("影像",baseLayers[1]); var terLayer = getBaseLayer("地形",baseLayers[2]); var vecAnno = getAnnoLayer("地图标注", "cva_c", true); map = new OpenLayers.Map({ div: "map", projection: "EPSG:4326", layers: [vecLayer,imgLayer,terLayer], numZoomLevels:20, center: [103.847, 36.0473], zoom: 4 }); map.addControl(new OpenLayers.Control.LayerSwitcher()); map.addControl(new OpenLayers.Control.MousePosition()); var wms = new OpenLayers.Layer.WMS( "省级行政区", "http://200.200.200.220:8080/geoserver/wms", { LAYERS: "pro", transparent:true }, { singleTile: false, ratio: 1, isBaseLayer: false, visibility:true, yx : {'EPSG:4326' : true} } ); map.addLayer(wms); map.addLayers([vecAnno]); } </script></head><body onload="init()"> <div id="map"></div></body>
0 0
- Openlayers 2.X加载天地图
- Openlayers离线加载天地图
- OpenLayers 3 之 加载天地图
- OpenLayers 3 之 加载天地图
- OpenLayers 加载山东天地图(WMTS)
- OpenLayers 3 加载WMTS天地图
- OpenLayers 3 +天地图展示
- 使用OpenLayers叠加天地图
- Openlayers加载天地图魔卡托投影瓦片示例
- Openlayers 2.X加载高德地图
- 使用openlayers 3 在线加载天地图及GeoServer发布的地图
- 使用OpenLayers访问天地图WFS数据
- OpenLayers调用天地图在线服务
- openlayers叠加天地图经纬度投影瓦片
- Openlayers3加载天地图
- leaflet加载天地图
- openlayer4加载天地图
- 天地图专题一:加载天地图
- Spring+CXF开发WebService
- F5刷新你所不知道的知识
- Lucene连接数据库进行全文搜索初探(一)
- 虚函数和纯虚函数的区别
- Matlab中创建一个矩阵的3种常用方法
- Openlayers 2.X加载天地图
- Java实现最大公约数的算法代码
- JAVA学习笔记(十九)- 异常
- (总结)Linux服务器上最简单的Nginx反向代理配置
- Cocos2dx 3.0 实现触摸屏蔽事件
- vim學習筆記(Day 1)
- 定位API
- 怎么样才能学好C++?
- (NSScanner的使用)替换服务器获取的JSON数据中的换行符(JSON是不能解析带有换行符字符串)