1 //内部测量距离函数
2 _.prototype._measureLineSpace = function() {3 var me = this;4 var viewer = this.viewer;5 //取消双击事件-追踪该位置
6 viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);7
8 var handler = newCesium.ScreenSpaceEventHandler(viewer.scene._imageryLayerCollection);9 var positions =[];10 var poly = null;11 var distance = 0;12 var cartesian = null;13 varfloatingPoint;14 varlabelPt;15
16 handler.setInputAction(function(movement) {17 let ray =viewer.camera.getPickRay(movement.endPosition);18 cartesian =viewer.scene.globe.pick(ray, viewer.scene);19 if(!Cesium.defined(cartesian)) //跳出地球时异常
20 return;21 if(positions.length >= 2) {22 if(!Cesium.defined(poly)) {23 poly = newPolyLinePrimitive(positions);24 } else{25 positions.pop();26 positions.push(cartesian);27 }28 }29 }, Cesium.ScreenSpaceEventType.MOUSE_MOVE)