• 初遇Citymaker (十三)


    视角巡航

    • 调用
    • let p1 = cw5.geometryCreator.createPoint(150139, 37917, 64);
    • let p2 = cw5.geometryCreator.createPoint(150180, 37854, 64);
    • let poi1 = cw5.geometryCreator.createPOI(150258, 37887, 64);
    • switch (type) {
    • case "load":
    • cw5.cameraTourUtils.loadPoints([p1,p2,poi1])
    • break;
    • case "flyByLine":
    • cw5.cameraTourUtils.flyByLine()
    • break;
    • case "play":
    • cw5.cameraTourUtils.play();
    • break;
    • case "pause":
    • cw5.cameraTourUtils.pause();
    • break;
    • case "stop":
    • cw5.cameraTourUtils.stop();
    • break;
    • }
    • cameraTourUtils工具类
      ```javascript

    import { cw5 } from "../index.js";

    export const cameraTourUtils = {};
    let __cameraTour = null;
    let flyByLine={};
    flyByLine.v = {};

    /**
    *初始化tour
    */
    cameraTourUtils.initTour=function() {
    flyByLine.clearLine();
    if(__cameraTour==null){
    __cameraTour = cw5.__g.objectManager.createCameraTour(cw5.rootId);
    }
    __cameraTour.clearWaypoints()
    }

    /**

    • 加载XML
      */
      cameraTourUtils.loadXML = function(xml) {
      cameraTourUtils.initTour();
      __cameraTour.fromXml(xml);
      };

    /**

    • 加载路径节点数组 points
      */
      cameraTourUtils.loadPoints = function(points) {
      cameraTourUtils.initTour();
      let angle = cw5.__g.new_EulerAngle;
      let tilt = -20;
      let heading = 0;
      let duration=5;
      angle.set(heading, tilt, 0);
      if(points!=null&&points.length>0){
      for(let i=0;i<points.length;i++){
      __cameraTour.addWaypoint2(points[i].object,angle, duration,1);
      }
      }

    };

    /**

    • 通过鼠标点选路径飞行
      */
      cameraTourUtils.flyByLine=function(){
      flyByLine.v.equidistantArry = [];
      let __g = cw5.__g;
      // rLine = flyByLine.v.rLine;
      // let geoLine = flyByLine.v.geoLine;
      cameraTourUtils.initTour();
      __g.objectEditor.finishEdit(); //取消编辑状态
      __g.interactMode = 4; //交互模式 4 几何数据编辑模式
      let geoLine = __g.geometryFactory.createGeometry(cw5.innerConfig.gviGeometryType.gviGeometryPolyline, cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZ);
      let curveSymbol = __g.new_CurveSymbol;
      curveSymbol.width = -3;
      curveSymbol.color = 0xff0000ff;
      let rLine = __g.objectManager.createRenderPolyline(geoLine, curveSymbol, "");
      rLine.glow(5);
      let result = __g.objectEditor.startEditRenderGeometry(rLine, cw5.innerConfig.gviGeoEditType.gviGeoEditCreator);
      if(cw5.version==7){
      __g.onobjectediting = flyByLine.fnonobjectediting;
      __g.onobjecteditfinish = flyByLine.fnonobjecteditfinish;
      }
      else if(cw5.version==8){
      cw5.callback["onObjectEditing"] = flyByLine.fnonobjectediting;
      cw5.callback["onObjectEditFinish"] = flyByLine.fnonobjecteditfinish;
      cw5.__g.callback=cw5.callback;
      }

       

      flyByLine.v.rLine = rLine;
      }

    /**

    • 开始漫游
      */
      cameraTourUtils.play = function () {
      if(__cameraTour){
      __cameraTour.play();
      }
      else{
  • 相关阅读:
    进程与线程
    the art of seo(chapter seven)
    the art of seo(chapter six)
    the art of seo(chapter five)
    the art of seo(chapter four)
    the art of seo(chapter three)
    the art of seo(chapter two)
    the art of seo(chapter one)
    Sentinel Cluster流程分析
    Sentinel Core流程分析
  • 原文地址:https://www.cnblogs.com/haibalai/p/15837871.html
Copyright © 2020-2023  润新知