CZML格式漫游

 CZML

  // 去程漫游数组含时间
  const mudroutemove1 = [
    0.00, 121.789100, 29.523650, 1,
    3.04, 121.784900, 29.538920, 1,
    9.65, 121.762580, 29.540210, 1,
    14.84, 121.745300, 29.537620, 1,
    19.23, 121.735380, 29.548420, 1,
    24.15, 121.736150, 29.562033, 1,
    30.49, 121.748200, 29.568783, 1,
    43.67, 121.791083, 29.614317, 1,
    60.61, 121.907983, 29.669800, 1,
    72.84, 121.962350, 29.669800, 1,
    88.94, 122.026617, 29.669800, 1,
    94.40, 122.032300, 29.706083, 1,
    99.35, 122.036650, 29.718400, 1,
    107.94, 122.046683, 29.733233, 1,
    118.33, 122.061150, 29.763567, 1,
    122.86, 122.064117, 29.774383, 1,
    130.03, 122.073817, 29.785017, 1,
    147.90, 122.122400, 29.805900, 1,
    160.74, 122.149600, 29.817517, 1,
    182.19, 122.196983, 29.840850, 1,
    195.78, 122.222217, 29.853200, 1,
    213.71, 122.240233, 29.876617, 1,
    228.10, 122.256983, 29.889633, 1,
  ];
  // 返程漫游数组含时间
  const mudroutemove2 = [
    0, 122.301033, 29.906350, 1,
    15, 122.228633, 29.878350, 1,
    18, 122.225283, 29.874033, 1,
    26, 122.202533, 29.862500, 1,
    46, 122.067283, 29.793933, 1,
    52, 122.064117, 29.774383, 1,
    58, 122.061150, 29.763567, 1,
    72, 122.046683, 29.733233, 1,
    80, 122.036650, 29.718400, 1,
    86, 122.032300, 29.706083, 1,
    104, 122.016450, 29.671333, 1,
    120, 121.962667, 29.671333, 1,
    136, 121.908333, 29.671333, 1,
    150, 121.790167, 29.615333, 1,
    160, 121.747333, 29.569667, 1,
    165, 121.736150, 29.562033, 1,
    170, 121.735380, 29.548420, 1,
    175, 121.745300, 29.537620, 1,
    180, 121.762580, 29.540210, 1,
    185, 121.784900, 29.538920, 1,
    190, 121.789100, 29.523650, 1,
    195, 122.301033, 29.906350, 1,
    200, 122.228633, 29.878350, 1,
  ];
 // 去程航线漫游
  const mudmove1czml: any = [
    {
      id: 'document',
      name: 'CZML Path',
      version: '1.0',
      clock: {
        interval: '2012-08-04T10:00:00Z/2012-08-04T15:00:00Z',
        currentTime: '2012-08-04T10:00:00Z',
        multiplier: 0.6,
      },
    },
    {
      id: 'gopath',
      name: 'path with GPS flight data',
      availability: '2012-08-04T10:00:00Z/2012-08-04T15:00:00Z',
      path: {
        material: {
          polylineOutline: {
            color: {
              rgba: [255, 0, 255, 255],
            },
            outlineColor: {
              rgba: [0, 255, 255, 255],
            },
            outlineWidth: 5,
          },
        },
        width: 8,
        leadTime: 5,
        trailTime: 5,
        resolution: 5,
      },
      billboard: {
        image:
        'data:image/png;base64,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',
        scale: 1,
        eyeOffset: {
          cartesian: [0.0, 0.0, -10.0],
        },
      },
      position: {
        epoch: '2012-08-04T10:00:00Z',
        cartographicDegrees: mudroutemove1,
      },
    },
  ];
  // 返程航线漫游
  const mudmove2czml: any = [
    {
      id: 'document',
      name: 'CZML Path',
      version: '1.0',
      clock: {
        interval: '2012-08-04T10:00:00Z/2012-08-04T15:00:00Z',
        currentTime: '2012-08-04T10:00:00Z',
        multiplier: 0.6,
      },
    },
    {
      id: 'returnpath',
      name: 'path with GPS flight data',
      availability: '2012-08-04T10:00:00Z/2012-08-04T15:00:00Z',
      path: {
        material: {
          polylineOutline: {
            color: {
              rgba: [255, 0, 255, 255],
            },
            outlineColor: {
              rgba: [0, 255, 255, 255],
            },
            outlineWidth: 5,
          },
        },
        width: 8,
        leadTime: 5,
        trailTime: 5,
        resolution: 5,
      },
      billboard: {
        image:
        'data:image/png;base64,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',
        scale: 1,
        eyeOffset: {
          cartesian: [0.0, 0.0, -10.0],
        },
      },
      position: {
        epoch: '2012-08-04T10:00:00Z',
        cartographicDegrees: mudroutemove2,
      },
    },
  ];

 (1)vuecesium

      <vc-datasource-czml
        ref="datasourceRef"
        v-if="shipRouteInfo[0].show"
        :czml="mudmove1czml"
        @ready="onDatasourceReady"
        :show="wandershow"
      />

// 航线漫游
const wandershow = ref(true);
const datasourceRef: any = ref(null);
const wander = async () => {
  reload();
};

const unload = () => {
  // datasourceRef.value.unload();
  viewer.trackedEntity = null;
  viewer.camera.flyTo({
    destination: Cesium.Cartesian3.fromDegrees(122.05, 29.82, 80000),
    orientation: {
      heading: Cesium.Math.toRadians(0),
      pitch: Cesium.Math.toRadians(-90),
      // rolling: 0.4,
    },
  });
};
const reload = () => {
  datasourceRef.value.reload();
};
const load = () => {
  datasourceRef.value.load();
};
const onDatasourceReady = () => {
  unload();
};

