【06】openlayers 切片图层

创建地图:

//OSM图层
let source = new ol.source.OSM()
//切片图层tilelayer
let layers = new ol.layer.Tile({
    source: source,//图层来源
    opacity:1,//透明度,默认为1
    visible:true,//是不显示,默认true
    extent:[100,34,103,36],//可选参数,图层渲染范围,[minLon,minLat,maxLon,maxLat]
    zIndex:1,//图层渲染索引,默认是按加载顺序叠加
})
//创建地图
var map = new ol.Map({
    layers: [layers],
    target: ‘map‘,
    view: new ol.View({
        projection: ‘EPSG:4326‘,
        center: [108.83734703063968, 34.1994154197084],
        zoom: 13,
    })
});

切片图层关于map的方法:

//添加切片图层
map.addLayer(layer)
//删除切片图层
map.removeLayer(layer)

切片图层的一些自身方法:

//获取-设置,图层的可见范围
layers.getExtent();
layers.setExtent([100,34,103,36]);
//获取-设置,图层最大缩放级别
layers.getMaxZoom()
layers.setMaxZoom(18)
//获取-设置,图层最小缩放级别
layers.getMinZoom()
layers.setMinZoom(2)
//获取-设置,图层的不透明度
layers.getOpacity()
layers.setOpacity(1)
//获取-设置,图层源
layers.getSource()
layers.setSource(new ol.source.OSM())
//获取-设置,图层的可见性
layers.getVisible()
layers.setVisible(true)
//获取-设置,图层的Z索引
layers.getZIndex()
layers.setZIndex(2)

//绑定事件-取消事件 type事件类型,listener函数体
layers.on(type,listener)
layers.un(type,listener)

切片图层的source:

OSM

//OSM
let source = new ol.source.OSM({
    wrapX:false,//是否水平包装世界 默认为true
    attributions:new olAttribution({//地图版权信息
        html: ‘© <a href="http://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a> contributors‘
    })
})

BingMaps

//BingMaps
//图像类型
let type = {
    Aerial:‘Aerial‘,
    CanvasDark:‘CanvasDark‘,
    RoadOnDemand:‘RoadOnDemand‘,
    AerialWithLabelsOnDemand:‘AerialWithLabelsOnDemand‘
}
let source = new ol.source.BingMaps({
    wrapX:false,//是否水平包装世界 默认为true
    key:‘AkjzA7OhS4MIBjutL21bkAop7dc41HSE0CNTR5c6HJy8JKc7U9U9RveWJrylD3XJ‘,//API密钥
    imagerySet:type.Aerial, //图像类型
})

XYZ

//XYZ
let source = new ol.source.XYZ({
    wrapX:false,//是否水平包装世界 默认为true
    attributions:new olAttribution({//地图版权信息
        html: ‘‘
    }),
    url:‘‘,//图层地址
    tileSize:256,//图层瓦片大小 默认256
})
//百度地图(矢量底图,矢量注记)
let url_A = ‘http://t1.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=b0b6f6127490e1226b057bf3e90dfa45‘
let url_B = ‘http://t2.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=b0b6f6127490e1226b057bf3e90dfa45‘
//百度底图(影像底图,影像注记)
let url_C = ‘http://t2.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=b0b6f6127490e1226b057bf3e90dfa45‘
let url_D = ‘http://t2.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=b0b6f6127490e1226b057bf3e90dfa45‘
//高德地图
function gaode({
    lang=‘cn‘,//中英文,cn或 en
    scl=1,//是否需要标准,1需要,2不需要
    type=7,//设置影像和路网,style=6为影像图,style=7为矢量路网,style=8为影像路网。
}){
    let gaodeURL = ‘http://wprd0{1-4}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_‘+lang+‘&size=1&scl=‘+scl+‘&style=‘+type+‘‘
    return gaodeURL
}
//谷歌地图
let url_E = ‘http://www.google.cn/maps/vt/pb=!1m4!1m3!1i{z}!2i{x}!3i{y}!2m3!1e0!2sm!3i345013117!3m8!2szh-CN!3scn!5e1105!12m4!1e68!2m2!1sset!2sRoadmap!4e0‘
//雅虎地图
let url_F = ‘https://{0-3}.base.maps.api.here.com/maptile/2.1/maptile/newest/normal.day/{z}/{x}/{y}/512/png8?lg=ENG&ppi=250&token=TrLJuXVK62IQk0vuXFzaig%3D%3D&requestid=yahoo.prod&app_id=eAdkWGYRoc4RfxVo0Z4B‘

