LazMapViewer: Move sample projects to common folder "examples". New demo project "trackdemo".
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8079 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
		
							parent
							
								
									b10c38f5d7
								
							
						
					
					
						commit
						9448894c7c
					
				@ -18,7 +18,7 @@ object MainForm: TMainForm
 | 
			
		||||
    Top = 0
 | 
			
		||||
    Width = 608
 | 
			
		||||
    Align = alClient
 | 
			
		||||
    CachePath = '../../../../example_cache/'
 | 
			
		||||
    CachePath = '../../../../cache/'
 | 
			
		||||
    DefaultTrackColor = clBlue
 | 
			
		||||
    DefaultTrackWidth = 3
 | 
			
		||||
    DownloadEngine = MapView.BuiltInDLE
 | 
			
		||||
@ -132,7 +132,7 @@ type
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  MAX_LOCATIONS_HISTORY = 50;
 | 
			
		||||
  HOMEDIR = '../../../';   // share the cache in both example projects
 | 
			
		||||
  HOMEDIR = '../../../../';   // share the cache in both example projects
 | 
			
		||||
  MAP_PROVIDER_FILENAME = 'map-providers.xml';
 | 
			
		||||
  USE_DMS = true;
 | 
			
		||||
 | 
			
		||||
@ -338,8 +338,8 @@ begin
 | 
			
		||||
  POIImage.PixelFormat := pf32bit;
 | 
			
		||||
  POIImage.LoadFromFile('../../mapmarker.png');
 | 
			
		||||
 | 
			
		||||
  ForceDirectories(HOMEDIR + 'example_cache/');
 | 
			
		||||
  MapView.CachePath := HOMEDIR + 'example_cache/';
 | 
			
		||||
  ForceDirectories(HOMEDIR + 'cache/');
 | 
			
		||||
  MapView.CachePath := HOMEDIR + 'cache/';
 | 
			
		||||
  MapView.GetMapProviders(CbProviders.Items);
 | 
			
		||||
  CbProviders.ItemIndex := CbProviders.Items.Indexof(MapView.MapProvider);
 | 
			
		||||
  MapView.DoubleBuffered := true;
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB  | 
@ -10,7 +10,7 @@ object MainForm: TMainForm
 | 
			
		||||
  OnDestroy = FormDestroy
 | 
			
		||||
  OnShow = FormShow
 | 
			
		||||
  ShowHint = True
 | 
			
		||||
  LCLVersion = '2.1.0.0'
 | 
			
		||||
  LCLVersion = '2.3.0.0'
 | 
			
		||||
  object MapView: TMapView
 | 
			
		||||
    Left = 0
 | 
			
		||||
    Height = 640
 | 
			
		||||
@ -25,7 +25,6 @@ object MainForm: TMainForm
 | 
			
		||||
    Font.Color = clBlack
 | 
			
		||||
    MapProvider = 'OpenStreetMap Mapnik'
 | 
			
		||||
    UseThreads = True
 | 
			
		||||
    Zoom = 0
 | 
			
		||||
    OnZoomChange = MapViewZoomChange
 | 
			
		||||
    OnChange = MapViewChange
 | 
			
		||||
    OnMouseLeave = MapViewMouseLeave
 | 
			
		||||
@ -75,7 +74,6 @@ object MainForm: TMainForm
 | 
			
		||||
        BorderSpacing.Left = 6
 | 
			
		||||
        BorderSpacing.Top = 6
 | 
			
		||||
        Caption = 'Zoom:'
 | 
			
		||||
        ParentColor = False
 | 
			
		||||
      end
 | 
			
		||||
      object CbMouseCoords: TGroupBox
 | 
			
		||||
        AnchorSideLeft.Control = PgData
 | 
			
		||||
@ -106,7 +104,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Left = 8
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          Caption = 'Longitude'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object LblPositionLatitude: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = CbMouseCoords
 | 
			
		||||
@ -120,7 +117,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          BorderSpacing.Bottom = 8
 | 
			
		||||
          Caption = 'Latitude'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object InfoPositionLongitude: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = CbMouseCoords
 | 
			
		||||
@ -136,7 +132,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          BorderSpacing.Right = 16
 | 
			
		||||
          Caption = 'Label2'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object InfoPositionLatitude: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = CbMouseCoords
 | 
			
		||||
@ -154,7 +149,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Right = 16
 | 
			
		||||
          BorderSpacing.Bottom = 8
 | 
			
		||||
          Caption = 'Label2'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      object GbCenterCoords: TGroupBox
 | 
			
		||||
@ -184,7 +178,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Left = 8
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          Caption = 'Longitude'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object LblCenterLatitude: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = GbCenterCoords
 | 
			
		||||
@ -198,7 +191,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          BorderSpacing.Bottom = 8
 | 
			
		||||
          Caption = 'Latitude'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object InfoCenterLongitude: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = GbCenterCoords
 | 
			
		||||
@ -214,7 +206,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          BorderSpacing.Right = 16
 | 
			
		||||
          Caption = 'Label2'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object InfoCenterLatitude: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = GbCenterCoords
 | 
			
		||||
