# 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

# 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

# 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

# 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. 外部追加

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

# 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

# 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

# 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

# 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

# AstronomicalGlobe options 构造属性

属性 说明 类型 默认值
viewer 地球实例 Object viewer

第一人称相机(FirstPersonController)

# 加载方式(初始化默认开启)

firstPersonController = new GeowayGlobe.FirstPersonController({
  viewer,
});
1
2
3

# FirstPersonController options 构造属性

属性 说明 类型 默认值
viewer 地球实例 Object viewer