由于Arcgis的普及,经常会使用ArcgisServer对地图进行切片,且缓存在本地。如果能使用开源工具对该本地缓存进行加载的话,有时候能够节省不少精力和时间,因此本人对openlayers加载arcgis本地切片进行了总结,上代码:

   /*   *************************************************************************************opnelyers加载arcgis生成的离线切片,通过独立的geowebcache发布*********************** ***/ //对应源代码中的投影var projection = ol.proj.get('EPSG:4326')//对应源代码中的源信息var origin = [-2.0037508342787E7, 2.0037508342787E7]//对应源代码中的全图范围信息var fullExtent = [-20037508.342787,-20037508.342781033,20037508.342781033,20037508.342787]//对应源代码中的切片方案信息var resolutions = [156543.03392800014, 78271.51696399994, 39135.75848200009, 19567.87924099992, 9783.93962049996, 4891.96981024998, 2445.98490512499, 1222.992452562495, 611.4962262813797, 305.74811314055756, 152.87405657041106, 76.43702828507324, 38.21851414253662, 19.10925707126831, 9.554628535634155, 4.77731426794937, 2.388657133974685, 1.1943285668550503, 0.5971642835598172, 0.29858214164761665]var tileGrid = new ol.tilegrid.TileGrid({tileSize: 256,origin: origin,extent: fullExtent,resolutions: resolutions})//url是本地的geowebcache的地址//params中 Layers是对应的服务名称,format是图片格式,SRS是地图的坐标系//view中中心坐标填写,上述查看的中心坐标//view的resolution填写切片方案数组中的其中一个数字。var map = new ol.Map({target: 'map',layers: [new ol.layer.Tile({source: new ol.source.TileWMS({url: "http://localhost:8080/geowebcache/service/wms",params: {'LAYERS': 'yantianzhan', format: 'image/png', SRS: 'EPSG:3857'},tileGrid: tileGrid})})],view: new ol.View({center: [12718306.88608,2582748.73684],resolutions: resolutions,resolution: 0.00475892201166056,projection: 'EPSG:3857',extent: fullExtent})})/*直接加载arcgis发布的离线切片,缺点:如果是矢量数据,切片样式也是白底的影像图,但是切片级别不高的话,清晰度就不够*/var map = new ol.Map({layers: [],target: 'map',view: new ol.View({center: [114.23771356083947,22.56698437084834],zoom: 14,//根据切片有数据的层级进行设置projection: 'EPSG:4326'})});// ol.source.XYZ添加瓦片地图的层var tileLayer = new ol.layer.Tile({source: new ol.source.XYZ({tileUrlFunction: function (tileCoord) {console.log(tileCoord);//alert(tileCoord[0] + " X= " + tileCoord[1] + " Y= " + tileCoord[2]);var oo = "00000000";var zz = tileCoord[0];var z = "L" + zz;var xx = tileCoord[1].toString(16);var x = "C" + oo.substring(0, 8 - xx.length) + xx;var yy = (-tileCoord[2] - 1).toString(16); //注意此处,计算方式变了var y = "R" + oo.substring(0, 8 - yy.length) + yy;return  'D:/szdt_Tiledata/szdt_CAD_lianwuqujian/yantianlayer/_alllayers/' + z + '/' + y + '/' + x + '.png';},projection: 'EPSG:3857'//注意这里的坐标系统,通过conf.xml配置文件获取。})});map.addLayer(tileLayer)

其中geowebcache 的resolutions的获取在打开geowebcache的tile excample 页面中对应的服务图层页面,点击进去后,查看网页源代码就能看到该图层服务的resolutions。

参考链接:https://blog.csdn.net/LoveCarpenter/article/details/80743052

