Пример #1
0
		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);
		}