类名 CustomTilingScheme

# new CustomTilingScheme(optionsopt)

自定义瓦片平铺方案,在使用时有如下限制:

  1. 裁图原点必须在地图范围的左上角区域;
  2. 仅支持如同谷歌地图的瓦片组织方式,即Y轴编号从上到下递增,X轴编号从左到右递增;

参数:

名称 类型 默认值 描述
options Object

构造函数的参数对象,包含的属性如下:

ellipsoid Ellipsoid Ellipsoid.WGS84

表面被瓦片平铺的参考椭球体,默认为WGS84椭球体

wkt String

投影坐标系的通识文本(Well Known Text)

wkid String

投影坐标系的通识编码(Well Known ID)

tileInfo Object

必传。瓦片的属性信息,地图服务可以不提供该参数,该参数有固定的格式要求,详见下方示例

axisDirection Object

瓦片组织方向(裁图方向)。axisDirection.x=1代表x轴由左往右为正,axisDirection.x=-1代表x轴由右往左为正;axisDirection.y=1代表x轴由下往上为正,axisDirection.y=-1代表x轴由上往下为正。例如wmts的axisDirection为{x:1,y:-1}。

rectangleSouthwest Cartesian2

地图数据范围的西南角

rectangleNortheast Cartesian2

地图数据范围的东北角

请参考以下示例:
[1、创建自定义瓦片切分规则]
[2、百度地图]
[3、自定义裁图方式地图]
[4、更多示例请参考数据图层示例]
支持如下方法:
[1、获取指定详细级别X方向上的瓦片总数]
[2、获取指定详细级别Y方向上的瓦片总数]
[3、计算一个坐标点在某一详细级别中位于某一瓦片的X、Y坐标]
[4、将以地理坐标经纬度弧度指定的矩形转换到此瓦片平铺方案的投影坐标系]
[5、将瓦片平铺的X、Y坐标和详细级别转换为以此瓦片平铺方案的投影坐标系表示的矩形]
[6、将瓦片平铺的X、Y坐标和高度转换为以弧度表示的矩形范围]

示例

创建自定义瓦片切分规则

// ES5引入方式
const { CustomTilingScheme } = zondy
// ES6引入方式
import { CustomTilingScheme } from "@mapgis/webclient-cesium-plugin"

// 瓦片的属性信息
const tileInfo = {
  dpi: 0,
  format: 'PNG',
  size: [256, 256], // 瓦片宽高的像素大小
  origin: {
    coordinates: [471388.6716802692, 3471062.732487645], // 裁图原点
    type: 'Point', // 裁图原点类型
  },
  lods: [
    {
      level: 0,
      resolution: 661.4583333333334,
      scale: 2500000,
    },
    {
      level: 1,
      resolution: 330.7291666666667,
      scale: 1250000,
    },
    {
      level: 2,
      resolution: 165.36458333333334,
      scale: 625000,
    },
    {
      level: 3,
      resolution: 82.68229166666667,
      scale: 312500,
    },
    {
      level: 4,
      resolution: 41.341145833333336,
      scale: 156250,
    },
    {
      level: 5,
      resolution: 20.670572916666668,
      scale: 78125,
    }
  ]
}

// 瓦片的四至范围
const extent = {
  xmin: 471388.6716802692,
  ymin: 3316805.3361792937,
  xmax: 603520.9945763454,
  ymax: 3471062.732487645,
}

// 创建自定义瓦片切分规则
const tilingScheme = new CustomTilingScheme({
  ellipsoid: Cesium.Ellipsoid.WGS84,
  wkid: 4547,
  wkt: '+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs', // https://epsg.io/4547
  tileInfo, // 瓦片的属性信息,地图服务可以不提供该参数
  rectangleSouthwest: new Cesium.Cartesian2(extent.xmin, extent.ymin), // 投影矩形范围的西南角
  rectangleNortheast: new Cesium.Cartesian2(extent.xmax, extent.ymax), // 投影矩形范围的东北角
})

成员变量

Ellipsoid

# ellipsoid

获取此瓦片平铺方案所使用的参考椭球体

CustomProjection

# projection

获取此瓦片平铺方案所对应的投影方式

Rectangle

# rectangle

获取此瓦片平铺方案中最小层级所包含的所有瓦片的矩形范围

String

# wkid

获取此瓦片平铺方案所对应的投影方式的wkid

String

# wkt

获取此瓦片平铺方案所对应的投影方式的wkt

方法

# getNumberOfXTilesAtLevel(level)

获取指定详细级别X方向上的瓦片总数

参数:

名称 类型 描述
level Number

详细级别

给定level详细级别中X方向的瓦片数量

Number

# getNumberOfYTilesAtLevel(level)

获取指定详细级别Y方向上的瓦片总数

参数:

名称 类型 描述
level Number

详细级别

给定level详细级别中Y方向的瓦片数量

Number

# positionToTileXY(position, level, resultopt)

计算一个坐标点在某一详细级别中位于某一瓦片的X、Y坐标

参数:

名称 类型 描述
position Cartographic

坐标点

level Number

详细级别(该级别为lods中对应的级别数组下标)

result Cartesian2

保存结果的Cartesian2对象,若未定义则创建新的Cartesian2对象并返回

返回指定的'result',如果'result'未定义,则为包含矩形的Cartesian2新对象

Cartesian2

# rectangleToNativeRectangle(rectangle, resultopt)

将以地理坐标经纬度弧度指定的矩形转换到此瓦片平铺方案的投影坐标系

参数:

名称 类型 描述
rectangle Rectangle

要进行投影转换的矩形范围

result Rectangle

保存结果的Rectangle对象,若未定义则创建新的Rectangle对象并返回

返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象

Rectangle

# tileXYToNativeRectangle(x, y, level, resultopt)

将瓦片平铺的X、Y坐标和详细级别转换为以此瓦片平铺方案的投影坐标系表示的矩形

参数:

名称 类型 描述
x Number

瓦片在X方向上的坐标

y Number

瓦片在Y方向上的坐标

level Number

详细级别

result Rectangle

保存结果的Rectangle对象,若未定义则创建新的Rectangle对象并返回

返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象

Rectangle

# tileXYToRectangle(x, y, level, resultopt)

将瓦片平铺的X、Y坐标和高度转换为以弧度表示的矩形范围

参数:

名称 类型 描述
x Number

瓦片在X方向上的坐标

y Number

瓦片在Y方向上的坐标

level Number

详细级别

result Rectangle

返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象

返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象

Rectangle
构造函数
成员变量
方法
事件