WMS

//WMS
let source = new ol.source.WMS({
    wrapX:false,//是否水平包装世界 默认为true
    attributions:new olAttribution({//地图版权信息
        html: ‘‘
    }),
    url:‘‘,//图层地址
    params:{//wms 所需参数
        ‘VERSION‘:‘1.3.0‘,//版本
        ‘CRS‘:‘EPSG:4326‘,//坐标规范,如果版本小于1.3.0 则用CRS改为SRS
    }
})

ArcGIS

//ArcGIS
let source = new ol.source.ArcGIS({
    wrapX:false,//是否水平包装世界 默认为true
    attributions:new olAttribution({//地图版权信息
        html: ‘‘
    }),
    url:‘https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer‘,//图层地址
})

WMTS

//WMTS
var projection = ol.proj.get("EPSG:3857");
var projectionExtent = projection.getExtent();
var size = ol.extent.getWidth(projectionExtent) / 256;
var resolutions = new Array(14);
var matrixIds = new Array(14);
for (var z = 0; z < 14; ++z) {
  resolutions[z] = size / Math.pow(2, z);
  matrixIds[z] = z;
}
let source = new ol.source.WMTS({
    attributions://地图版权信息
          ‘Tiles © <a href="https://services.arcgisonline.com/arcgis/rest/‘ +
          ‘services/Demographics/USA_Population_Density/MapServer/">ArcGIS</a>‘,
    url://图层地址
          "https://services.arcgisonline.com/arcgis/rest/" +
          "services/Demographics/USA_Population_Density/MapServer/WMTS/",
    layer: "0",//WMTS功能中公布的层名称
    matrixSet: "EPSG:3857",//矩阵集
    format: "image/png",//图像格式,默认为‘image / jpeg‘
    projection: projection,//投影方式
    tileGrid: new ol.tilegrid.WMTS({
      origin: ol.extent.getTopLeft(projectionExtent),//瓷砖网格的原点
      resolutions: resolutions,//每个分辨率的数组索引都需要匹配缩放级别
      matrixIds: matrixIds//矩阵ID
    }),
    style: "default",
    wrapX: true
})

TileJSON

//TileJSON
let source = new ol.source.TileJSON({
    url:‘https://a.tiles.mapbox.com/v3/aj.1x1-degrees.json‘,//路径
    crossOrigin: ‘anonymous‘//加载图像的属性
})

原文地址:https://www.cnblogs.com/MaShuai666/p/12494947.html

时间: 2024-10-18 05:58:46

【06】openlayers 切片图层的相关文章

OpenLayers 之 图层(Layers) 详解

声明:文章为本人原创,转载或使用请注明作者和出处!!谢谢! 如果不是专业的地图工作者,看到地图,可能觉得地图就是一张将三维世界映射到二维空间,很多信息混杂在一起表示空间信息的动态可交互图片,其实这只是表面现象.实际上地图是由一个或多个图层组成的,使用不同的图层存储不同类型的地物,比如由存储道路的图层,有展示拥堵情况的图层,通常还有一个含有基础地理信息(比如政区划分)的底图图层. 在 OpenLayers 中,图层是使用 layer 对象表示的,主要有 热度图层(heatmaplayer).图片图

ArcGIS api for javascript——图层-创建定制的切片图层类型的图层

描述 本例展示了如何创建一个定制图层,该图层访问来自WEB服务器的地图切片.这种方式最通用的用途是检索ArcGIS Server 9.2切片缓存或web上的其他地图切片服务.尽管本例使用的是一个ArcGIS Server 9.3服务,这仅仅是为了示范.当从9.3和更高版本时,最好使用ArcGISTileMapServiceLayer. 首先,代码声明一个继承esri.layers.TiledMapServiceLayer的定制的图层my.PortlandTiledMapServiceLayer.