openlayers加载本地arcgis切片(explodes)的两种方式,利用geowebcache进行发布和直接读取本地切片相关推荐

  1. ie加载项存在残留是什么_Win7系统遇到IE加载项故障的原因及两种解决办法

    在我们使用的系统中,都是有自带的IE浏览器,当然在我们使用的Win7系统中也不例外,可是在使用浏览器的过程中,也会出现各种各样的情况,在出现问题的时候就要看你怎样进行解决了.而最近就有用户反映,在IE ...

  2. Unity 加载AssetBundle中AB包的几种方式

    前言: 在unity中创建一个Cube,设置成预制体,生成AssetBundle中AB包,生成包代码如下: BuildPipeline.BuildAssetBundles(dir,BuildAsset ...

  3. html5页面加载执行动作,页面加载完成后执行JS的5种方式

    在js和jquery使用中,常用到页面加载完成后执行某一方法.经过整理,大概是五种方式.javascript 1.jQuery的$( function(){} );html 2.jQuery的$(do ...

  4. pytorch加载自己的图片数据集的两种方法

    目录 ImageFolder 加载数据集 使用pytorch提供的Dataset类创建自己的数据集. Dataset加载数据集 接下来我们就可以构建我们的网络架构: 训练我们的网络: 保存网络模型(这 ...

  5. 【PyQt】pyqt加载调用ui界面文件的两种方法

    使用PyQt开发界面软件,自然会用到Qt Designer进行界面设计,拖拖按钮.设置菜单什么的,然后保存为 .ui 文件.但是在 Python 代码里面如何使用这些 .ui 文件呢? 有两种方法: ...

  6. OpenLayers 6 代码绘制/draw交互组件绘制两种方式绘制椭圆过程详解

    引言 OpenLayers可以通过代码绘制多种几何形状,也可以通过draw类型的交互组件绘制几何形状,官方实例提供了类如圆.折线.矩形.星形等方法.除此之外,椭圆这种图形其实也是非常常见的几何图形,但 ...

  7. Openlayers加载离线地图Arcgis瓦片

    文章目录 一.介绍 二.快速入门 一.下载地图瓦片 二.OpenLayers加载离线Arcgis瓦片 一.介绍 OpenLayers 是一个专为Web GIS 客户端开发提供的JavaScript 类 ...

  8. 优化OpenLayers加载ArcGIS切片服务的解决方案

    优化Openlayers加载切片服务(EPSG:4490) 使用  TileArcGISRest 加载服务时地址如下: https://sampleserver1.arcgisonline.com/A ...

  9. 开源GIS(二)——openlayers加载Arcgis和geoserver在线离线切片

    一.引言 开始开源gis的不归路,第一课便是加载底图,底图目前主流的都是wmts,以后会研究一下wms,本文介绍了普通网络在线切片(如谷歌百度高德等).Arcgis在线切片与离线切片.openlaye ...

最新文章

  1. R使用abline()函数在图中添加额外的直线
  2. [SpringBoot]全局异常处理
  3. 一个简单的blog系统(九) 增加标签和标签页面
  4. Mysql事务和锁原理
  5. 使用jstat的JVM统计信息
  6. java同名函数_浅谈Java 继承接口同名函数问题
  7. python爬虫结果是字节_入门爬虫?一文搞定!
  8. 2021年中国电线拼接套件市场趋势报告、技术动态创新及2027年市场预测
  9. Javascript 笔记(2)----闭包
  10. SVN 配置忽略文件
  11. 简述神经元网络控制的作用和特点
  12. Kali Linux 暴力破解学校办公室WiFi 总结
  13. 看看在职场里是怎么混社会的……
  14. Mysql中有关Datetime和Timestamp的使用总结
  15. 我经历的IT公司面试及离职感受
  16. Python的PIL库中的getpixel方法 putpixel方法
  17. P2P网络基础(学习笔记)
  18. 格式工厂视频压缩转码选择
  19. geojson 河流_如何做高大上的城市肌理分析图?
  20. Programmer Dvorak键盘布局

热门文章

  1. 机票管理系统(源码+文档)
  2. veth pair上的两个ip能否ping通?
  3. 乘车卡小程序要取代公交卡?腾讯:两者不是替换关系
  4. 二进制文件方式安装Docker-CE
  5. beetlsql 遍历集合做in查询
  6. XSHELL提示更新版本才能用
  7. 明日之后什么服务器物品最便宜,明日之后:想赚“金条”?不知道这功能?那可就难了...
  8. Qt编程 —— 模态对话框和非模态对话框
  9. python 名片管理系统
  10. VS2010旗舰版下载----带SN系列号