(2)czml

const wander = async (type:string, _viewer: any, _cesium: any) => {
  let dataSource:any = null;
  let entity:any = null;
  if (type === 'go') {
    dataSource = await viewer.dataSources.add(
      _cesium.CzmlDataSource.load(mudmove1czml),
    );
    entity = dataSource.entities.getById('gopath');
  } else if (type === 'return') {
    dataSource = await viewer.dataSources.add(
      _cesium.CzmlDataSource.load(mudmove2czml),
    );
    entity = dataSource.entities.getById('returnpath');
  }
  _viewer.trackedEntity = entity;
};

 (3)ion asset gltf model

 // 去程点[]
  const mudroute1 = [
    121.789100, 29.523650, 1, // 西沪港转运点
    121.784900, 29.538920, 1, //
    121.762580, 29.540210, 1, //
    121.745300, 29.537620, 1, //
    121.735380, 29.548420, 1, //
    121.736150, 29.562033, 1, // 进入NBZ-10航路
    121.748200, 29.568783, 1, //
    121.791083, 29.614317, 1, // 穿越象山港公路大桥
    121.907983, 29.669800, 1, //
    121.962350, 29.669800, 1, // 宁电(1)灯浮
    122.026617, 29.669800, 1, //
    122.032300, 29.706083, 1, // 进入双屿门临时航道
    122.036650, 29.718400, 1, // 开始沿西航路航行
    122.046683, 29.733233, 1, //
    122.061150, 29.763567, 1, //
    122.064117, 29.774383, 1, // 6#警戒区南侧转向点
    122.073817, 29.785017, 1, //
    122.122400, 29.805900, 1, // 开始穿越7#警戒区
    122.149600, 29.817517, 1, //
    122.196983, 29.840850, 1, // 开始穿越1#警戒区
    122.222217, 29.853200, 1, // 岙山联检锚地南侧转向点
    122.240233, 29.876617, 1, // 蚂蚁岛与点灯山水域
    122.256983, 29.889633, 1, //
    122.301033, 29.906350, 1, // 水老鼠礁临时海洋倾倒区
  ];
  // 去程点数组[[]]
  const mudrouteforgo = [
    [121.789100, 29.523650, 1], // 西沪港转运点
    [121.784900, 29.538920, 1],
    [121.762580, 29.540210, 1],
    [121.745300, 29.537620, 1],
    [121.735380, 29.548420, 1],
    [121.736150, 29.562033, 1], // 进入NBZ-10航路
    [121.748200, 29.568783, 1],
    [121.791083, 29.614317, 1], // 穿越象山港公路大桥
    [121.907983, 29.669800, 1],
    [121.962350, 29.669800, 1], // 宁电(1)灯浮
    [122.026617, 29.669800, 1],
    [122.032300, 29.706083, 1], // 进入双屿门临时航道
    [122.036650, 29.718400, 1], // 开始沿西航路航行
    [122.046683, 29.733233, 1],
    [122.061150, 29.763567, 1],
    [122.064117, 29.774383, 1], // 6#警戒区南侧转向点
    [122.073817, 29.785017, 1],
    [122.122400, 29.805900, 1], // 开始穿越7#警戒区
    [122.149600, 29.817517, 1],
    [122.196983, 29.840850, 1], // 开始穿越1#警戒区
    [122.222217, 29.853200, 1], // 岙山联检锚地南侧转向点
    [122.240233, 29.876617, 1], // 蚂蚁岛与点灯山水域
    [122.256983, 29.889633, 1],
    [122.301033, 29.906350, 1], // 水老鼠礁临时海洋倾倒区
  ];
async function loadModel(_viewer: any, _cesium: any, start: any, stop: any, positionProperty:any) {
  const airplaneUri = await _cesium.IonResource.fromAssetId(1689756);
  const airplaneEntity = _viewer.entities.add({
    availability: new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({ start, stop })]),
    position: positionProperty,
    model: { uri: airplaneUri },
    orientation: new Cesium.VelocityOrientationProperty(positionProperty),
    // path: new Cesium.PathGraphics({ width: 3 }),
  });
  viewer.trackedEntity = airplaneEntity;
}
const wander = async (type: string, _viewer: any, _cesium: any) => {
  const timeStepInSeconds = 60;
  let mudRoute:any;

  if (type === 'go') {
    mudRoute = mudrouteforgo;
  } else if (type === 'return') {
    mudRoute = mudrouteforreturn;
  } else {
    throw new Error('Invalid type provided');
  }

  const start = _cesium.JulianDate.fromIso8601('2020-03-09T23:10:00Z');
  const totalSeconds = timeStepInSeconds * (mudRoute.length - 1);
  const stop = _cesium.JulianDate.addSeconds(start, totalSeconds, new _cesium.JulianDate());

  _viewer.clock.startTime = start.clone();
  _viewer.clock.stopTime = stop.clone();
  _viewer.clock.currentTime = start.clone();
  _viewer.zoomTo(start, stop);
  _viewer.clock.multiplier = 10;
  _viewer.clock.shouldAnimate = true;

  const positionProperty = new _cesium.SampledPositionProperty();

  for (let i = 0; i < mudRoute.length; i++) {
    const dataPoint = mudRoute[i];
    const time = _cesium.JulianDate.addSeconds(start, i * timeStepInSeconds, new _cesium.JulianDate());
    const position = _cesium.Cartesian3.fromDegrees(dataPoint[0], dataPoint[1], dataPoint[2]);
    positionProperty.addSample(time, position);
  }
  loadModel(_viewer, _cesium, start, stop, positionProperty);
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值