openlayers自定义图层控制的实现

好久没写博文了,今天出来冒个泡. 最近一直在考虑一件事情,那就是openlayers中自定义wms的图层控制.用过openlayers的人都知道,在openlayers中有自带的图层控制的控件,调用方法也很简单: map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':true}));//图层控制 但是,不论是从操作的方便程度还是美观性方面考虑,自带的图层控制是无法满足需求的,考虑了一段时间,今天终于有时间实现了,下面就说

OpenLayers 3 之 加载天地图

要使用 OpenLayers 3 加载天地图,首先要弄清楚天地图发布的原理,以及遵循的发布规范,上一篇中我们提到了使用 OpenLayers 3 加载百度地图,我们提到一般网络地图为了加快访问速度,都采用缓存切片地图的方式,天地图也不例外,而且原理极其类似,但是其切片的索引组织方式还是有一些不同,虽然都是切片,但是切片的起始坐标原点不一致,百度地图是屏幕的左下角,而天地图是屏幕的左上角(与谷歌地图一致),且所在的坐标系是球形墨卡托投影坐标系(EPSG:3857). 针对这种形式发布的地图切片,O

OpenLayers项目分析——(一)项目介绍

OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,目前的最高版本是2.7 V,通过BSD License 发行.它实现访问地理空间数据的方法都符合行业标准,比如OpenGIS的WMS和WFS规范, OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件. 采用OpenLayers作为客户端不存在浏览器依赖性.由于OpenLayers采用JavaScript语言实现,而应用于We

esri-leaflet入门教程(4)-加载各类图层

by 李远祥 在leaflet中图层一般分为底图(Basemap)和叠加图层(Overlay).前面章节已经介绍过底图其实也是实现了TileLayer 接口,而其他的叠加图层要么就是叠加的业务图层,要么就是动态显示的图形和符号.这一点在esri leaflet中也是有对照的. ArcGIS产品中比较让人熟知的图层包括ArcGISDynamicMapServiceLayer.ArcGISImageServiceLayer.ArcGISTiledMapServiceLayer.FeatureLaye

OpenLayers 之 视图(View) 详解

初始化一幅地图,必备的三要素之一就是视图(view),这个对象主要是控制地图与人的交互,如进行缩放,调节分辨率.地图的旋转等控制.也就是说每个 map对象包含一个 view对象部分,用于控制与用户的交互. 主要介绍 view 的作用和用法,并分析商用的地图应用中的相关的功能.功能的具体的实现与如何进行定制和优化,就超过了这篇文章的范围了. view 类的定义可以在 GitHub 的 OpenLayers 项目中的 这里 看到,我就不贴大篇幅的代码了,只是针对特定的点贴一下核心代码,需要看完整源码

Webgis中关于Openlayers入门使用(一)安装及生成基本地图

一.WebGis项目中使用的版本2.12 下载地址:https://github.com/openlayers/ol2/releases https://github.com/openlayers/ol2/blob/master/notes/2.12.md 二.代码环境: 在页面上添加地图,首先要引入相应的OpenLayers的函数库,而后创建地图Map对象,为Map对象添加地图服务后,页面就可以显示地图了.把下载openlayers2.12文件夹中img,lib,theme文件夹和Openla

ArcGIS——图层与数据

该文章翻译至ArcGIS官网教程Layers and data,采用了Google翻译辅助,对不恰当的名称和语句做了修改.有能力的建议直接阅读英文原版. 1. 介绍 图层是可以在Map对象中使用的数据集合.可以在客户端上创建图层数据,由ArcGIS Online和ArcGIS Enterprise托管,或由外部服务器托管. 2. 数据--要素的集合 图层通常用于管理和显示大量要素.要素是地理位置或实体的记录.每个要素都包含为几何图形(点,折线或多边形)定义的空间坐标和存储其他信息的属性字段.这些