【二次开发】CityMaker交互操作——测量

**

CityMaker测量

**

一、原理

CityMaker平台封装了几种交互模式,包括飞行、步行、拾取和测量等。在测量模式下,通过设置不同的测量模式即可实现不同的测量方式。包括:
  
  1. 任意点测距(gviMeasureAerialDistance)
  2. 水平空间测距(gviMeasureHorizontalDistance)
  3. 垂直空间测量(gviMeasureVerticalDistance)
  4. 坐标测量(gviMeasureCoordinate)
  5. 投影面积(gviMeasureArea)
  6. 地表距离(gviMeasureGroundDistance)*必须加载地形
  7. 地表面积(gviMeasureGroundArea )*必须加载地形
  8. 地形通视分析(gviMeasureGroupSightLine )*必须加载地形
  
  除了gviMeasureGroupSightLine(地形通视分析),其他的测量功能都支持同时显示多个测量结果,直至切换测量模式时清除。

二、关键代码

1. .Net代码

    /// <summary>
    /// 设置水平量测
    /// <param name="axRenderControl"></param>(axRenderControl1为加载的三维控件)
    private void HorizontalDistanceMeasurement(AxRenderControl axRenderControl)
    {   
       //1)设置交互模式为测量模式
       axRenderControl.InteractMode = gviInteractMode.gviInteractMeasurement;
       //2)设置测量模式
       axRenderControl.MeasurementMode = gviMeasurementMode.gviMeasureHorizontalDistance;

      // axRenderControl.MeasurementMode = gviMeasurementMode.gviMeasureArea;//面积量测
      //axRenderControl.MeasurementMode = gviMeasurementMode.gviMeasureCoordinate;//坐标量测
      // axRenderControl.MeasurementMode = gviMeasurementMode.gviMeasureVerticalDistance;//高度量测
    }

2. js代码

   /*设置水平量测 */
  function MeasureHorizontalDistanceMeasurement(){
      __g = document.getElementById("__g");  //(__g对象即为加载的三维控件)
      __g.interactMode = 3; //    设置交互模式为测量模式gviInteractMode.gviInteractMeasurement
      __g.measurementMode =1 ;//  设置测量模式为水平量测gviMeasurementMode.gviMeasureHorizontalDistance

      // __g.measurementMode =5 ;// 2)设置测量模式为水平量测gviMeasureArea
      // __g.measurementMode =3 ;// 2)设置测量模式为水平量测  gviMeasureCoordinate
      // __g.measurementMode =2 ;// 2)设置测量模式为水平量测  gviMeasureVerticalDistance
   }

三、实现效果

【二次开发】CityMaker交互操作——测量