diff --git a/components/lazmapviewer/examples/colored_tracks/coloredtracks_demo.lpi b/components/lazmapviewer/examples/colored_tracks/coloredtracks_demo.lpi
index d66cbe323..5661a0327 100644
--- a/components/lazmapviewer/examples/colored_tracks/coloredtracks_demo.lpi
+++ b/components/lazmapviewer/examples/colored_tracks/coloredtracks_demo.lpi
@@ -4,6 +4,9 @@
+
+
+
@@ -12,10 +15,9 @@
-
-
-
+
+
@@ -24,32 +26,34 @@
-
- -
+
+
-
- -
+
+
-
+
-
-
+
+
-
-
+
+
+
+
-
+
-
+
@@ -64,16 +68,16 @@
-
- -
+
+
-
- -
+
+
-
- -
+
+
-
+
diff --git a/components/lazmapviewer/examples/colored_tracks/main.lfm b/components/lazmapviewer/examples/colored_tracks/main.lfm
index 6f29d95b8..6fc421a69 100644
--- a/components/lazmapviewer/examples/colored_tracks/main.lfm
+++ b/components/lazmapviewer/examples/colored_tracks/main.lfm
@@ -1,371 +1,138 @@
object MainForm: TMainForm
Left = 285
- Height = 600
+ Height = 619
Top = 131
- Width = 1000
- Caption = 'Grand Canyon Hike'
- ClientHeight = 600
- ClientWidth = 1000
+ Width = 933
+ Caption = 'MainForm'
+ ClientHeight = 619
+ ClientWidth = 933
OnActivate = FormActivate
LCLVersion = '2.3.0.0'
object MapView: TMapView
Left = 0
- Height = 600
+ Height = 536
Top = 0
- Width = 606
+ Width = 933
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
+ Left = 8
+ Height = 67
+ Top = 544
+ Width = 917
+ Align = alBottom
+ AutoSize = True
BorderSpacing.Around = 8
BevelOuter = bvNone
- ClientHeight = 584
- ClientWidth = 373
+ ClientHeight = 67
+ ClientWidth = 917
TabOrder = 1
- object TrackGrid: TStringGrid
+ object CheckBox1: TCheckBox
AnchorSideLeft.Control = Panel1
- AnchorSideTop.Control = lblInfo
+ AnchorSideTop.Control = Label2
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
- 85
- 85
- 85
- 84
- )
- 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 = 150
- Anchors = [akLeft, akBottom]
- BorderSpacing.Top = 8
- Caption = 'Trace track automatically'
- OnChange = cbAutoTraceChange
+ Top = 19
+ Width = 155
+ Caption = 'Trans-Yosemite Tour (red)'
+ Checked = True
+ OnChange = CheckBox1Change
+ State = cbChecked
+ TabOrder = 0
+ end
+ object CheckBox2: TCheckBox
+ AnchorSideLeft.Control = CheckBox1
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = CheckBox1
+ Left = 179
+ Height = 19
+ Top = 19
+ Width = 136
+ BorderSpacing.Left = 24
+ Caption = 'Bear Valley Tour (blue)'
+ Checked = True
+ OnChange = CheckBox2Change
+ State = cbChecked
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
+ object CheckBox3: TCheckBox
+ AnchorSideLeft.Control = CheckBox2
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
+ AnchorSideTop.Control = CheckBox1
+ Left = 339
+ Height = 19
+ Top = 19
+ Width = 117
+ BorderSpacing.Left = 24
+ Caption = 'Triangle Loop Tour'
+ Checked = True
+ OnChange = CheckBox3Change
+ State = cbChecked
TabOrder = 2
end
- object lblInfo: TLabel
- AnchorSideLeft.Control = Panel1
- AnchorSideTop.Control = Bevel1
- AnchorSideTop.Side = asrBottom
+ object ZoomLabel: TLabel
+ AnchorSideTop.Control = CheckBox1
+ AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
- Left = 0
+ Left = 857
Height = 15
- Top = 35
- Width = 373
- Anchors = [akTop, akLeft, akRight]
- BorderSpacing.Top = 8
- Caption = 'Click on row to display point in map'
+ Top = 21
+ Width = 60
+ Anchors = [akTop, akRight]
+ Caption = 'ZoomLabel'
end
- object lblMapCenter: TLabel
+ object Label2: 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: -'
+ Width = 724
+ BorderSpacing.Bottom = 4
+ Caption = 'Yosemite bike tours (https://www.roadbike.de/rennrad-touren/drei-rennrad-traumtouren-im-yosemite-nationalpark-in-den-usa/)'
+ Font.Style = [fsBold]
+ ParentFont = False
end
- object Bevel1: TBevel
- AnchorSideLeft.Control = Panel1
- AnchorSideTop.Control = lblMapCenter
+ object ComboBox1: TComboBox
+ AnchorSideLeft.Control = Label1
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = CheckBox1
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
+ Left = 79
+ Height = 23
+ Top = 44
+ Width = 273
+ BorderSpacing.Top = 6
+ ItemHeight = 15
+ ItemIndex = 0
+ Items.Strings = (
+ 'Google Maps'
+ 'Google Satellite'
+ 'Open Topo Map'
+ )
+ OnChange = ComboBox1Change
+ Style = csDropDownList
+ TabOrder = 3
+ Text = 'Google Maps'
+ end
+ object Label1: TLabel
+ AnchorSideLeft.Control = Panel1
+ AnchorSideTop.Control = ComboBox1
+ AnchorSideTop.Side = asrCenter
+ Left = 0
+ Height = 15
+ Top = 48
+ Width = 71
+ BorderSpacing.Right = 8
+ Caption = 'Map provider'
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
diff --git a/components/lazmapviewer/examples/colored_tracks/main.pas b/components/lazmapviewer/examples/colored_tracks/main.pas
index e44579f83..7f1a545e9 100644
--- a/components/lazmapviewer/examples/colored_tracks/main.pas
+++ b/components/lazmapviewer/examples/colored_tracks/main.pas
@@ -5,41 +5,35 @@ unit main;
interface
uses
- Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls,
- Grids, StdCtrls, ColorBox, mvMapViewer, mvGpsObj;
+ Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
+ mvMapViewer, mvGpsObj, mvGpx;
type
{ TMainForm }
TMainForm = class(TForm)
- Bevel1: TBevel;
- cbAutoTrace: TCheckBox;
- clbTrackColor: TColorBox;
+ CheckBox1: TCheckBox;
+ CheckBox2: TCheckBox;
+ CheckBox3: TCheckBox;
+ ComboBox1: TComboBox;
Label1: TLabel;
- lblInfo: TLabel;
- lblMapCenter: TLabel;
+ ZoomLabel: TLabel;
+ Label2: TLabel;
MapView: TMapView;
Panel1: TPanel;
- Splitter1: TSplitter;
- TrackGrid: TStringGrid;
- Timer: TTimer;
- procedure cbAutoTraceChange(Sender: TObject);
- procedure clbTrackColorChange(Sender: TObject);
+ procedure CheckBox1Change(Sender: TObject);
+ procedure CheckBox2Change(Sender: TObject);
+ procedure CheckBox3Change(Sender: TObject);
+ procedure ComboBox1Change(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);
+ FTrack1: TGpsTrack;
+ FTrack2: TGpsTrack;
+ FTrack3: TGpsTrack;
+ function LoadGPXFile(AFileName: String; AColor: TColor; AWidth: Double): TGPSTrack;
+ procedure UpdateInfo;
public
@@ -50,163 +44,100 @@ var
implementation
-uses
- mvTypes, mvEngine, mvGpx;
-
{$R *.lfm}
-const
- _TRACK_PT_ = 10;
+uses
+ mvTypes, mvEngine;
+const
+ FILENAME1 = '../../Yosemite Tour 1 - Trans Yosemite.gpx';
+ FILENAME2 = '../../Yosemite Tour 2 - Bear Valley.gpx';
+ FILENAME3 = '../../Yosemite Tour 3 - Triangle Loop.gpx';
{ TMainForm }
procedure TMainForm.FormActivate(Sender: TObject);
var
crs: TCursor;
+ totalArea: TRealArea;
+ trackArea: TRealArea;
begin
crs := Screen.Cursor;
Screen.Cursor := crHourglass;
try
- MapView.MapProvider := 'Open Topo Map';
+ // Threaded painting interferes with track painting over several tiles
+ MapView.UseThreads := false;
+ MapView.MapProvider := Combobox1.Text;
MapView.Active := true;
- // Center on Grand Canyon Village
- MapView.Zoom := 13;
- MapView.Center := RealPoint(DMSToDeg(36, 4, 32.2), -DMSToDeg(112, 7, 17.4));
+ // Load GPX files
+ FTrack1 := LoadGPXFile(FILENAME1, clRed, 1.0);
+ FTrack1.GetArea(totalArea);
- clbTrackColor.Selected := MapView.DefaultTrackColor;
+ FTrack2 := LoadGPXFile(FILENAME2, clBlue, 1.2);
+ FTrack2.GetArea(trackArea);
+ ExtendArea(totalArea, trackArea);
- // Load a GPX file of a hiking trail into the Grand Canyon
- LoadGPXSampleFile;
+ FTrack3 := LoadGPXFile(FILENAME3, clBlack, 0.5);
+ FTrack3.GetArea(trackArea);
+ ExtendArea(totalArea, trackArea);
+
+ MapView.ZoomOnArea(totalArea);
+ UpdateInfo;
finally
Screen.Cursor := crs;
end;
end;
-procedure TMainForm.cbAutoTraceChange(Sender: TObject);
+procedure TMainForm.MapViewZoomChange(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;
+ UpdateInfo;
end;
-procedure TMainForm.clbTrackColorChange(Sender: TObject);
+procedure TMainForm.UpdateInfo;
begin
- MapView.DefaultTrackColor := clbTrackColor.Selected;
- { or:
- if FTrack <> nil then
- begin
- FTrack.LineColor := clbTrackColor.Selected;
- MapView.Engine.Redraw;
- end;
- }
+ ZoomLabel.Caption := 'Zoom ' + MapView.Zoom.ToString;
end;
-procedure TMainForm.InfoCaption;
+procedure TMainForm.CheckBox1Change(Sender: TObject);
begin
- lblMapCenter.Caption := Format('MapCenter: Lat %s, Lon %s, Zoom %d', [
- LatToStr(MapView.Center.Lat, true), LonToStr(MapView.Center.Lon, true), MapView.Zoom
- ]);
+ FTrack1.Visible := Checkbox1.Checked;
+ MapView.Engine.Redraw;
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
+procedure TMainForm.CheckBox2Change(Sender: TObject);
+begin
+ FTrack2.Visible := Checkbox2.Checked;
+ MapView.Engine.Redraw;
+end;
+
+procedure TMainForm.CheckBox3Change(Sender: TObject);
+begin
+ FTrack3.Visible := Checkbox3.Checked;
+ MapView.Engine.Redraw;
+end;
+
+procedure TMainForm.ComboBox1Change(Sender: TObject);
+begin
+ MapView.MapProvider := Combobox1.Text;
+end;
+
+function TMainForm.LoadGPXFile(AFileName: String;
+ AColor: TColor; AWidth: Double): TGPSTrack;
var
reader: TGpxReader;
- b: TRealArea;
- i: Integer;
id: Integer;
begin
reader := TGpxReader.Create;
try
- id := reader.LoadFromFile(GPX_FILE_NAME, MapView.GPSItems, b);
- FTrack := MapView.GpxItems.FindTrackByID(id);
- 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;
+ id := reader.LoadFromFile(AFileName, MapView.GPSItems);
+ Result := MapView.GpsItems.FindTrackByID(id);
+ Result.LineColor := AColor;
+ Result.LineWidth := AWidth;
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.