@ -232,7 +223,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Right = 16
 | 
			
		||||
          BorderSpacing.Bottom = 8
 | 
			
		||||
          Caption = 'Label2'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      object GbScreenSize: TGroupBox
 | 
			
		||||
@ -262,7 +252,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Left = 8
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          Caption = 'Width'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object LblViewportHeight: TLabel
 | 
			
		||||
          AnchorSideLeft.Control = GbScreenSize
 | 
			
		||||
@ -276,7 +265,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          BorderSpacing.Bottom = 8
 | 
			
		||||
          Caption = 'Height'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object InfoViewportWidth: TLabel
 | 
			
		||||
          AnchorSideTop.Control = GbScreenSize
 | 
			
		||||
@ -291,7 +279,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          BorderSpacing.Right = 16
 | 
			
		||||
          Caption = 'Label2'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object InfoViewportHeight: TLabel
 | 
			
		||||
          AnchorSideTop.Control = InfoViewportWidth
 | 
			
		||||
@ -308,7 +295,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Right = 16
 | 
			
		||||
          BorderSpacing.Bottom = 8
 | 
			
		||||
          Caption = 'Label2'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      object CbDistanceUnits: TComboBox
 | 
			
		||||
@ -396,7 +382,6 @@ object MainForm: TMainForm
 | 
			
		||||
          Width = 177
 | 
			
		||||
          BorderSpacing.Top = 8
 | 
			
		||||
          Caption = 'Select one of the found locations:'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
        end
 | 
			
		||||
        object BtnGoTo: TButton
 | 
			
		||||
          AnchorSideTop.Control = CbFoundLocations
 | 
			
		||||
@ -482,7 +467,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Left = 8
 | 
			
		||||
          BorderSpacing.Top = 4
 | 
			
		||||
          Caption = 'Click with right mouse button to add a GPS point.'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
          WordWrap = True
 | 
			
		||||
        end
 | 
			
		||||
        object GPSPointInfo: TLabel
 | 
			
		||||
@ -502,7 +486,6 @@ object MainForm: TMainForm
 | 
			
		||||
          BorderSpacing.Top = 16
 | 
			
		||||
          BorderSpacing.Right = 6
 | 
			
		||||
          Caption = 'GPSPointInfo'
 | 
			
		||||
          ParentColor = False
 | 
			
		||||
          WordWrap = True
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
@ -548,7 +531,6 @@ object MainForm: TMainForm
 | 
			
		||||
        Width = 86
 | 
			
		||||
        BorderSpacing.Top = 6
 | 
			
		||||
        Caption = 'Drawing engine:'
 | 
			
		||||
        ParentColor = False
 | 
			
		||||
      end
 | 
			
		||||
      object CbDrawingEngine: TComboBox
 | 
			
		||||
        AnchorSideLeft.Control = PgConfig
 | 
			
		||||
@ -587,7 +569,6 @@ object MainForm: TMainForm
 | 
			
		||||
        BorderSpacing.Top = 8
 | 
			
		||||
        Caption = 'Providers:'
 | 
			
		||||
        FocusControl = CbProviders
 | 
			
		||||
        ParentColor = False
 | 
			
		||||
      end
 | 
			
		||||
      object CbProviders: TComboBox
 | 
			
		||||
        AnchorSideLeft.Control = PgConfig
 | 
			
		||||
@ -809,7 +790,6 @@ object MainForm: TMainForm
 | 
			
		||||
        Width = 39
 | 
			
		||||
        BorderSpacing.Left = 8
 | 
			
		||||
        Caption = 'Backgr.'
 | 
			
		||||
        ParentColor = False
 | 
			
		||||
      end
 | 
			
		||||
      object Bevel1: TBevel
 | 
			
		||||
        AnchorSideLeft.Control = CbDrawingEngine
 | 
			
		||||
@ -137,7 +137,7 @@ type
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  MAX_LOCATIONS_HISTORY = 50;
 | 
			
		||||
  HOMEDIR = '../../../';   // share the cache in both example projects
 | 
			
		||||
  HOMEDIR = '../../../../../';   // share the cache in both fulldemo projects
 | 
			
		||||
  MAP_PROVIDER_FILENAME = 'map-providers.xml';
 | 
			
		||||
  USE_DMS = true;
 | 
			
		||||
 | 
			
		||||
@ -358,8 +358,8 @@ begin
 | 
			
		||||
  POIImage.PixelFormat := pf32bit;
 | 
			
		||||
  POIImage.LoadFromFile('../../mapmarker.png');
 | 
			
		||||
 | 
			
		||||
  ForceDirectories(HOMEDIR + 'example_cache/');
 | 
			
		||||
  MapView.CachePath := HOMEDIR + 'example_cache/';
 | 
			
		||||
  ForceDirectories(HOMEDIR + 'cache/');
 | 
			
		||||
  MapView.CachePath := HOMEDIR + 'cache/';
 | 
			
		||||
  MapView.GetMapProviders(CbProviders.Items);
 | 
			
		||||
  CbProviders.ItemIndex := CbProviders.Items.Indexof(MapView.MapProvider);
 | 
			
		||||
  MapView.DoubleBuffered := true;
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										29786
									
								
								components/lazmapviewer/examples/trackdemo/grand_canyon_trail.gpx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29786
									
								
								components/lazmapviewer/examples/trackdemo/grand_canyon_trail.gpx
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										371
									
								
								components/lazmapviewer/examples/trackdemo/main.lfm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										371
									
								
								components/lazmapviewer/examples/trackdemo/main.lfm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,371 @@
 | 
			
		||||
