# WMTS重投影图层(ReprojectionLayer)
WMTS重投影图层用于展示非墨卡托投影的WMTS规格的栅格瓦片图层服务。
new aimap.ReprojectionLayer(layerOptions: Object)
# 初始化参数
# LayerOptions参数说明
字段名 | 类型 | 说明 |
---|---|---|
id | string | 默认值为${type}.${uuid} ,该值不允许重复。 |
map | Map | 地图对象,如果设置,该图层会自动加载到地图中,如果未设置,需要手动加载图层:addTo(map) 。 |
zIndex | number | 图层在地图中所属的垂直方向的位置索引,默认为 0。 |
minZoom | number | 能显示的最小的zoom level,默认 3。 |
maxZoom | number | 能显示的最大的zoom level(但不包括这个Level),默认20。 |
data必须 | Data | 支持通过 ArcGIS 发布的 WMTS 规格的栅格瓦片图层服务。 |
dataId | string | 如果希望复用本图层的数据,可以指定一个字符串,在创建别的图层时,可以直接使用这个 id 作为数据源。 |
style | Style | 本图层支持与栅格相关的样式配置,包括:栅格样式(Raster)。 |
reprojection必须 | Reprojection | 与重投影相关的参数,详细参数见下方说明。 |
# Reprojection
字段名 | 类型 | 说明 |
---|---|---|
converter必须 | Object | 提供forward 和inverse 两个方法。forward 用于将坐标从经纬度坐标系转换为WMTS的坐标系。forward 用于将坐标从WMTS的坐标系转换为经纬度坐标系。 |
# 示例
proj4.defs([
[
'EPSG:4326',
'+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees'
],
[
'EPSG:27700',
'+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 ' +
'+x_0=400000 +y_0=-100000 +ellps=airy ' +
'+towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 ' +
'+units=m +no_defs'
]
]);
layer = new aimap.ReprojectionLayer({
map,
data: "https://tiles.arcgis.com/tiles/qHLhLQrcvEnxjtPr/arcgis/rest/services/OS_Open_Raster/MapServer/WMTS",
reprojection: {
converter: proj4('WGS84', 'EPSG:27700'),
},
style: {
'raster-opacity': 1
},
});
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 实例变量
# id
此图层的 id,如果在初始化图层的参数中指定,则为参数中的 id,否则 SDK 内部会自动生成一个 id。
# 示例
var reprojectionLayer = new aimap.ReprojectionLayer({...});
console.log(reprojectionLayer.id); // "reprojection.9db79b01-f3c0-4da6-a36a-b4d5827c4e37"
2
# type
此图层的类型,对于本图层, type
为固定值:reprojection
。
# 示例
var reprojectionLayer = new aimap.ReprojectionLayer({...});
console.log(reprojectionLayer.type); // "reprojection"
2
# 实例方法
addTo(map)
如果在初始化图层时,没有传入地图对象参数,则需要使用此方法来将图层添加到地图上。
参数
map(Map)
:需要添加本图层的地图对象。
返回值
ReprojectionLayer
:this
remove()
将本图层从地图中移除,并销毁相关的资源。
返回值
ReprojectionLayer
:this
show()
显示该图层。
返回值
ReprojectionLayer
:this
hide()
隐藏该图层。
返回值
ReprojectionLayer
:this
setzIndex(zIndex, options?)
设置图层在 z 轴上的顺序。数值越大,层级越高。
参数
zIndex(number | String)
:大于 0 的整数或者表示地图初始化样式中自带的图层 id。
options(SetzIndexOptions)
:设置层级的更多参数,具体参见:SetzIndexOptions 配置。
返回值
ReprojectionLayer
:this
setStyle(style, options?)
增量更新图层的样式。
参数
style(style)
:样式对象,这些样式将增量更新到图层已有的样式上,支持的样式与当前图层一致。
options(SetStyleOptions)
:设置新样式的其他配置项,具体参见:SetStyleOptions 配置。
返回值
ReprojectionLayer
:this
on(type, listener)
为图层绑定事件监听。
参数
type(string)
:事件类型,支持的事件类型可参考 图层事件。
listener(Function)
:如果此处使用匿名函数,则后续将无法解绑。
返回值
ReprojectionLayer
:this
once(type, listener)
为图层绑定事件监听,事件只会响应一次。
参数
type(string)
:事件类型,支持的事件类型可参考 图层事件。
listener(Function)
:如果此处使用匿名函数,则后续将无法解绑。
返回值
ReprojectionLayer
:this
off(type, listener)
解除已绑定事件监听。
参数
type(string)
:事件类型,支持的事件类型可参考 图层事件。
listener(Function)
:通过 on
或者 once
绑定的事件对象。
返回值
ReprojectionLayer
:this
# 图层事件
wmts.source.loaded
当完成对 wmts 规范的解析时触发,触发后可以得到 wmts 的详细信息,例如:服务的可见范围:bounds。
layer = new aimap.ReprojectionLayer({...});
layer.on('wmts.source.loaded', () => {
map.fitBounds(layer.reprojectionSource.bounds, {
padding: 20
});
});
2
3
4
5
6
7
mousedown
当鼠标点击图层时触发。
mouseup
当鼠标在图层中松开时触发。
click
当鼠标在图层同一点处点击并松开时触发。
dblclick
当鼠标双击图层同一点时触发。
mousemove
当鼠标在图层中移动时触发。
mouseenter
当鼠标从某一图层外部或地图画布外部进入当前图层的可见部分时触发。
mouseleave
当鼠标离开当前图层的可见部分时触发。