public void MouseMove(object sender, MouseEventArgs e) { if(!isOn) return; if(State!=MeasureState.Measuring) return; Angle lat; Angle lon; m_drawArgs.WorldCamera.PickingRayIntersection( e.X, e.Y, out lat, out lon); if(Angle.IsNaN(lat)) return; EndLongitude = lon; EndLatitude = lat; // Calculate distance (meters) and heading between start and current mouse position Angle angularDistance = World.ApproxAngularDistance(StartLatitude, StartLongitude, EndLatitude, EndLongitude); Distance = angularDistance.Radians * m_world.EquatorialRadius; Azimuth = MathEngine.Azimuth(StartLatitude, StartLongitude, EndLatitude, EndLongitude); BuildMeasureLine(angularDistance); if(multiline.Count>0) this.multiline.deleteLine(); MeasureLine line = new MeasureLine(multiline.Count); line.StartLatitude = this.StartLatitude; line.EndLatitude = this.EndLatitude; line.StartLongitude = this.StartLongitude; line.EndLongitude = this.EndLongitude; line.Calculate(this.m_world,false); this.multiline.addLine(line); }