object MainForm: TMainForm
 | 
			
		||||
  Left = 285
 | 
			
		||||
  Height = 600
 | 
			
		||||
  Top = 131
 | 
			
		||||
  Width = 1000
 | 
			
		||||
  Caption = 'Grand Canyon Hike'
 | 
			
		||||
  ClientHeight = 600
 | 
			
		||||
  ClientWidth = 1000
 | 
			
		||||
  OnActivate = FormActivate
 | 
			
		||||
  LCLVersion = '2.3.0.0'
 | 
			
		||||
  object MapView: TMapView
 | 
			
		||||
    Left = 0
 | 
			
		||||
    Height = 600
 | 
			
		||||
    Top = 0
 | 
			
		||||
    Width = 606
 | 
			
		||||
    Align = alClient
 | 
			
		||||
    CachePath = '../../../../cache/'
 | 
			
		||||
    DefaultTrackColor = 140
 | 
			
		||||
    DefaultTrackWidth = 3
 | 
			
		||||
    DownloadEngine = MapView.BuiltInDLE
 | 
			
		||||
    DrawingEngine = MapView.BuiltInDE
 | 
			
		||||
    Font.CharSet = ANSI_CHARSET
 | 
			
		||||
    Font.Color = clBlack
 | 
			
		||||
    Font.Pitch = fpVariable
 | 
			
		||||
    MapProvider = 'OpenStreetMap Mapnik'
 | 
			
		||||
    POIImage.Data = {
 | 
			
		||||
      36170000424D36170000000000003600000028000000200000002E0000000100
 | 
			
		||||
      2000000000000017000064000000640000000000000000000000FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FD560000FC4CFFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000F1110000FEE70000FEE10000
 | 
			
		||||
      EA0CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FE9A0000FFFF0000FFFF0000
 | 
			
		||||
      FE8FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF000000FB3E0000FEFE0000FFFF0000FFFF0000
 | 
			
		||||
      FEFC0000FB35FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF000000DB070000FED70000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FECF0000C004FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF000000FE800000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FD75FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF000000F9290000FEF90000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FEF50000F821FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00000080020000FEC30000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FEB8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF000000FD660000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FD5CFFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
 | 
			
		||||
      F5180000FEEF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FEEA0000F213FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
 | 
			
		||||
      FEAA0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FE9FFFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FC4C0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEFE0000FC42FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000EA0C0000FEE10000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEDB0000E309FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FE900000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FE86FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FB350000FEFC0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEFA0000
 | 
			
		||||
      FA2DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF000000C0040000FED00000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FEC700008002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF000000FD770000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FD6CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF000000F8230000FEF80000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FEF50000F61CFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF000000FECF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FEC8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF000000FE820000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FD79FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF000000F9270000FEFD0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FEFD0000F822FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF000000FEA70000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FEF70000FEB50000FE810000FD670000FD670000
 | 
			
		||||
      FE810000FEB50000FEF70000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FEA7FFFFFF00FFFFFF00FFFFFF000000
 | 
			
		||||
      FB340000FEFE0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FEFD0000FE920000F213FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF000000F2130000FE920000FEFD0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FEFE0000FB34FFFFFF00FFFFFF000000
 | 
			
		||||
      FEAC0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FEF60000FC4DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF000000FC4D0000FEF60000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEACFFFFFF000000F3150000
 | 
			
		||||
      FEFA0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEFE0000
 | 
			
		||||
      FC54FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FC540000FEFE0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEFA0000F3150000FD610000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEA2FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FEA20000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FD610000FEA00000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEFD0000F823FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000F8230000FEFD0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEA00000FECD0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEC5FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FEC50000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FECD0000FEEC0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FE8CFFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FE8C0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEEC0000FEFA0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FD72FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FD720000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEFA0000FEF70000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FD75FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FD750000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEF70000FEE80000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FE95FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FE950000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEE80000FEC50000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FED5FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FED50000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEC50000FE940000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FB37FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FB370000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FE940000FC520000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEC00000
 | 
			
		||||
      8002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000080020000FEC00000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FC520000E60A0000
 | 
			
		||||
      FEF20000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FD7EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FD7E0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEF20000E60AFFFFFF000000
 | 
			
		||||
      FE950000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FEFE0000FD7F00008002FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00000080020000FD7F0000FEFE0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FE95FFFFFF00FFFFFF000000
 | 
			
		||||
      F8200000FEF80000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FEC30000FB3DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF000000FB3D0000FEC30000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FEF80000F820FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF000000FE830000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FEDB0000FE9C0000FD7E0000FD7E0000
 | 
			
		||||
      FE9C0000FEDB0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FE83FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF000000DB070000FECC0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FECC0000DB07FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF000000F71F0000FEE40000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FEE40000F71FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF000000FA2B0000FEE50000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FEE50000FA2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF000000F8210000FECD0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FECE0000F821FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000DB070000FE850000FEF90000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FEF90000FE850000
 | 
			
		||||
      DB07FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000F8230000
 | 
			
		||||
      FE990000FEF30000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000
 | 
			
		||||
      FFFF0000FFFF0000FFFF0000FFFF0000FEF30000FE990000F823FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF000000EA0C0000FD570000FE980000FEC70000FEEB0000FEF90000FEF90000
 | 
			
		||||
      FEEB0000FEC70000FE980000FD570000EA0CFFFFFF00FFFFFF00FFFFFF00FFFF
 | 
			
		||||
      FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
 | 
			
		||||
    }
 | 
			
		||||
    POITextBgColor = clCream
 | 
			
		||||
    OnCenterMove = MapViewCenterMove
 | 
			
		||||
    OnZoomChange = MapViewZoomChange
 | 
			
		||||
  end
 | 
			
		||||
  object Panel1: TPanel
 | 
			
		||||
    Left = 619
 | 
			
		||||
    Height = 584
 | 
			
		||||
    Top = 8
 | 
			
		||||
    Width = 373
 | 
			
		||||
    Align = alRight
 | 
			
		||||
    BorderSpacing.Around = 8
 | 
			
		||||
    BevelOuter = bvNone
 | 
			
		||||
    ClientHeight = 584
 | 
			
		||||
    ClientWidth = 373
 | 
			
		||||
    TabOrder = 1
 | 
			
		||||
    object TrackGrid: TStringGrid
 | 
			
		||||
      AnchorSideLeft.Control = Panel1
 | 
			
		||||
      AnchorSideTop.Control = lblInfo
 | 
			
		||||
      AnchorSideTop.Side = asrBottom
 | 
			
		||||
      AnchorSideRight.Control = Panel1
 | 
			
		||||
      AnchorSideRight.Side = asrBottom
 | 
			
		||||
      AnchorSideBottom.Control = clbTrackColor
 | 
			
		||||
      Left = 0
 | 
			
		||||
      Height = 469
 | 
			
		||||
      Top = 58
 | 
			
		||||
      Width = 373
 | 
			
		||||
      Anchors = [akTop, akLeft, akRight, akBottom]
 | 
			
		||||
      AutoFillColumns = True
 | 
			
		||||
      BorderSpacing.Top = 8
 | 
			
		||||
      BorderSpacing.Bottom = 8
 | 
			
		||||
      DefaultColWidth = 30
 | 
			
		||||
      MouseWheelOption = mwGrid
 | 
			
		||||
      Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSelect, goThumbTracking, goFixedRowNumbering, goTruncCellHints]
 | 
			
		||||
      TabOrder = 0
 | 
			
		||||
      OnClick = TrackGridClick
 | 
			
		||||
      OnPrepareCanvas = TrackGridPrepareCanvas
 | 
			
		||||
      ColWidths = (
 | 
			
		||||
        30
 | 
			
		||||
        84
 | 
			
		||||
        84
 | 
			
		||||
        84
 | 
			
		||||
        87
 | 
			
		||||
      )
 | 
			
		||||
      Cells = (
 | 
			
		||||
        4
 | 
			
		||||
        1
 | 
			
		||||
        0
 | 
			
		||||
        'Latitude'
 | 
			
		||||
        2
 | 
			
		||||
        0
 | 
			
		||||
        'Longitude'
 | 
			
		||||
        3
 | 
			
		||||
        0
 | 
			
		||||
        'Altitude'
 | 
			
		||||
        4
 | 
			
		||||
        0
 | 
			
		||||
        'Time'
 | 
			
		||||
      )
 | 
			
		||||
    end
 | 
			
		||||
    object cbAutoTrace: TCheckBox
 | 
			
		||||
      AnchorSideLeft.Control = Panel1
 | 
			
		||||
      AnchorSideBottom.Control = Panel1
 | 
			
		||||
      AnchorSideBottom.Side = asrBottom
 | 
			
		||||
      Left = 0
 | 
			
		||||
      Height = 19
 | 
			
		||||
      Top = 565
 | 
			
		||||
      Width = 152
 | 
			
		||||
      Anchors = [akLeft, akBottom]
 | 
			
		||||
      BorderSpacing.Top = 8
 | 
			
		||||
      Caption = 'Trace track automatically'
 | 
			
		||||
      OnChange = cbAutoTraceChange
 | 
			
		||||
      TabOrder = 1
 | 
			
		||||
    end
 | 
			
		||||
    object Label1: TLabel
 | 
			
		||||
      AnchorSideLeft.Control = Panel1
 | 
			
		||||
      AnchorSideTop.Control = clbTrackColor
 | 
			
		||||
      AnchorSideTop.Side = asrCenter
 | 
			
		||||
      Left = 0
 | 
			
		||||
      Height = 15
 | 
			
		||||
      Top = 539
 | 
			
		||||
      Width = 60
 | 
			
		||||
      BorderSpacing.Right = 8
 | 
			
		||||
      Caption = 'Track color:'
 | 
			
		||||
    end
 | 
			
		||||
    object clbTrackColor: TColorBox
 | 
			
		||||
      AnchorSideLeft.Control = Label1
 | 
			
		||||
      AnchorSideLeft.Side = asrBottom
 | 
			
		||||
      AnchorSideRight.Control = Panel1
 | 
			
		||||
      AnchorSideRight.Side = asrBottom
 | 
			
		||||
      AnchorSideBottom.Control = cbAutoTrace
 | 
			
		||||
      Left = 68
 | 
			
		||||
      Height = 22
 | 
			
		||||
      Top = 535
 | 
			
		||||
      Width = 305
 | 
			
		||||
      Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbIncludeNone, cbCustomColor, cbPrettyNames, cbCustomColors]
 | 
			
		||||
      Anchors = [akLeft, akRight, akBottom]
 | 
			
		||||
      DropDownCount = 32
 | 
			
		||||
      ItemHeight = 16
 | 
			
		||||
      OnChange = clbTrackColorChange
 | 
			
		||||
      TabOrder = 2
 | 
			
		||||
    end
 | 
			
		||||
    object lblInfo: TLabel
 | 
			
		||||
      AnchorSideLeft.Control = Panel1
 | 
			
		||||
      AnchorSideTop.Control = Bevel1
 | 
			
		||||
      AnchorSideTop.Side = asrBottom
 | 
			
		||||
      AnchorSideRight.Control = Panel1
 | 
			
		||||
      AnchorSideRight.Side = asrBottom
 | 
			
		||||
      Left = 0
 | 
			
		||||
      Height = 15
 | 
			
		||||
      Top = 35
 | 
			
		||||
      Width = 373
 | 
			
		||||
      Anchors = [akTop, akLeft, akRight]
 | 
			
		||||
      BorderSpacing.Top = 8
 | 
			
		||||
      Caption = 'Click on row to display point in map'
 | 
			
		||||
    end
 | 
			
		||||
    object lblMapCenter: TLabel
 | 
			
		||||
      AnchorSideLeft.Control = Panel1
 | 
			
		||||
      AnchorSideTop.Control = Panel1
 | 
			
		||||
      AnchorSideRight.Control = Panel1
 | 
			
		||||
      AnchorSideRight.Side = asrBottom
 | 
			
		||||
      Left = 0
 | 
			
		||||
      Height = 15
 | 
			
		||||
      Top = 0
 | 
			
		||||
      Width = 373
 | 
			
		||||
      Anchors = [akTop, akLeft, akRight]
 | 
			
		||||
      Caption = 'Map center: -'
 | 
			
		||||
    end
 | 
			
		||||
    object Bevel1: TBevel
 | 
			
		||||
      AnchorSideLeft.Control = Panel1
 | 
			
		||||
      AnchorSideTop.Control = lblMapCenter
 | 
			
		||||
      AnchorSideTop.Side = asrBottom
 | 
			
		||||
      AnchorSideRight.Control = Panel1
 | 
			
		||||
      AnchorSideRight.Side = asrBottom
 | 
			
		||||
      Left = 0
 | 
			
		||||
      Height = 4
 | 
			
		||||
      Top = 23
 | 
			
		||||
      Width = 373
 | 
			
		||||
      Anchors = [akTop, akLeft, akRight]
 | 
			
		||||
      BorderSpacing.Top = 8
 | 
			
		||||
      Shape = bsBottomLine
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  object Splitter1: TSplitter
 | 
			
		||||
    Left = 606
 | 
			
		||||
    Height = 600
 | 
			
		||||
    Top = 0
 | 
			
		||||
    Width = 5
 | 
			
		||||
    Align = alRight
 | 
			
		||||
    ResizeAnchor = akRight
 | 
			
		||||
  end
 | 
			
		||||
  object Timer: TTimer
 | 
			
		||||
    Enabled = False
 | 
			
		||||
    Interval = 10
 | 
			
		||||
    OnTimer = TimerTimer
 | 
			
		||||
    Left = 733
 | 
			
		||||
    Top = 392
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										206
									
								
								components/lazmapviewer/examples/trackdemo/main.pas
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								components/lazmapviewer/examples/trackdemo/main.pas
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,206 @@
 | 
			
		||||
