new CustomTilingScheme(options)
请参考以下示例:
[1、创建自定义瓦片切分规则][2、百度地图]
[3、自定义裁图方式地图]
[4、更多示例请参考数据图层示例]
支持如下方法:
[1、获取指定详细级别X方向上的瓦片总数][2、获取指定详细级别Y方向上的瓦片总数]
[3、计算一个坐标点在某一详细级别中位于某一瓦片的X、Y坐标]
[4、将以地理坐标经纬度弧度指定的矩形转换到此瓦片平铺方案的投影坐标系]
[5、将瓦片平铺的X、Y坐标和详细级别转换为以此瓦片平铺方案的投影坐标系表示的矩形]
[6、将瓦片平铺的X、Y坐标和高度转换为以弧度表示的矩形范围]
自定义瓦片平铺方案,在使用时有如下限制:
- 裁图原点必须在地图范围的左上角区域;
- 仅支持如同谷歌地图的瓦片组织方式,即Y轴编号从上到下递增,X轴编号从左到右递增;
| Name | Type | Description | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
可选
构造函数的参数对象,包含的属性如下:
|
Example
// 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), // 投影矩形范围的东北角
})
Members
-
ellipsoidEllipsoid
-
获取此瓦片平铺方案所使用的参考椭球体
-
projectionCustomProjection
-
获取此瓦片平铺方案所对应的投影方式
-
rectangleRectangle
-
获取此瓦片平铺方案中最小层级所包含的所有瓦片的矩形范围
-
wkidString
-
获取此瓦片平铺方案所对应的投影方式的wkid
-
wktString
-
获取此瓦片平铺方案所对应的投影方式的wkt
Methods
-
getNumberOfXTilesAtLevel(level){Number}
engineExtensions/core/CustomTilingScheme.js, line 523 -
获取指定详细级别X方向上的瓦片总数
Name Type Description levelNumber 详细级别(该级别为lods中对应的级别数组下标)
Returns:
Type Description Number 给定level详细级别中X方向的瓦片数量 -
getNumberOfYTilesAtLevel(level){Number}
engineExtensions/core/CustomTilingScheme.js, line 540 -
获取指定详细级别Y方向上的瓦片总数
Name Type Description levelNumber 详细级别(该级别为lods中对应的级别数组下标)
Returns:
Type Description Number 给定level详细级别中Y方向的瓦片数量 -
positionToTileXY(position, level, result){Cartesian2}
engineExtensions/core/CustomTilingScheme.js, line 712 -
计算一个坐标点在某一详细级别中位于某一瓦片的X、Y坐标
Name Type Description positionCartographic 坐标点
levelNumber 详细级别(该级别为lods中对应的级别数组下标)
resultCartesian2 可选 保存结果的Cartesian2对象,若未定义则创建新的Cartesian2对象并返回
Returns:
Type Description Cartesian2 返回指定的'result',如果'result'未定义,则为包含矩形的Cartesian2新对象 -
rectangleToNativeRectangle(rectangle, result){Rectangle}
engineExtensions/core/CustomTilingScheme.js, line 558 -
将以地理坐标经纬度弧度指定的矩形转换到此瓦片平铺方案的投影坐标系
Name Type Description rectangleRectangle 要进行投影转换的矩形范围
resultRectangle 可选 保存结果的Rectangle对象,若未定义则创建新的Rectangle对象并返回
Returns:
Type Description Rectangle 返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象 -
tileXYToNativeRectangle(x, y, level, result){Rectangle}
engineExtensions/core/CustomTilingScheme.js, line 589 -
将瓦片平铺的X、Y坐标和详细级别转换为以此瓦片平铺方案的投影坐标系表示的矩形
Name Type Description xNumber 瓦片在X方向上的坐标
yNumber 瓦片在Y方向上的坐标
levelNumber 详细级别(该级别为lods中对应的级别数组下标)
resultRectangle 可选 保存结果的Rectangle对象,若未定义则创建新的Rectangle对象并返回
Returns:
Type Description Rectangle 返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象 -
tileXYToRectangle(x, y, level, result){Rectangle}
engineExtensions/core/CustomTilingScheme.js, line 649 -
将瓦片平铺的X、Y坐标和高度转换为以弧度表示的矩形范围
Name Type Description xNumber 瓦片在X方向上的坐标
yNumber 瓦片在Y方向上的坐标
levelNumber 详细级别
resultRectangle 可选 返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象
Returns:
Type Description Rectangle 返回指定的'result',如果'result'未定义,则为包含矩形的Rectangle新对象