jihongshun
7 小时以前 307db148645230afc780a3d5d16ffb97aa32c189
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//cesium全球30米分辨率地形资源token
Cesium.Ion.defaultAccessToken =
  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0NjBlYzRiYS0wMDRhL' +
  'TRjZWYtODJhOS1jZTk5ZmI4ZDg5ZTIiLCJpZCI6ODI1MCwic2NvcGVzIjpbImFzciIsImdjIl0sImlhdCI6MTU1MTU3M' +
  'DU1Mn0.yfJ_i4EPiunFj_qUftuv1ksx4pUNgnPC16vQCBGrM08';
 
//arcgis影像地图
const arcgisimageryProvider = new Cesium.ArcGisMapServerImageryProvider({
  url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
});
const arcgisimagery = new Cesium.ImageryLayer(arcgisimageryProvider, {});
 
//注记
const imageryProvider2 = new Cesium.TileMapServiceImageryProvider({
  url: 'http://192.168.1.21:9999/dom-zj'
});
const bdtvectoranoimagery = new Cesium.ImageryLayer(imageryProvider2, {});
 
//Cesium初始化--创建地图公共方法
function initViewer(cesiumId) {
  let viewer = new Cesium.Viewer(cesiumId, {
    imageryProvider: arcgisimageryProvider, // 使用世界影像
    terrainProvider: new Cesium.CesiumTerrainProvider({
      url: Cesium.IonResource.fromAssetId(1),
      requestWaterMask: true, // 请求水体效果所需要的海岸线数据
      requestVertexNormals: true // 请求地形照明数据
    }),
    shouldAnimate: true, // 启用动画
    geocoder: true, // 启用地名查询
    homeButton: true, // 启用主页按钮
    sceneModePicker: false, // 启用场景模式选择器
    infoBox: false, // 是否显示信息窗口
    fullscreenButton: false,
    selectionIndicator: false //去除原生自带绿色选择框
  });
  //    viewer.imageryLayers.add(bdtvectoranoimagery);
  viewer._cesiumWidget._creditContainer.style.display = 'none';
 
  return viewer;
}
 
function creatModel(position, orientations, url, viewer) {
  viewer.entities.add({
    id: 'tower',
    position: position,
    orientation: orientations,
    model: {
      uri: url,
      scale: 20,
      shadows: Cesium.ShadowMode.DISABLED,
      imageBasedLightingFactor: new Cesium.Cartesian2(1, 0.5)
    }
  });
}
 
//创建pin标签
function creatPin(id, position, font, color, viewer) {
  let pinBuilder = new Cesium.PinBuilder();
  let addPin = viewer.entities.getById(id);
  if (addPin == undefined) {
    viewer.entities.add({
      id: id,
      position: position,
      billboard: {
        image: pinBuilder.fromText(font, color, 36).toDataURL(),
        verticalOrigin: Cesium.VerticalOrigin.BOTTOM
      }
    });
  } else {
    addPin.position = position;
  }
}