首页 > 其他分享 >openlayers加载tms切片图层

openlayers加载tms切片图层

时间:2024-03-12 15:45:15浏览次数:27  
标签:TMS tileCoord source tms openlayers ol new 图层 加载

ol3舍弃了直接加载TMS服务的方法,但是可以通过类似于加载WMS瓦片的形式来加载TMS瓦片地图。

参考:https://blog.csdn.net/Wxq666666/article/details/108527892

谷歌TMS瓦片加载:

new ol.layer.Tile({
    source: new ol.source.XYZ({
        tileUrlFunction: function (tileCoord) {
            var z = tileCoord[0];
            var x = tileCoord[1];
            var y = - tileCoord[2];
            return "http://localhost:8080/map/谷歌TMS/" + z + "/" + x + "/" + y + ".png";
        }
    })
})

标准TMS瓦片的加载:

new ol.layer.Tile({
    source: new ol.source.XYZ({
        tileUrlFunction: function (tileCoord) {
            var z = tileCoord[0];
            var x = tileCoord[1];
            y = Math.pow(2, z) + tileCoord[2] - 1;
            return "http://localhost:8080/map/标准TMS/" + z + "/" + x + "/" + y + ".png";
        }
    })
})

也就是需要对y的值进行重新计算,以上两种方式确实可以加载出来,但是不知道是不是我ol的版本问题,加载出来的地图始终跟我的底图偏移了(相同坐标系情况下),可能是我ol版本比较低,另外一种加载方式解决了本人的问题,加载方式如下:

标准TMS瓦片加载:

source: new ol.source.XYZ({
/**标准TMS服务**/
url: 'http://192.168.123.1:8080/map/{z}/{x}/{-y}.png'
})
谷歌TMS瓦片加载:

source: new ol.source.XYZ({
/**谷歌TMS服务**/
url: 'http://192.168.123.1:8080/map/{z}/{x}/{y}.png'
})
最开始我使用的是第一种加载方式,确实加载出来了,但是位置对不上,一度认为是坐标系不一致的问题,改了大半天,换了种加载方式就好了,希望有帮助。

评论1(AIGIS.):第一种方式加载出来不对的原因是因为,在tileUrlFunction函数中获取到的y值不对,y值都是负值,所以就不能再按你的那种方式去计算,而是应该整体向上移动,具体来说就是y值加上当前层级的总行数。

标签:TMS,tileCoord,source,tms,openlayers,ol,new,图层,加载
From: https://www.cnblogs.com/2008nmj/p/18068464

相关文章

  • openlayers2批量添加点
    //初始化地图initMap(){map=newMap({layers:[newTileLayer({source:newOSM(),}),],target:'map',view:newView({center:[116.403218,......
  • openlayers2
    参考:https://openlayers.org/two/支持说明:尽管Openlayers2继续工作并且仍在使用中,但开发工作集中在版本3上。建议OpenLayers用户升级到版本3。尽管偶尔会继续对存储库进行提交,但不再有定期发布。建议那些想要版本2的最新代码的人下载存储库中的master分支并使用它。即使不再有......
  • arcgis用一个图层分割另一个图层
    现有用线图层A、面图层B,需使用A图层分割B图层,操作步骤如下:1、打开Editor编镇工具条,单击StartEditing开始编辑。2、鼠标选中线对象,或者全选线图层(右键单机线图层A依次执行“选择/选择全部”)。 3、打开Advancedediting工具条。 4、选择splitpolygons,点确定后,自动按......
  • Djiango视图层和模型层
    Djiango使用教程目录Djiango使用教程一.视图层1.1HttpResponse,render,redirect1.2JsonResponse1.3form表单上传文件及后端保存1.4.request方法二.FBV和CBV2.1CBV语法格式2.2CBV实现原理三.模版层3.1模版语法传值3.2过滤器3.3转义3.4标签逻辑系列1)for循环2)if判......
  • Django进阶之路由层和视图层
    Django的路由系统【1】什么是URL配置(URLconf)URL调度器|Django文档|Django(djangoproject.com)URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个U......
  • XYZ切片和TMS切片规范有何不同?
    仅仅只是y的方向从上到下和从下到上的区别?那么说来,xyz切片和wmts切片顺序是完全一致的了???只有tms比较特别?当然xyz切片和wmts切片的获取规则不同,而xyz和tms切片的获取规则相同。参考1:https://www.cnblogs.com/d1012181765/p/13631169.html参考2:https://blog.csdn.net/AllBluefm/ar......
  • vue使用超图openlayers调用mapv实现蜂窝图
    在用超图openlayer开发的时候遇到问题,在此作为记录。文字描述不对的地方请多担待, 下载依赖,npmimapv 按需引入,因为官网例子是普通的html引入,{mapv}引入方式调用的是超图@supermap中的方法。DataSet是mapv的方法 import{Mapv} from'@supermap/iclient-ol/overla......
  • Mapbox实战项目(1)-栅格图片图层实现地图方位展示
    需求背景需要实现地图上展示一个类似于罗盘的标记,随着地图的缩放、切换、旋转等,能够在地图的中央指示出地图的方位。系统自带的方位控件太小,在特殊业务场景下不够醒目。技术选型Mapbox实现分析官网已经有地图上展示图片矢量图层的demo,“Addarasterimagetoamaplayer......
  • PS 第五节 形状工具 + 图层样式
    PS第五节形状工具+图层样式......
  • Openlayer加载mapboxgl矢量图层
    注意Openlayer的版本Openlayer是支持直接加载矢量图层的,如下图层会没有样式渲染<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0&q......