# Scene 场景
根据资源地址创建 3DTiles(Geoway3DTileset)
# 加载方式
let geowayTileset = new GeowayGlobe.Geoway3DTileset({
url: "http://172.16.67.34:8066/ime-cloud/rest/house/3dtiles/tileset.json",
});
geowayTileset.readyPromise.then((primitive) => {
viewer.scene.primitives.add(primitive);
});
1
2
3
4
5
6
2
3
4
5
6
# Geoway3DTileset options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
url | 3dtile 地址 | String | '' |
subdomains | 子域 | Array | [] |
enableHighSpeedDownload | 判断 | Boolean | False |
modelMatrix | 模型矩阵 | Object | Null |
isGeoway3DTileset | 是否是 3dtlie | Boolean | True |
id | 3dtile id | String | 随机生成 |
3D 图层注解(Image3DAnnotationProvider)
# 加载方式
let image3DAnnotationProvider = new GeowayGlobe.Image3DAnnotationProvider({
viewer: viewer,
url: "http://172.16.67.66:8091/mapserver/label/gdpoi/getImgData?styleId=gdpoi&x={TileCol}&y={TileRow}&l={TileMatrix}&tilesize=512",
minimumLevel: 4,
maximumLevel: 21,
tileWidth: 512,
tileHeight: 512,
ratio: 2,
tileMatrixLabels: [
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
],
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Image3DAnnotationProvider options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
minimumLevel | 最小层级 | Number | Null |
maximumLevel | 最大层级 | Number | Null |
tileWidth | 瓦片宽度 | Number | Null |
tileHeight | 瓦片高度 | Number | Null |
rectangle | 矩形坐标点 | Boolean | Null |
tileMatrixLabels | 矩阵信息 | Object | Null |
url | 地址 | Boolean | True |
subdomains | 子域 | String | Null |
clamped2TerrainLevel | 地形等级 | Number | Null |
show | 是否显示 | Boolean | true |
基于 cesium 球,加载瓦片注记(TiledAnnotationProvider)
# 加载方式
new GeowayGlobe.TiledAnnotationProvider({
isQueryAllForOnce: false,
url: "http://172.16.66.37:8091/mapserver/label/XZQ_NX_/getData?tilesize=512&styleId=XZQ_NX&x={TileCol}&y={TileRow}&l={TileMatrix}",
texureUrl: "",
layerDescriptionFile:
"http://172.16.66.37:8084/ime-cloud/style/base/system/getStyle.do?belongService=XZQ_NX_&styleId=XZQ_NX",
minimumLevel: 6,
maximumLevel: 20,
clamped2TerrainLevel: 10,
tileWidth: 512,
tileHeight: 512,
tileMatrixLabels: [
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
],
labelLayers: ["xzq_label_nx"],
viewer: viewer,
datasource: dltb_datasource,
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# TiledAnnotationProvider options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
isQueryAllForOnce | 按需加载/一次性加载 | Boolean | false |
url | 注记 getdatas 服务 | String | '' |
layerDescriptionFile | 注记样式 url | String | '' |
minimumLevel | 最小层级 | Number | False |
maximumLevel | 最大层级 | Number | Null |
clamped2TerrainLevel | 地形层级 | Number | True |
tileWidth | 宽度 | Number | Null |
tileHeight | 高度 | Number | Null |
tileMatrixLabels | 范围信息 | Array | Null |
labelLayers | 图层数组 | Array | Null |
viewer | 三维球 | Object | viewer |
datasource | 源数据 | Object | Null |
# TiledAnnotationProvider 方法
# setVisible
参数:visible ,类型:Boolean,必选
是否显示图像标注
基于 cesium 球,加载瓦片地形(TiledTerrainProvider)
# 加载方式
# 1. 构建三维球的时候加载
terrainProvider: new GeowayGlobe.TiledTerrainProvider({
connections: [
{
priority: 0,
url:
"http://172.16.67.34:8066/ime-cloud/rest/globe_world_01_10_v2/terrain" +
"/data?level={TileMatrix}&col={TileCol}&row={TileRow}",
credit: new Cesium.Credit("WorldTerrain"),
rectangle: new Cesium.Rectangle.fromDegrees(-180, -90, 180, 90),
minLevel: 1,
maxLevel: 10,
tileMatrixLabels: [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
],
},
],
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 2. 外部追加
viewer.terrainProvider = new GeowayGlobe.TiledTerrainProvider({
connections: [
{
priority: 0,
url:
"http://172.16.67.34:8066/ime-cloud/rest/globe_world_01_10_v2/terrain" +
"/data?level={TileMatrix}&col={TileCol}&row={TileRow}",
credit: new Cesium.Credit("WorldTerrain"),
rectangle: new Cesium.Rectangle.fromDegrees(-180, -90, 180, 90),
minLevel: 1,
maxLevel: 10,
tileMatrixLabels: [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
],
},
],
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# connections 属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
priority | 按需加载/一次性加载 | Number | false |
url | 服务地形 | String | Null |
credit | cesium 地形 | Object | Null |
rectangle | 矩形范围坐标点 | Object | Null |
minLevel | 最小层级 | Number | Null |
maxLevel | 最大层级 | Number | true |
tileMatrixLabels | 瓦片矩阵图层 | Array | Null |
修改 3DTileset 的颜色(Geoway3DTilesetStyle)
# 加载方式
buildingTileSet = viewer.scene.primitives.add(
new Cesium.Cesium3DTileset({
globalScreenSpaceErrorFactor: 1,
skipLevelOfDetail: true,
url: "http://atlas.geoway.com.cn:8005/web-globe-sdk-v2.0/geoway-globe/public-assets/3dtiles/guangzhou/2-6-1.json",
})
);
buildingTileSet.readyPromise.then((tileset) => {
viewer.scene.primitives.add(tileset);
buildingTileSet.style = new Cesium.Cesium3DTileStyle({
color: {
conditions: [
["${GD2} >= 100", 'color("gold")'],
["${GD2} >= 90", 'color("green")'],
["${GD2} >= 80", 'color("Lime")'],
["${GD2} >= 70", 'color("olive")'],
["${GD2} >= 60", 'color("plum")'],
["${GD2} >= 50", 'color("wheat ")'],
["${GD2} >= 40", 'color("peru")'],
["${GD2} >= 30", 'color("pink")'],
["${GD2} >= 20", 'color("orange")'],
["${GD2} >= 10", 'color("red")'],
["${GD2} >= 3", 'color("yellow")'],
["${GD2} >= 0", 'color("red")'],
["true", 'color("yellow")'],
],
},
});
});
let tileSetStyle = new GeowayGlobe.Geoway3DTilesetStyle({
viewer: viewer,
tileSets: [buildingTileSet],
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Geoway3DTilesetStyle options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
tileSets | 需要修改颜色的 tileSets | Array | Null |
Geoway3DTilesetEffect(使用着色器给 3DTileset 增加特效)
# 加载方式
GeowayGlobe.Geoway3DTilesetEffect.tileLoad(buildingTileSet, (vs, fs) => {
let vsShaderTextLines =
GeowayGlobe.Geoway3DTilesetEffect.toShaderTextLines(vs);
let fsShaderTextLines =
GeowayGlobe.Geoway3DTilesetEffect.toShaderTextLines(fs);
GeowayGlobe.Geoway3DTilesetEffect.addPhongEffect(
vsShaderTextLines,
fsShaderTextLines
);
let resultVS =
GeowayGlobe.Geoway3DTilesetEffect.toShaderText(vsShaderTextLines);
let resultFS =
GeowayGlobe.Geoway3DTilesetEffect.toShaderText(fsShaderTextLines);
return [resultVS, resultFS];
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Geoway3DTilesetEffect options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
vs | 顶点着色器 | Array | Null |
fs | 元片着色器 | Array | Null |
添加 FeatureService 图层(FeatureServiceProvider)
# 加载方式
var tmp1 = new GeowayGlobe.FeatureServiceProvider({
viewer: viewer,
url: "http://172.16.67.50:9997/json?x={TileCol}&y={TileRow}&l={TileMatrix}",
minimumLevel: 3,
maximumLevel: 30,
tileWidth: 256,
tileHeight: 256,
objectIdField: "objectid",
tileMatrixLabels: [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
],
renderCondition: "./public-assets/cluster/guangdong-advance-annotation-3d.js",
});
viewer.tileServiceLayers.addTileServiceProvider(tmp1);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# FeatureServiceProvider options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
minimumLevel | 图像提供者支持的最低详细程度 | Number | Null |
maximumLevel | 图像提供程序支持的最大详细程度 | Number | Null |
tileWidth | 平铺宽度 | Number | Null |
tileHeight | 平铺高度 | Number | Null |
renderCondition | 渲染条件 | Object | {} |
添加天文风格地球(AstronomicalGlobe)
# 加载方式
const { AstronomicalGlobe } = GeowayGlobe;
astronomicalGlobe = new AstronomicalGlobe({ viewer });
1
2
2
# AstronomicalGlobe options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
viewer | 地球实例 | Object | viewer |
第一人称相机(FirstPersonController)
# 加载方式(初始化默认开启)
firstPersonController = new GeowayGlobe.FirstPersonController({
viewer,
});
1
2
3
2
3
# FirstPersonController options 构造属性
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
viewer | 地球实例 | Object | viewer |