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

22 篇文章 1 订阅
6 篇文章 0 订阅

由于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

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenLayers是一个用于显示地理信息的开源JavaScript库。要加载本地路径地图,首先需要将地图文件保存在本地计算机上。然后,可以通过以下步骤使用OpenLayers加载本地路径地图: 1. 在HTML文件中引入OpenLayers的JavaScript库。可以通过在网页的<head>标签内添加以下代码实现: ```html <script src="https://openlayers.org/en/v6.5.0/build/ol.js"></script> ``` 2. 在代码中创建一个用于显示地图的<div>元素。例如: ```html <div id="map" style="width: 800px; height: 600px;"></div> ``` 3. 在JavaScript代码中编写加载本地路径地图的步骤。首先,创建一个地图实例,并指定要显示地图的目标元素。然后,创建用于显示地图的图层,例如OpenStreetMap图层。最后,将图层添加到地图实例中。以下是一个简单的示例: ```javascript var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], view: new ol.View({ center: ol.proj.fromLonLat([0, 0]), zoom: 2 }) }); ``` 4. 运行代码,打开包含HTML文件的浏览器页面。现在,应该能够加载并显示本地路径地图了。 注意:加载本地路径地图可能需要一些额外的步骤,例如配置本地web服务器或处理文件路径。此外,OpenLayers还提供了许多其他功能和选项,可以根据需求进行配置和定制。 ### 回答2: OpenLayers是一个用于在网页上展示地图的开源JavaScript库,它支持加载本地路径地图。要加载本地路径地图,首先需要将地图切片存储在本地的文件系统中。切片是将整个地图区域分成一系列小块的图像,以提高地图显示效 ### 回答3: OpenLayers 是一个开源的地图库,可以用于加载和显示各种地图数据。要加载本地路径地图,需要按照以下步骤进行操作: 1. 准备地图数据:首先,将本地的地图数据准备好。这可以是一个图像文件(如JPEG、PNG等),也可以是一个矢量文件(如GeoJSON、KML等)。 2. 创建地图容器:在 HTML 页面中,创建一个用于显示地图的容器元素,例如一个 `<div>`元素,并为其指定一个唯一的ID。 3. 加载地图数据:使用 OpenLayers 的 `ol.source.Image` 或 `ol.source.Vector`类,根据地图数据的类型,创建一个相应的数据源。例如,如果是图像文件,可以使用 `ol.source.ImageStatic` 类,并指定图像文件的路径。如果是矢量文件,可以使用 `ol.source.Vector` 类,并使用 `ol.format` 类来解析和加载矢量数据。 4. 创建地图图层:使用 `ol.layer.Image` 或 `ol.layer.Vector` 类,创建一个相应的图层,并将数据源与图层关联起来。 5. 创建地图对象:使用 `ol.Map` 类,创建一个地图对象。将之前创建的地图容器元素和图层添加到地图对象中。 6. 显示地图:将地图对象绑定到地图容器元素上,使用 `map.setTarget(containerID)` 方法。 经过以上步骤,就可以加载本地路径地图并在网页上显示了。可以根据需要,设置地图的初始视图、缩放级别、交互功能等,以实现更多的地图交互操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值