unit main;
 | 
			
		||||
 | 
			
		||||
{$mode objfpc}{$H+}
 | 
			
		||||
 | 
			
		||||
interface
 | 
			
		||||
 | 
			
		||||
uses
 | 
			
		||||
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
 | 
			
		||||
  Grids, StdCtrls, ColorBox, mvMapViewer, mvGpsObj;
 | 
			
		||||
 | 
			
		||||
type
 | 
			
		||||
 | 
			
		||||
  { TMainForm }
 | 
			
		||||
 | 
			
		||||
  TMainForm = class(TForm)
 | 
			
		||||
    Bevel1: TBevel;
 | 
			
		||||
    cbAutoTrace: TCheckBox;
 | 
			
		||||
    clbTrackColor: TColorBox;
 | 
			
		||||
    Label1: TLabel;
 | 
			
		||||
    lblInfo: TLabel;
 | 
			
		||||
    lblMapCenter: TLabel;
 | 
			
		||||
    MapView: TMapView;
 | 
			
		||||
    Panel1: TPanel;
 | 
			
		||||
    Splitter1: TSplitter;
 | 
			
		||||
    TrackGrid: TStringGrid;
 | 
			
		||||
    Timer: TTimer;
 | 
			
		||||
    procedure cbAutoTraceChange(Sender: TObject);
 | 
			
		||||
    procedure clbTrackColorChange(Sender: TObject);
 | 
			
		||||
    procedure FormActivate(Sender: TObject);
 | 
			
		||||
    procedure MapViewCenterMove(Sender: TObject);
 | 
			
		||||
    procedure MapViewZoomChange(Sender: TObject);
 | 
			
		||||
    procedure TrackGridClick(Sender: TObject);
 | 
			
		||||
    procedure TrackGridPrepareCanvas(sender: TObject; {%H-}aCol, {%H-}aRow: Integer;
 | 
			
		||||
      {%H-}aState: TGridDrawState);
 | 
			
		||||
    procedure TimerTimer(Sender: TObject);
 | 
			
		||||
  private
 | 
			
		||||
    FTrack: TGpsTrack;
 | 
			
		||||
    FCurrPt: TGpsPoint;
 | 
			
		||||
    FCurrPtIndex: Integer;
 | 
			
		||||
    procedure InfoCaption;
 | 
			
		||||
    procedure LoadGPXSampleFile;
 | 
			
		||||
    procedure MoveTrackPointToIndex(ANewIndex: Integer);
 | 
			
		||||
 | 
			
		||||
  public
 | 
			
		||||
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
  MainForm: TMainForm;
 | 
			
		||||
 | 
			
		||||
implementation
 | 
			
		||||
 | 
			
		||||
uses
 | 
			
		||||
  mvTypes, mvEngine, mvGpx;
 | 
			
		||||
 | 
			
		||||
{$R *.lfm}
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  _TRACK_PT_ = 10;
 | 
			
		||||
 | 
			
		||||
function DMSToDeg(Deg, Min: Word; Sec: Double): Double;
 | 
			
		||||
begin
 | 
			
		||||
  Result := Deg + Min/60 + Sec/3600;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
{ TMainForm }
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.FormActivate(Sender: TObject);
 | 
			
		||||
var
 | 
			
		||||
  crs: TCursor;
 | 
			
		||||
begin
 | 
			
		||||
  crs := Screen.Cursor;
 | 
			
		||||
  Screen.Cursor := crHourglass;
 | 
			
		||||
  try
 | 
			
		||||
    MapView.MapProvider := 'Open Topo Map';
 | 
			
		||||
    MapView.Active := true;
 | 
			
		||||
    // Center on Grand Canyon Village
 | 
			
		||||
    MapView.Zoom := 13;
 | 
			
		||||
    MapView.Center := RealPoint(DMSToDeg(36, 4, 32.2), -DMSToDeg(112, 7, 17.4));
 | 
			
		||||
 | 
			
		||||
    clbTrackColor.Selected := MapView.DefaultTrackColor;
 | 
			
		||||
 | 
			
		||||
    // Load a GPX file of a hiking trail into the Grand Canyon
 | 
			
		||||
    LoadGPXSampleFile;
 | 
			
		||||
  finally
 | 
			
		||||
    Screen.Cursor := crs;
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.cbAutoTraceChange(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  if cbAutoTrace.Checked then
 | 
			
		||||
  begin
 | 
			
		||||
    if FCurrPtIndex = FTrack.Points.Count-1 then
 | 
			
		||||
      FCurrPtIndex := 0;
 | 
			
		||||
    Timer.Enabled := true;
 | 
			
		||||
    lblInfo.Enabled := false;
 | 
			
		||||
    TrackGrid.Enabled := false;
 | 
			
		||||
  end else begin
 | 
			
		||||
    Timer.Enabled := false;
 | 
			
		||||
    TrackGrid.Enabled := true;
 | 
			
		||||
    lblInfo.Enabled := true;
 | 
			
		||||
    TrackGrid.Row := FCurrPtIndex + 1;
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.clbTrackColorChange(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  MapView.DefaultTrackColor := clbTrackColor.Selected;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.InfoCaption;
 | 
			
		||||
begin
 | 
			
		||||
  lblMapCenter.Caption := Format('MapCenter: Lat %s, Lon %s, Zoom %d', [
 | 
			
		||||
    LatToStr(MapView.Center.Lat, true), LonToStr(MapView.Center.Lon, true), MapView.Zoom
 | 
			
		||||
  ]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.LoadGPXSampleFile;
 | 
			
		||||
const
 | 
			
		||||
  GPX_FILE_NAME = '../../grand_canyon_trail.gpx';
 | 
			
		||||
  // file 972150.gpx from https://www.summitpost.org/grand-canyon-in-a-day/972150
 | 
			
		||||
var
 | 
			
		||||
  reader: TGpxReader;
 | 
			
		||||
  b: TRealArea;
 | 
			
		||||
  i: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  reader := TGpxReader.Create;
 | 
			
		||||
  try
 | 
			
		||||
    reader.LoadFromFile(GPX_FILE_NAME, MapView.GPSItems, b);
 | 
			
		||||
    MapView.Engine.ZoomOnArea(b);
 | 
			
		||||
    FTrack := MapView.GpsItems.GetObjectsInArea(b).Items[0] as TGpsTrack;
 | 
			
		||||
 | 
			
		||||
    FCurrPtIndex := 0;
 | 
			
		||||
    FCurrPt := TGpsPoint.Create(0, 0);
 | 
			
		||||
    FCurrPt.Assign(FTrack.Points[FCurrPtIndex]);
 | 
			
		||||
    FCurrPt.Name := Format('Time: %s'+LineEnding+'Elevation: %.0fm', [
 | 
			
		||||
      TimeToStr(FCurrPt.DateTime), FCurrPt.Elevation
 | 
			
		||||
    ]);
 | 
			
		||||
    MapView.GPSItems.Add(FCurrPt, _TRACK_PT_);
 | 
			
		||||
 | 
			
		||||
    // Show track points in grid
 | 
			
		||||
    TrackGrid.RowCount := FTrack.Points.Count + 1;
 | 
			
		||||
    for i := 0 to FTrack.Points.Count-1 do
 | 
			
		||||
    begin
 | 
			
		||||
      TrackGrid.Cells[1, i+1] := LatToStr(FTrack.Points[i].Lat, true);
 | 
			
		||||
      TrackGrid.Cells[2, i+1] := LonToStr(FTrack.Points[i].Lon, true);
 | 
			
		||||
      TrackGrid.Cells[3, i+1] := FormatFloat('0', FTrack.Points[i].Elevation)+'m';
 | 
			
		||||
      TrackGrid.Cells[4, i+1] := FormatDateTime('hh:nn:ss', FTrack.points[i].DateTime);
 | 
			
		||||
    end;
 | 
			
		||||
  finally
 | 
			
		||||
    reader.Free;
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.MapViewCenterMove(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  InfoCaption;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.MapViewZoomChange(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  InfoCaption;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.MoveTrackPointToIndex(ANewIndex: Integer);
 | 
			
		||||
begin
 | 
			
		||||
  if (ANewIndex < 0) or (ANewIndex >= FTrack.Points.Count) then
 | 
			
		||||
    exit;
 | 
			
		||||
  FCurrPtIndex := ANewIndex;
 | 
			
		||||
  FCurrPt.Assign(FTrack.Points[FCurrPtIndex]);
 | 
			
		||||
  FCurrPt.Name := Format('Time: %s'+LineEnding+'Elevation: %.0fm', [
 | 
			
		||||
    TimeToStr(FCurrPt.DateTime), FCurrPt.Elevation
 | 
			
		||||
  ]);
 | 
			
		||||
  MapView.Engine.Redraw;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.TrackGridClick(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  MoveTrackPointToIndex(TrackGrid.Row-1);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.TrackGridPrepareCanvas(sender: TObject; aCol, aRow: Integer;
 | 
			
		||||
  aState: TGridDrawState);
 | 
			
		||||
var
 | 
			
		||||
  ts: TTextStyle;
 | 
			
		||||
  grid: TStringGrid;
 | 
			
		||||
begin
 | 
			
		||||
  grid := Sender as TStringGrid;
 | 
			
		||||
  ts := grid.Canvas.TextStyle;
 | 
			
		||||
  ts.Alignment := taCenter;
 | 
			
		||||
  grid.Canvas.TextStyle := ts;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainForm.TimerTimer(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  MoveTrackPointToIndex(FCurrPtIndex + 1);
 | 
			
		||||
  if FCurrPtIndex >= FTrack.Points.Count-1 then
 | 
			
		||||
  begin
 | 
			
		||||
    Timer.Enabled := false;
 | 
			
		||||
    cbAutoTrace.Checked := false;
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
end.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								components/lazmapviewer/examples/trackdemo/mapmarker.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								components/lazmapviewer/examples/trackdemo/mapmarker.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.8 KiB  | 
							
								
								
									
										83
									
								
								components/lazmapviewer/examples/trackdemo/track_demo.lpi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								components/lazmapviewer/examples/trackdemo/track_demo.lpi
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<CONFIG>
 | 
			
		||||
  <ProjectOptions>
 | 
			
		||||
    <Version Value="12"/>
 | 
			
		||||
    <PathDelim Value="\"/>
 | 
			
		||||
    <General>
 | 
			
		||||
      <Flags>
 | 
			
		||||
        <CompatibilityMode Value="True"/>
 | 
			
		||||
      </Flags>
 | 
			
		||||
      <SessionStorage Value="InProjectDir"/>
 | 
			
		||||
      <Title Value="track_demo"/>
 | 
			
		||||
      <Scaled Value="True"/>
 | 
			
		||||
      <ResourceType Value="res"/>
 | 
			
		||||
      <UseXPManifest Value="True"/>
 | 
			
		||||
      <XPManifest>
 | 
			
		||||
        <DpiAware Value="True"/>
 | 
			
		||||
      </XPManifest>
 | 
			
		||||
      <Icon Value="0"/>
 | 
			
		||||
    </General>
 | 
			
		||||
    <BuildModes Count="1">
 | 
			
		||||
      <Item1 Name="Default" Default="True"/>
 | 
			
		||||
    </BuildModes>
 | 
			
		||||
    <PublishOptions>
 | 
			
		||||
      <Version Value="2"/>
 | 
			
		||||
      <UseFileFilters Value="True"/>
 | 
			
		||||
    </PublishOptions>
 | 
			
		||||
    <RunParams>
 | 
			
		||||
      <FormatVersion Value="2"/>
 | 
			
		||||
    </RunParams>
 | 
			
		||||
    <RequiredPackages Count="2">
 | 
			
		||||
      <Item1>
 | 
			
		||||
        <PackageName Value="lazMapViewerPkg"/>
 | 
			
		||||
      </Item1>
 | 
			
		||||
      <Item2>
 | 
			
		||||
        <PackageName Value="LCL"/>
 | 
			
		||||
      </Item2>
 | 
			
		||||
    </RequiredPackages>
 | 
			
		||||
    <Units Count="2">
 | 
			
		||||
      <Unit0>
 | 
			
		||||
        <Filename Value="track_demo.lpr"/>
 | 
			
		||||
        <IsPartOfProject Value="True"/>
 | 
			
		||||
      </Unit0>
 | 
			
		||||
      <Unit1>
 | 
			
		||||
        <Filename Value="main.pas"/>
 | 
			
		||||
        <IsPartOfProject Value="True"/>
 | 
			
		||||
        <ComponentName Value="MainForm"/>
 | 
			
		||||
        <HasResources Value="True"/>
 | 
			
		||||
        <ResourceBaseClass Value="Form"/>
 | 
			
		||||
      </Unit1>
 | 
			
		||||
    </Units>
 | 
			
		||||
  </ProjectOptions>
 | 
			
		||||
  <CompilerOptions>
 | 
			
		||||
    <Version Value="11"/>
 | 
			
		||||
    <PathDelim Value="\"/>
 | 
			
		||||
    <Target>
 | 
			
		||||
      <Filename Value="bin\$(TargetCPU)-$(TargetOS)\trackdemo"/>
 | 
			
		||||
    </Target>
 | 
			
		||||
    <SearchPaths>
 | 
			
		||||
      <IncludeFiles Value="$(ProjOutDir)"/>
 | 
			
		||||
      <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
 | 
			
		||||
    </SearchPaths>
 | 
			
		||||
    <Linking>
 | 
			
		||||
      <Options>
 | 
			
		||||
        <Win32>
 | 
			
		||||
          <GraphicApplication Value="True"/>
 | 
			
		||||
        </Win32>
 | 
			
		||||
      </Options>
 | 
			
		||||
    </Linking>
 | 
			
		||||
  </CompilerOptions>
 | 
			
		||||
  <Debugging>
 | 
			
		||||
    <Exceptions Count="3">
 | 
			
		||||
      <Item1>
 | 
			
		||||
        <Name Value="EAbort"/>
 | 
			
		||||
      </Item1>
 | 
			
		||||
      <Item2>
 | 
			
		||||
        <Name Value="ECodetoolError"/>
 | 
			
		||||
      </Item2>
 | 
			
		||||
      <Item3>
 | 
			
		||||
        <Name Value="EFOpenError"/>
 | 
			
		||||
      </Item3>
 | 
			
		||||
    </Exceptions>
 | 
			
		||||
  </Debugging>
 | 
			
		||||
</CONFIG>
 | 
			
		||||
							
								
								
									
										25
									
								
								components/lazmapviewer/examples/trackdemo/track_demo.lpr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								components/lazmapviewer/examples/trackdemo/track_demo.lpr
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
program track_demo;
 | 
			
		||||
 | 
			
		||||
{$mode objfpc}{$H+}
 | 
			
		||||
 | 
			
		||||
uses
 | 
			
		||||
  {$IFDEF UNIX}
 | 
			
		||||
  cthreads,
 | 
			
		||||
  {$ENDIF}
 | 
			
		||||
  {$IFDEF HASAMIGA}
 | 
			
		||||
  athreads,
 | 
			
		||||
  {$ENDIF}
 | 
			
		||||
  Interfaces, // this includes the LCL widgetset
 | 
			
		||||
  Forms, main
 | 
			
		||||
  { you can add units after this };
 | 
			
		||||
 | 
			
		||||
{$R *.res}
 | 
			
		||||
 | 
			
		||||
begin
 | 
			
		||||
  RequireDerivedFormResource:=True;
 | 
			
		||||
  Application.Scaled:=True;
 | 
			
		||||
  Application.Initialize;
 | 
			
		||||
  Application.CreateForm(TMainForm, MainForm);
 | 
			
		||||
  Application.Run;
 | 
			
		||||
end.
 | 
			
		||||
 | 
			
		||||
@ -577,7 +577,7 @@ var
 | 
			
		||||
begin
 | 
			
		||||
  if trk.Points.Count > 0 then
 | 
			
		||||
  begin
 | 
			
		||||
    trkColor := FDefaultTrackColor;
 | 
			
		||||
    trkColor := ColorToRGB(FDefaultTrackColor);
 | 
			
		||||
    trkWidth := FDefaultTrackWidth;
 | 
			
		||||
    if trk.ExtraData <> nil then
 | 
			
		||||
    begin
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user