Commit 11efdf92 authored by CLOUARD Regis's avatar CLOUARD Regis
Browse files

Merge branch 'Add_track_animation' into 'master'

Add track animation

See merge request !59
parents 182c6e24 a9b28621
......@@ -7,12 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## 90 [3.1.0] - 2021-08-01
## 90 [3.1.0] - 2021-087-23
### Fixed
- NFC for iOS
- Disable insecure http url for the multimedia pages (tourist mode).
- Disable insecure http url for the multimedia pages (touristic wall mode).
### Added
......
......@@ -152,7 +152,7 @@
"developer_mode": "Developer mode",
"confirm_gps_title": "GPS Function",
"confirm_gps_message": "Vikazimut needs location access even in background to perform. The GPS location is used to control the route, show the current track, and display statistics. No data is exported without permission.",
"result_table_distance_column_tooltip": "The length of the track in meters\n(the distance between the two checkpoints in meters)\nthe overcost of length in percentage",
"result_table_pace_column_tooltip": "The pace expressed in min/km\n(the speed expressed in km/h)",
"result_table_distance_column_tooltip": "The length of the track in meters\n(The distance between the two checkpoints in meters)\nThe overcost of length in percentage",
"result_table_pace_column_tooltip": "The pace expressed in min/km\n(The speed expressed in km/h)",
"website_worldmap_page": "en/worldmap"
}
......@@ -152,7 +152,7 @@
"developer_mode": "Mode développeur",
"confirm_gps_title": "Fonction GPS",
"confirm_gps_message": "Vikazimut nécessite la location de votre appareil y compris en arrière plan pour fonctionner. La position GPS est utilisée pour gérer le parcours, dessiner la trace et afficher des statistiques sur le parcours. Aucune donnée n'est exportée de l'appareil sans votre accord et la trace est intemporalisée.",
"result_table_distance_column_tooltip": "La longueur du trajet effectué entre les deux postes en mètres\n(la distance à vol d'oiseau entre les deux postes en mètres)\nle surcoût de distance en pourcentage",
"result_table_pace_column_tooltip": "La réduction kilométrique en min/km\n(la vitesse en km/h)",
"result_table_distance_column_tooltip": "La longueur du trajet effectué entre les deux postes en mètres\n(La distance à vol d'oiseau entre les deux postes en mètres)\nLe surcoût de distance en pourcentage",
"result_table_pace_column_tooltip": "La réduction kilométrique en min/km\n(La vitesse en km/h)",
"website_worldmap_page": "worldmap"
}
......@@ -11,8 +11,8 @@ import '../result.dart';
class StatisticsResultView extends StatelessWidget {
final Result result;
late final String _title;
final GlobalKey tooltipColumn3Key = new GlobalKey();
final GlobalKey tooltipColumn4Key = new GlobalKey();
final GlobalKey _tooltipColumn3Key = new GlobalKey();
final GlobalKey _tooltipColumn4Key = new GlobalKey();
StatisticsResultView(this.result) {
_title = result.getMap()!.getName();
......@@ -47,53 +47,59 @@ class StatisticsResultView extends StatelessWidget {
List<DataColumn> _buildColumns() {
return [
DataColumn(label: TextCentered(Translations.getString('control_point_index'))),
DataColumn(label: TextCentered(Translations.getString('interval_time'))),
DataColumn(label: Expanded(child: TextCentered(Translations.getString('control_point_index')))),
DataColumn(label: Expanded(child: TextCentered(Translations.getString('interval_time')))),
DataColumn(
label: Row(
children: [
TextCentered(Translations.getString('interval_distance')),
Tooltip(
key: tooltipColumn3Key,
message: Translations.getString("result_table_distance_column_tooltip"),
child: IconButton(
constraints: BoxConstraints(maxHeight: 18, maxWidth: 18),
padding: const EdgeInsets.all(0.0),
icon: Icon(
Icons.help_outline,
color: Colors.white,
size: 16.0,
label: Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextCentered(Translations.getString('interval_distance')),
Tooltip(
key: _tooltipColumn3Key,
message: Translations.getString("result_table_distance_column_tooltip"),
child: IconButton(
constraints: BoxConstraints(maxHeight: 18, maxWidth: 18),
padding: const EdgeInsets.all(0.0),
icon: Icon(
Icons.help_outline,
color: Colors.white,
size: 16.0,
),
onPressed: () {
final dynamic tooltip = _tooltipColumn3Key.currentState;
tooltip.ensureTooltipVisible();
},
),
onPressed: () {
final dynamic tooltip = tooltipColumn3Key.currentState;
tooltip.ensureTooltipVisible();
},
),
),
],
],
),
),
),
DataColumn(
label: Row(
children: [
TextCentered(Translations.getString('interval_pace')),
Tooltip(
key: tooltipColumn4Key,
message: Translations.getString("result_table_pace_column_tooltip"),
child: IconButton(
constraints: BoxConstraints(maxHeight: 18, maxWidth: 18),
padding: const EdgeInsets.all(0.0),
icon: Icon(Icons.help_outline, color: Colors.white, size: 16.0),
onPressed: () {
final dynamic tooltip = tooltipColumn4Key.currentState;
tooltip.ensureTooltipVisible();
},
label: Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextCentered(Translations.getString('interval_pace')),
Tooltip(
key: _tooltipColumn4Key,
message: Translations.getString("result_table_pace_column_tooltip"),
child: IconButton(
constraints: BoxConstraints(maxHeight: 18, maxWidth: 18),
padding: const EdgeInsets.all(0.0),
icon: Icon(Icons.help_outline, color: Colors.white, size: 16.0),
onPressed: () {
final dynamic tooltip = _tooltipColumn4Key.currentState;
tooltip.ensureTooltipVisible();
},
),
),
),
],
],
),
),
),
DataColumn(label: TextCentered(Translations.getString('cumulative_time'))),
DataColumn(label: Expanded(child: TextCentered(Translations.getString('cumulative_time')))),
];
}
......@@ -107,10 +113,10 @@ class StatisticsResultView extends StatelessWidget {
}
List<DataCell> cells = [
DataCell(Center(child: _buildControlNumberCell(timeTable, i))),
DataCell(Center(child:_buildLegTimeCell(timeTable, i))),
DataCell(Center(child:_buildLegDistanceCell(timeTable, i))),
DataCell(Center(child:_buildPaceCell(timeTable, i))),
DataCell(Center(child:_buildCumulatedCell(timeTable, i))),
DataCell(Center(child: _buildLegTimeCell(timeTable, i))),
DataCell(Center(child: _buildLegDistanceCell(timeTable, i))),
DataCell(Center(child: _buildPaceCell(timeTable, i))),
DataCell(Center(child: _buildCumulatedCell(timeTable, i))),
];
DataRow tableRow = DataRow(cells: cells);
rows.add(tableRow);
......@@ -120,11 +126,11 @@ class StatisticsResultView extends StatelessWidget {
DataRow totalTableRow = DataRow(
color: MaterialStateProperty.all(primaryColorDisabled),
cells: [
DataCell(Center(child:TextCenteredBold(Translations.getString('Total')))),
DataCell(Center(child:TextCenteredBold('${result.getTotalTimeWithoutPenaltyAsString()}'))),
DataCell(Center(child:TextCenteredBold('${Translations.formatNumber(totalLength)}\n(${Translations.formatNumber(totalDistance)})\n+${Result.computeOvercost(totalLength, totalDistance)}%'))),
DataCell(Center(child:TextCenteredBold('${formatPace(result.getGlobalPaceInMillis())}\n${formatSpeed(Result.calculateSpeedFromPace(result.getGlobalPaceInMillis()))}'))),
DataCell(Center(child:TextCenteredBold('${result.getTotalTimeWithoutPenaltyAsString()}'))),
DataCell(Center(child: TextCenteredBold(Translations.getString('Total')))),
DataCell(Center(child: TextCenteredBold('${result.getTotalTimeWithoutPenaltyAsString()}'))),
DataCell(Center(child: TextCenteredBold('${Translations.formatNumber(totalLength)}\n(${Translations.formatNumber(totalDistance)})\n+${Result.computeOvercost(totalLength, totalDistance)}%'))),
DataCell(Center(child: TextCenteredBold('${formatPace(result.getGlobalPaceInMillis())}\n${formatSpeed(Result.calculateSpeedFromPace(result.getGlobalPaceInMillis()))}'))),
DataCell(Center(child: TextCenteredBold('${result.getTotalTimeWithoutPenaltyAsString()}'))),
],
);
rows.add(totalTableRow);
......
......@@ -12,17 +12,12 @@ import 'package:vikazimut/utils/translations.dart';
import '../result.dart';
import 'track_animation.dart';
// TODO supprimer cet exemple
// String toto = '49.278524,-0.425337,02005,90.5;49.278511,-0.425321,03982,89.9;49.278501,-0.425309,08007,90.4;49.278496,-0.425319,14995,90.9;49.278497,-0.425345,16989,91.1;49.278502,-0.425373,18975,90.8;49.278509,-0.425426,20972,90.7;49.278520,-0.425491,22978,90.8;49.278532,-0.425564,24973,90.4;49.278546,-0.425640,26982,90.3;49.278561,-0.425721,28982,89.9;49.278574,-0.425804,30978,90.2;49.278588,-0.425889,32977,90.8;49.278603,-0.425974,34977,91.2;49.278617,-0.426060,36984,91.5;49.278634,-0.426146,38975,92.0;49.278651,-0.426231,40980,92.3;49.278668,-0.426314,42970,92.4;49.278685,-0.426390,44983,92.2;49.278699,-0.426466,46983,92.2;49.278710,-0.426539,48982,92.2;49.278720,-0.426614,50981,91.5;49.278724,-0.426682,52980,92.2;49.278707,-0.426747,55000,92.9;49.278680,-0.426797,56995,93.0;49.278630,-0.426858,58982,92.6;49.278588,-0.426893,0100978,92.6;49.278543,-0.426925,0102982,92.3;49.278496,-0.426956,0104980,92.2;49.278448,-0.426983,0107000,91.9;49.278397,-0.427010,0108980,92.2;49.278363,-0.427027,0110995,92.2;49.278318,-0.427049,0112979,92.0;49.278269,-0.427071,0114980,92.1;49.278221,-0.427092,0116972,92.2;49.278173,-0.427113,0118979,92.2;49.278124,-0.427136,0120975,92.1;49.278073,-0.427159,0122987,92.3;49.278021,-0.427180,0124967,92.1;49.277944,-0.427212,0126991,92.7;49.277888,-0.427220,0128981,92.3;49.277845,-0.427194,0130979,92.2;49.277807,-0.427153,0132979,91.6;49.277784,-0.427118,0134985,91.8;49.277754,-0.427063,0136982,91.7;49.277729,-0.427003,0138973,91.9;49.277724,-0.426989,0143986,91.9;49.277726,-0.426995,0145980,91.8;49.277737,-0.427014,0147990,91.9;49.277752,-0.427047,0149982,91.7;49.277756,-0.427086,0151990,91.7;49.277749,-0.427166,0153978,91.6;49.277739,-0.427238,0155981,91.9;49.277729,-0.427290,0157978,91.9;49.277714,-0.427360,0159983,91.3;49.277711,-0.427427,0201987,91.0;49.277721,-0.427491,0203980,91.1;49.277740,-0.427553,0205979,91.0;49.277763,-0.427613,0207977,90.9;49.277791,-0.427672,0209981,90.6;49.277818,-0.427732,0211985,91.0;49.277846,-0.427794,0213982,90.9;49.277871,-0.427858,0215978,90.6;49.277893,-0.427928,0217984,90.7;49.277913,-0.428001,0219995,90.6;49.277932,-0.428074,0221985,90.5;49.277950,-0.428148,0223983,90.5;49.277967,-0.428222,0225996,90.3;49.277986,-0.428296,0227980,90.4;49.278003,-0.428371,0229980,91.0;49.278020,-0.428446,0232004,91.0;49.278036,-0.428522,0234000,91.0;49.278052,-0.428596,0235988,91.0;49.278070,-0.428670,0237992,91.2;49.278088,-0.428744,0240012,91.2;49.278109,-0.428863,0242007,91.6;49.278126,-0.428956,0243984,91.6;49.278137,-0.429015,0245991,91.8;49.278151,-0.429086,0247985,91.7;49.278164,-0.429159,0249994,91.7;49.278175,-0.429234,0252009,91.6;49.278186,-0.429309,0253984,91.7;49.278197,-0.429388,0256000,91.7;49.278205,-0.429473,0258001,91.8;49.278218,-0.429559,0259985,92.3;49.278238,-0.429669,0301984,91.8;49.278255,-0.429752,0303988,91.4;49.278271,-0.429828,0305986,90.9;49.278284,-0.429904,0307985,90.9;49.278297,-0.429982,0309978,90.9;49.278314,-0.430054,0312020,90.7;49.278327,-0.430102,0313989,90.6;49.278343,-0.430162,0315977,90.5;49.278360,-0.430224,0317990,90.3;49.278377,-0.430287,0320022,90.1;49.278392,-0.430349,0321989,89.9;49.278408,-0.430411,0323993,90.0;49.278424,-0.430472,0325988,89.8;49.278441,-0.430532,0327995,89.7;49.278459,-0.430592,0329999,89.3;49.278481,-0.430651,0331988,89.0;49.278508,-0.430709,0333995,89.2;49.278538,-0.430762,0335994,89.0;49.278572,-0.430811,0337982,89.3;49.278608,-0.430851,0339993,89.0;49.278649,-0.430878,0341984,89.0;49.278692,-0.430903,0343982,89.6;49.278740,-0.430917,0346001,89.7;49.278788,-0.430925,0347995,89.4;49.278836,-0.430926,0349987,89.4;49.278886,-0.430921,0351991,89.2;49.278939,-0.430915,0353980,89.2;49.278992,-0.430907,0355993,88.9;49.279043,-0.430898,0357980,89.2;49.279095,-0.430884,0359988,89.6;49.279148,-0.430868,0401985,89.6;49.279200,-0.430847,0403999,89.3;49.279252,-0.430812,0406008,89.4;49.279302,-0.430769,0408001,89.5;49.279350,-0.430716,0409979,90.1;49.279392,-0.430657,0411990,89.5;49.279430,-0.430593,0413993,89.7;49.279465,-0.430529,0416016,89.9;49.279500,-0.430468,0417991,90.0;49.279534,-0.430405,0419988,90.7;49.279580,-0.430315,0421992,91.6;49.279613,-0.430242,0424000,91.5;49.279640,-0.430174,0425990,91.4;49.279665,-0.430109,0428007,91.0;49.279688,-0.430043,0430006,90.4;49.279708,-0.429979,0431997,90.3;49.279721,-0.429935,0433981,90.2;49.279738,-0.429879,0436005,89.9;49.279757,-0.429818,0437988,89.6;49.279777,-0.429755,0439997,89.8;49.279798,-0.429689,0441994,89.5;49.279818,-0.429621,0443990,89.3;49.279834,-0.429550,0446012,89.2;49.279849,-0.429470,0447993,89.7;49.279861,-0.429361,0449979,89.5;49.279863,-0.429276,0451991,89.3;49.279861,-0.429219,0453983,89.1;49.279857,-0.429151,0455988,89.3;49.279850,-0.429078,0458005,89.1;49.279840,-0.429005,0500015,89.1;49.279831,-0.428938,0501997,88.9;49.279822,-0.428872,0503990,89.3;49.279811,-0.428805,0506036,89.7;49.279800,-0.428741,0507990,89.6;49.279785,-0.428681,0509983,89.6;49.279766,-0.428625,0511989,89.5;49.279744,-0.428571,0513994,89.9;49.279717,-0.428519,0515989,89.8;49.279690,-0.428465,0517995,89.6;49.279675,-0.428404,0519984,89.7;49.279671,-0.428340,0522004,89.6;49.279672,-0.428276,0523991,89.7;49.279680,-0.428210,0525991,89.8;49.279688,-0.428143,0527976,89.8;49.279696,-0.428074,0529975,89.7;49.279705,-0.428006,0531982,89.8;49.279714,-0.427944,0533992,89.6;49.279721,-0.427898,0536006,88.7;49.279726,-0.427865,0537981,88.8;49.279735,-0.427801,0540022,89.8;49.279752,-0.427711,0541990,89.4;49.279773,-0.427621,0543988,89.3;49.279794,-0.427538,0545979,88.9;49.279824,-0.427471,0547991,88.7;49.279859,-0.427420,0549986,88.7;49.279898,-0.427378,0551991,88.4;49.279936,-0.427336,0554009,88.7;49.279976,-0.427299,0555985,88.8;49.280015,-0.427268,0557987,88.9;49.280055,-0.427239,0559993,88.8;49.280096,-0.427214,0601991,88.7;49.280137,-0.427187,0603996,88.3;49.280178,-0.427160,0605989,88.0;49.280219,-0.427134,0607996,87.8;49.280259,-0.427111,0609988,87.6;49.280299,-0.427091,0611980,87.5;49.280341,-0.427070,0613997,88.0;49.280383,-0.427049,0615989,88.1;49.280422,-0.427026,0617991,87.7;49.280459,-0.426994,0619994,87.5;49.280484,-0.426957,0621997,87.6;49.280498,-0.426913,0623992,87.8;49.280503,-0.426863,0625998,87.2;49.280503,-0.426809,0627990,87.2;49.280502,-0.426761,0629992,86.1;49.280501,-0.426740,0632000,87.1;49.280503,-0.426736,0633995,87.3;49.280507,-0.426750,0636011,87.6;49.280514,-0.426779,0637998,87.3;49.280526,-0.426821,0639988,87.0;49.280542,-0.426854,0641992,87.4;49.280563,-0.426875,0643977,87.5;49.280589,-0.426884,0645985,87.2;49.280619,-0.426883,0647999,86.7;49.280653,-0.426878,0649989,86.6;49.280689,-0.426872,0651991,86.6;49.280718,-0.426876,0653987,86.7;49.280745,-0.426900,0656002,86.7;49.280770,-0.426936,0657986,86.7;49.280793,-0.426985,0659978,86.4;49.280816,-0.427039,0701994,85.5;49.280844,-0.427089,0703996,86.0;49.280883,-0.427126,0705987,86.0;49.280927,-0.427149,0707989,85.8;49.280972,-0.427161,0709989,85.9;49.281020,-0.427164,0711992,86.1;49.281067,-0.427163,0713985,86.0;49.281116,-0.427158,0715979,85.3;49.281167,-0.427150,0717987,85.2;49.281217,-0.427137,0720009,85.0;49.281268,-0.427121,0721991,85.1;49.281318,-0.427101,0723989,85.2;49.281345,-0.427088,0726004,85.2;49.281384,-0.427066,0728004,84.6;49.281457,-0.427016,0729982,85.0;49.281503,-0.426962,0731996,84.7;49.281522,-0.426930,0733983,83.9;49.281537,-0.426891,0735991,84.3;49.281553,-0.426808,0737985,84.4;49.281552,-0.426743,0739975,84.6;49.281540,-0.426681,0742003,84.3;49.281521,-0.426623,0743991,84.2;49.281499,-0.426565,0746002,84.4;49.281479,-0.426503,0748001,84.4;49.281461,-0.426433,0750010,84.3;49.281440,-0.426366,0751994,84.1;49.281413,-0.426303,0753987,83.7;49.281386,-0.426246,0755996,83.4;49.281358,-0.426185,0757986,82.9;49.281328,-0.426130,0759984,83.8;49.281294,-0.426073,0801997,83.5;49.281261,-0.426018,0803983,83.3;49.281212,-0.425943,0805980,83.0;49.281172,-0.425888,0807991,82.9;49.281136,-0.425840,0809990,82.7;49.281101,-0.425795,0811992,82.7;49.281077,-0.425758,0813997,82.4;49.281045,-0.425706,0815989,83.0;49.281009,-0.425642,0817991,83.3;49.280972,-0.425574,0820003,83.1;49.280939,-0.425507,0821987,83.6;49.280913,-0.425448,0823996,82.8;49.280890,-0.425386,0825999,82.4;49.280869,-0.425318,0827989,83.0;49.280849,-0.425249,0829975,83.3;49.280830,-0.425180,0831997,83.7;49.280814,-0.425110,0833986,83.7;49.280799,-0.425041,0836005,83.7;49.280786,-0.424970,0837989,83.7;49.280773,-0.424899,0839983,82.9;49.280756,-0.424838,0841995,84.4;49.280740,-0.424768,0843982,84.4;49.280726,-0.424697,0845990,83.9;49.280715,-0.424625,0847995,83.5;49.280703,-0.424554,0849989,83.9;49.280692,-0.424486,0851976,84.0;49.280679,-0.424421,0853973,83.9;49.280667,-0.424359,0855991,84.7;49.280652,-0.424298,0857980,85.5;49.280639,-0.424236,0859980,85.1;49.280626,-0.424173,0901989,84.5;49.280614,-0.424110,0903991,85.2;49.280600,-0.424047,0905986,84.6;49.280584,-0.423980,0907996,85.4;49.280569,-0.423912,0909996,85.1;49.280554,-0.423843,0911978,85.6;49.280535,-0.423764,0913987,87.5;49.280514,-0.423688,0915982,87.7;49.280494,-0.423609,0917993,87.5;49.280476,-0.423532,0919994,87.5;49.280459,-0.423457,0921993,87.4;49.280442,-0.423385,0923979,87.4;49.280426,-0.423315,0925985,87.0;49.280412,-0.423247,0927981,86.9;49.280402,-0.423178,0929995,87.6;49.280395,-0.423104,0931998,88.1;49.280396,-0.423022,0934004,88.6;49.280399,-0.422942,0935988,88.7;49.280406,-0.422864,0937996,89.0;49.280419,-0.422786,0939997,88.5;49.280432,-0.422710,0941985,88.1;49.280447,-0.422637,0943983,88.3;49.280463,-0.422565,0945986,88.5;49.280480,-0.422495,0947987,88.7;49.280497,-0.422425,0949996,88.9;49.280515,-0.422356,0951999,88.7;49.280535,-0.422289,0953977,88.5;49.280555,-0.422221,0955981,88.4;49.280576,-0.422153,0957991,88.1;49.280596,-0.422086,1000010,88.1;49.280616,-0.422020,1001994,88.2;49.280636,-0.421954,1003995,88.1;49.280655,-0.421888,1005991,87.9;49.280674,-0.421823,1007992,88.0;49.280692,-0.421757,1009991,87.9;49.280711,-0.421689,1011995,88.0;49.280730,-0.421623,1013984,88.2;49.280748,-0.421558,1015993,88.1;49.280766,-0.421495,1017993,88.0;49.280784,-0.421432,1019982,88.0;49.280803,-0.421367,1021982,87.9;49.280819,-0.421304,1023985,87.6;49.280837,-0.421236,1025994,88.0;49.280855,-0.421166,1027981,87.8;49.280866,-0.421100,1029988,87.2;49.280868,-0.421043,1031996,87.5;49.280861,-0.420990,1033976,87.4;49.280847,-0.420944,1035989,87.4;49.280820,-0.420911,1038003,87.6;49.280789,-0.420885,1039984,88.1;49.280753,-0.420859,1042000,88.3;49.280717,-0.420836,1043983,88.9;49.280685,-0.420816,1045988,88.8;49.280657,-0.420803,1047983,88.5;49.280628,-0.420793,1049974,88.1;49.280598,-0.420788,1051971,87.9;49.280563,-0.420784,1053991,87.3;49.280525,-0.420780,1055987,87.1;49.280484,-0.420771,1057972,87.3;49.280439,-0.420752,1059986,88.1;49.280403,-0.420721,1101985,88.2;49.280372,-0.420679,1103993,88.7;49.280348,-0.420626,1106002,88.3;49.280329,-0.420566,1107999,88.1;49.280315,-0.420509,1109991,88.5;49.280304,-0.420450,1111997,88.3;49.280296,-0.420389,1113976,88.5;49.280290,-0.420323,1115974,88.8;49.280283,-0.420256,1117989,88.9;49.280275,-0.420191,1119990,89.2;49.280267,-0.420126,1121984,89.4;49.280260,-0.420058,1123977,89.4;49.280253,-0.419989,1125983,89.3;49.280249,-0.419927,1127986,89.4;49.280245,-0.419869,1129998,89.6;49.280238,-0.419801,1131987,89.6;49.280222,-0.419709,1134001,90.6;49.280211,-0.419623,1136973,91.4;49.280212,-0.419618,1138998,91.8;49.280216,-0.419646,1141011,91.9;49.280219,-0.419705,1143015,91.5;49.280222,-0.419757,1144974,91.4;49.280226,-0.419827,1147005,91.2;49.280231,-0.419903,1148998,90.8;49.280237,-0.419980,1150984,90.8;49.280241,-0.420050,1152975,90.2;49.280247,-0.420119,1154990,90.1;49.280255,-0.420188,1156993,89.7;49.280263,-0.420253,1158976,89.7;49.280272,-0.420314,1200982,90.1;49.280282,-0.420376,1202989,90.2;49.280286,-0.420436,1204996,90.3;49.280281,-0.420491,1206987,89.5;49.280261,-0.420528,1208984,89.2;49.280230,-0.420550,1210989,89.0;49.280193,-0.420562,1212970,89.2;49.280148,-0.420565,1214982,89.2;49.280097,-0.420565,1217012,89.5;49.280043,-0.420560,1218979,89.7;49.279988,-0.420552,1220983,89.6;49.279934,-0.420542,1223007,89.7;49.279882,-0.420528,1224994,89.5;49.279829,-0.420513,1226996,89.4;49.279776,-0.420499,1228982,89.2;49.279725,-0.420484,1230982,89.4;49.279676,-0.420468,1232999,89.5;49.279630,-0.420455,1234992,89.3;49.279583,-0.420443,1236988,89.9;49.279536,-0.420431,1238988,89.6;49.279487,-0.420420,1241008,88.9;49.279438,-0.420409,1242982,88.9;49.279389,-0.420397,1244987,88.9;49.279342,-0.420383,1246981,88.8;49.279296,-0.420367,1248981,88.3;49.279251,-0.420348,1250984,88.7;49.279203,-0.420328,1252979,88.8;49.279157,-0.420312,1255010,88.1;49.279113,-0.420295,1257002,88.1;49.279071,-0.420278,1258982,88.6;49.279038,-0.420260,1300982,88.6;49.279004,-0.420238,1302986,88.8;49.278965,-0.420216,1304995,88.6;49.278924,-0.420191,1306981,88.1;49.278882,-0.420167,1308992,88.1;49.278825,-0.420145,1310978,88.6;49.278768,-0.420126,1312987,88.2;49.278714,-0.420105,1314993,87.7;49.278660,-0.420084,1316980,87.8;49.278607,-0.420064,1318987,88.5;49.278556,-0.420055,1320990,88.4;49.278504,-0.420055,1322982,87.8;49.278453,-0.420064,1324982,88.4;49.278405,-0.420080,1326975,88.1;49.278357,-0.420099,1328970,88.0;49.278309,-0.420123,1330983,87.7;49.278263,-0.420146,1332990,87.3;49.278217,-0.420168,1334994,87.3;49.278176,-0.420188,1336986,87.0;49.278136,-0.420208,1338994,87.1;49.278097,-0.420228,1340989,86.9;49.278061,-0.420247,1342982,87.0;49.278024,-0.420268,1344991,86.9;49.277987,-0.420292,1347015,86.6;49.277949,-0.420316,1348973,86.9;49.277908,-0.420339,1350984,85.7;49.277862,-0.420365,1352991,85.6;49.277812,-0.420389,1354987,85.9;49.277763,-0.420414,1356979,86.1;49.277717,-0.420435,1358988,85.8;49.277688,-0.420446,1400993,85.4;49.277667,-0.420451,1402991,85.3;49.277640,-0.420459,1404998,85.7;49.277605,-0.420482,1406986,85.9;49.277561,-0.420507,1408985,86.0;49.277513,-0.420534,1410970,85.6;49.277459,-0.420563,1412988,85.9;49.277402,-0.420593,1414988,86.0;49.277345,-0.420625,1416983,85.8;49.277289,-0.420657,1419001,85.4;49.277237,-0.420681,1420984,85.8;49.277189,-0.420691,1422978,86.1;49.277145,-0.420670,1424986,85.7;49.277107,-0.420626,1426994,85.8;49.277054,-0.420541,1429008,86.4;49.277014,-0.420459,1430989,86.8;49.276982,-0.420377,1432978,87.0;49.276953,-0.420295,1434982,87.2;49.276926,-0.420214,1436981,87.4;49.276898,-0.420128,1438994,88.6;49.276881,-0.420070,1440992,89.0;49.276864,-0.420003,1443004,89.1;49.276848,-0.419932,1444983,89.1;49.276832,-0.419862,1446989,89.4;49.276814,-0.419790,1448985,89.4;49.276797,-0.419720,1450983,89.4;49.276779,-0.419651,1452976,89.4;49.276760,-0.419583,1455010,89.3;49.276731,-0.419521,1456989,89.4;49.276701,-0.419467,1458997,89.9;49.276674,-0.419414,1500994,90.2;49.276662,-0.419373,1502980,91.6;49.276667,-0.419361,1504986,91.6;49.276689,-0.419366,1506987,92.1;49.276725,-0.419356,1509006,91.8;49.276776,-0.419333,1510994,91.1;49.276837,-0.419300,1512985,91.1;49.276903,-0.419263,1515015,90.8;49.276964,-0.419225,1516998,91.5;49.277018,-0.419224,1518979,91.4;49.277089,-0.419174,1520993,93.0;49.277131,-0.419119,1523005,92.9;49.277154,-0.419079,1524980,92.5;49.277175,-0.419029,1526970,92.6;49.277197,-0.418979,1528979,92.4;49.277217,-0.418951,1530980,92.1;49.277237,-0.418940,1532987,92.5;49.277262,-0.418934,1534998,91.9;49.277295,-0.418932,1536984,91.9;49.277334,-0.418927,1539002,91.8;49.277375,-0.418917,1540981,92.1;49.277414,-0.418902,1542974,92.0;49.277445,-0.418887,1544990,91.8;49.277457,-0.418881,1546981,91.2;49.277457,-0.418879,1548983,91.2;49.277447,-0.418884,1550973,90.6;49.277426,-0.418886,1552979,90.8;49.277400,-0.418887,1554999,90.9;49.277373,-0.418889,1557001,90.8;49.277346,-0.418890,1558982,90.7;49.277312,-0.418900,1600981,91.1;49.277281,-0.418933,1602984,90.8;49.277243,-0.418985,1604988,92.5;49.277198,-0.419042,1606985,93.3;49.277138,-0.419116,1608988,94.0;49.277105,-0.419153,1610979,93.0;49.277076,-0.419178,1612986,92.5;49.277041,-0.419205,1614982,92.9;49.277016,-0.419222,1616981,93.0;49.276983,-0.419243,1618990,92.9;49.276946,-0.419268,1620978,92.6;49.276906,-0.419293,1622984,92.5;49.276865,-0.419315,1624991,93.0;49.276828,-0.419339,1626983,93.3;49.276809,-0.419378,1628980,93.9;49.276801,-0.419430,1630987,94.0;49.276801,-0.419493,1632978,94.0;49.276807,-0.419562,1634985,93.8;49.276817,-0.419634,1636980,93.7;49.276828,-0.419709,1638997,93.8;49.276841,-0.419783,1640983,94.0;49.276856,-0.419858,1642981,93.8;49.276875,-0.419931,1644988,93.8;49.276895,-0.420006,1646975,93.8;49.276914,-0.420082,1648992,93.9;49.276933,-0.420157,1650998,93.7;49.276952,-0.420231,1652980,94.0;49.276970,-0.420306,1654984,94.1;49.276988,-0.420380,1656983,94.1;49.277007,-0.420455,1659013,94.3;49.277026,-0.420529,1700986,94.0;49.277048,-0.420604,1702978,94.1;49.277068,-0.420720,1704990,94.7;49.277086,-0.420816,1707000,94.7;49.277105,-0.420903,1708980,94.5;49.277125,-0.420986,1710968,94.3;49.277141,-0.421043,1712980,94.0;49.277165,-0.421136,1714984,95.1;49.277186,-0.421217,1716989,95.4;49.277206,-0.421292,1718986,95.4;49.277225,-0.421364,1720987,95.6;49.277239,-0.421413,1722984,95.7;49.277256,-0.421474,1725001,95.8;49.277274,-0.421540,1726979,96.1;49.277290,-0.421604,1728992,95.7;49.277295,-0.421649,1730972,95.8;49.277302,-0.421687,1732993,96.0;49.277309,-0.421720,1734978,95.9;49.277319,-0.421754,1736981,96.0;49.277331,-0.421794,1738980,96.0;49.277344,-0.421841,1740991,95.8;49.277359,-0.421893,1742978,95.7;49.277376,-0.421947,1744988,96.0;49.277396,-0.422001,1746984,96.7;49.277418,-0.422044,1748995,97.2;49.277441,-0.422088,1750983,96.7;49.277463,-0.422148,1752981,96.4;49.277468,-0.422210,1754999,95.9;49.277454,-0.422271,1757027,96.7;49.277410,-0.422372,1758974,97.5;49.277354,-0.422456,1800995,97.6;49.277296,-0.422523,1802994,98.0;49.277238,-0.422581,1804983,98.3;49.277184,-0.422624,1806990,98.5;49.277135,-0.422660,1808980,98.4;49.277101,-0.422682,1810986,98.4;49.277062,-0.422707,1812992,98.3;49.277021,-0.422732,1814979,98.2;49.276982,-0.422757,1816978,97.9;49.276945,-0.422781,1818989,97.9;49.276908,-0.422805,1820997,97.6;49.276871,-0.422828,1822983,97.5;49.276834,-0.422853,1824991,97.8;49.276794,-0.422879,1826983,97.8;49.276756,-0.422903,1828985,97.6;49.276719,-0.422927,1830988,97.3;49.276682,-0.422949,1832980,97.4;49.276646,-0.422971,1834981,97.6;49.276608,-0.422994,1836982,97.5;49.276569,-0.423016,1838971,97.6;49.276528,-0.423038,1840980,97.7;49.276485,-0.423060,1842982,97.1;49.276441,-0.423084,1844976,97.4;49.276399,-0.423111,1846981,97.7;49.276366,-0.423145,1848985,97.7;49.276347,-0.423188,1850990,97.6;49.276337,-0.423237,1852979,97.7;49.276333,-0.423289,1854975,97.6;49.276335,-0.423346,1856983,97.3;49.276340,-0.423407,1858985,97.2;49.276350,-0.423474,1900991,97.1;49.276359,-0.423547,1902978,96.9;49.276372,-0.423623,1904992,96.2;49.276387,-0.423699,1906986,96.4;49.276403,-0.423772,1908988,96.7;49.276418,-0.423845,1910986,96.8;49.276433,-0.423918,1912985,97.0;49.276452,-0.423986,1915014,96.6;49.276477,-0.424047,1917016,97.5;49.276512,-0.424097,1918990,97.1;49.276557,-0.424133,1920992,97.6;49.276609,-0.424163,1923003,97.6;49.276647,-0.424187,1924972,98.2;49.276658,-0.424199,1926980,97.2;49.276653,-0.424209,1928986,96.7;49.276622,-0.424225,1930989,97.0;49.276577,-0.424238,1933015,97.5;49.276543,-0.424249,1934989,97.7;49.276517,-0.424287,1936982,97.2;49.276501,-0.424348,1939004,97.0;49.276491,-0.424424,1940979,96.8;49.276487,-0.424508,1942998,97.0;49.276483,-0.424608,1944986,97.0;49.276479,-0.424741,1947003,97.0;49.276484,-0.424847,1948985,97.4;49.276506,-0.424919,1950999,98.3;49.276546,-0.424950,1952990,98.4;49.276597,-0.424962,1955000,98.3;49.276651,-0.424965,1956986,98.5;49.276690,-0.424964,1958973,98.5;49.276739,-0.424961,2000977,98.4;49.276793,-0.424959,2002983,98.5;49.276846,-0.424957,2004983,98.3;49.276898,-0.424953,2006988,98.4;49.276949,-0.424948,2008983,98.5;49.277000,-0.424941,2010983,98.7;49.277053,-0.424932,2012997,98.9;49.277106,-0.424921,2014973,97.8;49.277157,-0.424909,2016986,97.7;49.277205,-0.424899,2018979,97.9;49.277253,-0.424894,2020984,98.2;49.277302,-0.424890,2022975,98.3;49.277352,-0.424887,2024993,98.2;49.277403,-0.424884,2026991,98.1;49.277453,-0.424879,2028979,97.7;49.277501,-0.424872,2030980,97.7;49.277547,-0.424863,2032981,97.4;49.277589,-0.424856,2034994,97.4;49.277632,-0.424848,2036986,97.5;49.277673,-0.424840,2038988,96.9;49.277713,-0.424829,2041013,97.4;49.277754,-0.424820,2043000,97.9;49.277798,-0.424809,2044979,97.6;49.277844,-0.424796,2046982,97.8;49.277892,-0.424781,2048981,97.8;49.277919,-0.424773,2050989,97.6;49.277955,-0.424761,2052982,97.6;49.277998,-0.424747,2054983,97.4;49.278046,-0.424725,2056976,96.8;49.278129,-0.424679,2058982,96.5;49.278191,-0.424631,2100982,96.1;49.278244,-0.424584,2102978,96.0;49.278292,-0.424532,2104992,95.3;49.278335,-0.424484,2106979,95.5;49.278373,-0.424436,2108977,95.6;49.278407,-0.424382,2110975,95.1;49.278441,-0.424320,2112998,95.1;49.278470,-0.424250,2114978,94.4;49.278499,-0.424178,2116982,94.1;49.278533,-0.424105,2118989,94.5;49.278568,-0.424033,2120981,95.0;49.278607,-0.423962,2122995,95.2;49.278642,-0.423895,2124992,95.0;49.278679,-0.423833,2126985,94.6;49.278717,-0.423777,2128983,94.2;49.278757,-0.423741,2130980,93.7;49.278794,-0.423740,2132985,93.8;49.278831,-0.423759,2134991,94.0;49.278868,-0.423790,2136988,94.1;49.278908,-0.423828,2138989,94.4;49.278948,-0.423869,2140991,94.6;49.278988,-0.423910,2142977,94.9;49.279026,-0.423941,2144991,94.7;49.279062,-0.423961,2146972,94.4;49.279103,-0.423983,2149015,94.4;49.279144,-0.424011,2150979,94.4;49.279184,-0.424050,2152989,93.6;49.279212,-0.424096,2154996,93.9;49.279224,-0.424148,2157005,94.1;49.279228,-0.424200,2158982,93.5;49.279233,-0.424252,2200985,92.7;49.279244,-0.424301,2202982,93.8;49.279259,-0.424353,2204985,93.2;49.279269,-0.424410,2206994,93.3;49.279283,-0.424469,2208979,92.5;49.279299,-0.424526,2210994,92.2;49.279307,-0.424591,2212976,92.1;49.279305,-0.424670,2214981,92.7;49.279294,-0.424747,2216982,92.2;49.279278,-0.424818,2218994,92.2;49.279259,-0.424887,2220993,92.4;49.279237,-0.424950,2223000,92.4;49.279212,-0.425023,2224990,93.3;49.279184,-0.425099,2226978,93.6;49.279159,-0.425170,2228975,93.1';
abstract class AbstractRouteTraceView extends StatefulWidget {
final OrienteeringMap _map;
late final List<GeodesicPoint> _route;
AbstractRouteTraceView(OrienteeringMap map, String gpxRoute) : _map = map {
// TODO remettre cette ligne et supprimer la suivante
_route = Result.getGpsRouteAsWaypoints(gpxRoute);
// _route = Result.getGpsRouteAsWaypoints(toto);
_route = Result.getGpsRouteAsWaypoints(gpxRoute);
}
@override
......@@ -49,7 +44,7 @@ class AbstractRouteTraceViewState extends State<AbstractRouteTraceView> with Tic
IconButton(
icon: Icon(Icons.run_circle_outlined),
iconSize: 32.0,
onPressed: () => _isAnimationRunning? null : _runAnimation(),
onPressed: () => _isAnimationRunning ? null : _runAnimation(),
),
],
),
......
import 'package:flutter/animation.dart';
import 'package:flutter/material.dart';
import 'package:vikazimut/map/geodesic_point.dart';
import 'package:vikazimut/map/view/animated_route_layer.dart';
import 'package:vikazimut/map/view/map_view.dart';
......@@ -8,6 +9,7 @@ import 'abstract_track_view.dart';
class TrackAnimation {
AnimationController? _controller;
Function()? _action;
int _currentLegIndex = 0;
void execute(AbstractRouteTraceViewState parent, MapView mapView, List<GeodesicPoint> track) async {
var animatedRouteLayer = AnimatedRouteLayer(mapView);
......@@ -42,29 +44,36 @@ class TrackAnimation {
_controller?.dispose();
}
var _currentLegIndex = 0;
List<GeodesicPoint> getSubTrack(List<GeodesicPoint> track, int currentTime) {
// TODO Tests
// TODO question garde t-on le temps réel ?
for (int i = _currentLegIndex; i < track.length; i++) {
_currentLegIndex = findCurrentGPSPoint(track, currentTime, _currentLegIndex);
return getSubList(track, currentTime, _currentLegIndex);
}
@visibleForTesting
static int findCurrentGPSPoint(List<GeodesicPoint> track, int currentTime, int currentLegIndex) {
for (int i = currentLegIndex; i < track.length; i++) {
if (track[i].getTimeInMillis() < currentTime) {
_currentLegIndex++;
currentLegIndex++;
} else {
break;
}
}
if (_currentLegIndex > 0) {
var t2 = track[_currentLegIndex].getTimeInMillis();
var t1 = track[_currentLegIndex - 1].getTimeInMillis();
return currentLegIndex;
}
@visibleForTesting
static List<GeodesicPoint> getSubList(List<GeodesicPoint> track, int currentTime, int currentLegIndex) {
if (currentLegIndex > 0) {
var t1 = track[currentLegIndex - 1].getTimeInMillis();
var t2 = track[currentLegIndex].getTimeInMillis();
double x = (currentTime - t1) / (t2 - t1);
var latitude = x * track[_currentLegIndex].getLatitude() + (1.0 - x) * track[_currentLegIndex - 1].getLatitude();
var longitude = x * track[_currentLegIndex].getLongitude() + (1.0 - x) * track[_currentLegIndex - 1].getLongitude();
var list = track.sublist(0, _currentLegIndex - 1);
list.add(new GeodesicPoint(latitude, longitude));
return list;
var latitude = x * track[currentLegIndex].getLatitude() + (1.0 - x) * track[currentLegIndex - 1].getLatitude();
var longitude = x * track[currentLegIndex].getLongitude() + (1.0 - x) * track[currentLegIndex - 1].getLongitude();
var subList = track.sublist(0, currentLegIndex);
subList.add(new GeodesicPoint(latitude, longitude));
return subList;
} else {
return track.sublist(0, 0);
return [];
}
}
......
......@@ -8,7 +8,7 @@ void main() {
const double COORDINATE_PRECISION = 1e-9;
test('_readKmlFile_1', () async {
File xmlFile = new File('test_resources/kml1.xml');
File xmlFile = new File('test/resources/kml1.xml');
LatLonBox bounds = OrienteeringMapKmlFileReader.readFile(xmlFile);
expect(bounds, isNotNull);
expect(bounds.north, moreOrLessEquals(49.218965810, epsilon: COORDINATE_PRECISION));
......@@ -19,7 +19,7 @@ void main() {
});
test('readKmlFile_2', () async {
File xmlFile = new File('test_resources/kml2.xml');
File xmlFile = new File('test/resources/kml2.xml');
LatLonBox bounds = OrienteeringMapKmlFileReader.readFile(xmlFile);
expect(bounds, isNotNull);
expect(bounds.north, moreOrLessEquals(49.23319176120304, epsilon: COORDINATE_PRECISION));
......
......@@ -10,7 +10,7 @@ void main() {
test('Read formatted XML example 1', () async {
final String name = "EnsiCaen";
File xmlFile = new File('test_resources/ensicaen.xml');
File xmlFile = new File('test/resources/ensicaen.xml');
OrienteeringMap map = OrienteeringMapXmlFileReader.readFile(xmlFile, name);
expect(map.getName(), name);
int controlPointsCount = map.getControlPointsCount();
......@@ -28,7 +28,7 @@ void main() {
test('Read formatted XML example 2', () async {
final String name = "Jeune";
File xmlFile = new File('test_resources/mdjeunes.xml');
File xmlFile = new File('test/resources/mdjeunes.xml');
OrienteeringMap map = OrienteeringMapXmlFileReader.readFile(xmlFile, name);
expect(name, map.getName());
int controlPointsCount = map.getControlPointsCount();
......@@ -46,14 +46,14 @@ void main() {
test('Read Xml File URL empty', () async {
final String name = "EnsiCaen";
File xmlFile = new File('test_resources/ensicaen.xml');
File xmlFile = new File('test/resources/ensicaen.xml');
OrienteeringMap map = OrienteeringMapXmlFileReader.readFile(xmlFile, name);
expect(map.getControlPoint(1).getText(), null);
});
test('Read XmlFile when augmented with control point texts', () async {
final String name = "EnsiCaen";
File xmlFile = new File('test_resources/ensicaen-augmented.xml');
File xmlFile = new File('test/resources/ensicaen-augmented.xml');
OrienteeringMap map = OrienteeringMapXmlFileReader.readFile(xmlFile, name);
expect(map.getControlPoint(1).getText(), "Text 1");
expect(map.getControlPoint(2).getText(), "https://google.com");
......
......@@ -86,7 +86,7 @@ void main() {
}
List<GeodesicPoint> readGPXFile(String fileName) {
final file = new File('test_resources/$fileName');
final file = new File('test/resources/$fileName');
String contents = file.readAsStringSync();
// <trkpt lat="49.285776" lon="-0.538634"><time>1970-01-01T00:00:19.967Z</time><ele>94.1</ele>
List<GeodesicPoint> routerPoints = [];
......
import 'package:flutter_test/flutter_test.dart';
import 'package:vikazimut/map/geodesic_point.dart';
import 'package:vikazimut/result/result.dart';
import 'package:vikazimut/result/track/track_animation.dart';
void main() {
// String trackExample =
// '49.278524,-0.425337,02005,90.5;49.278511,-0.425321,03982,89.9;49.278501,-0.425309,08007,90.4;49.278496,-0.425319,14995,90.9;49.278497,-0.425345,16989,91.1;49.278502,-0.425373,18975,90.8;49.278509,-0.425426,20972,90.7;49.278520,-0.425491,22978,90.8;49.278532,-0.425564,24973,90.4;49.278546,-0.425640,26982,90.3;49.278561,-0.425721,28982,89.9;49.278574,-0.425804,30978,90.2;49.278588,-0.425889,32977,90.8;49.278603,-0.425974,34977,91.2;49.278617,-0.426060,36984,91.5;49.278634,-0.426146,38975,92.0;49.278651,-0.426231,40980,92.3;49.278668,-0.426314,42970,92.4;49.278685,-0.426390,44983,92.2;49.278699,-0.426466,46983,92.2;49.278710,-0.426539,48982,92.2;49.278720,-0.426614,50981,91.5;49.278724,-0.426682,52980,92.2;49.278707,-0.426747,55000,92.9;49.278680,-0.426797,56995,93.0;49.278630,-0.426858,58982,92.6;49.278588,-0.426893,0100978,92.6;49.278543,-0.426925,0102982,92.3;49.278496,-0.426956,0104980,92.2;49.278448,-0.426983,0107000,91.9;49.278397,-0.427010,0108980,92.2;49.278363,-0.427027,0110995,92.2;49.278318,-0.427049,0112979,92.0;49.278269,-0.427071,0114980,92.1;49.278221,-0.427092,0116972,92.2;49.278173,-0.427113,0118979,92.2;49.278124,-0.427136,0120975,92.1;49.278073,-0.427159,0122987,92.3;49.278021,-0.427180,0124967,92.1;49.277944,-0.427212,0126991,92.7;49.277888,-0.427220,0128981,92.3;49.277845,-0.427194,0130979,92.2;49.277807,-0.427153,0132979,91.6;49.277784,-0.427118,0134985,91.8;49.277754,-0.427063,0136982,91.7;49.277729,-0.427003,0138973,91.9;49.277724,-0.426989,0143986,91.9;49.277726,-0.426995,0145980,91.8;49.277737,-0.427014,0147990,91.9;49.277752,-0.427047,0149982,91.7;49.277756,-0.427086,0151990,91.7;49.277749,-0.427166,0153978,91.6;49.277739,-0.427238,0155981,91.9;49.277729,-0.427290,0157978,91.9;49.277714,-0.427360,0159983,91.3;49.277711,-0.427427,0201987,91.0;49.277721,-0.427491,0203980,91.1;49.277740,-0.427553,0205979,91.0;49.277763,-0.427613,0207977,90.9;49.277791,-0.427672,0209981,90.6;49.277818,-0.427732,0211985,91.0;49.277846,-0.427794,0213982,90.9;49.277871,-0.427858,0215978,90.6;49.277893,-0.427928,0217984,90.7;49.277913,-0.428001,0219995,90.6;49.277932,-0.428074,0221985,90.5;49.277950,-0.428148,0223983,90.5;49.277967,-0.428222,0225996,90.3;49.277986,-0.428296,0227980,90.4;49.278003,-0.428371,0229980,91.0;49.278020,-0.428446,0232004,91.0;49.278036,-0.428522,0234000,91.0;49.278052,-0.428596,0235988,91.0;49.278070,-0.428670,0237992,91.2;49.278088,-0.428744,0240012,91.2;49.278109,-0.428863,0242007,91.6;49.278126,-0.428956,0243984,91.6;49.278137,-0.429015,0245991,91.8;49.278151,-0.429086,0247985,91.7;49.278164,-0.429159,0249994,91.7;49.278175,-0.429234,0252009,91.6;49.278186,-0.429309,0253984,91.7;49.278197,-0.429388,0256000,91.7;49.278205,-0.429473,0258001,91.8;49.278218,-0.429559,0259985,92.3;49.278238,-0.429669,0301984,91.8;49.278255,-0.429752,0303988,91.4;49.278271,-0.429828,0305986,90.9;49.278284,-0.429904,0307985,90.9;49.278297,-0.429982,0309978,90.9;49.278314,-0.430054,0312020,90.7;49.278327,-0.430102,0313989,90.6;49.278343,-0.430162,0315977,90.5;49.278360,-0.430224,0317990,90.3;49.278377,-0.430287,0320022,90.1;49.278392,-0.430349,0321989,89.9;49.278408,-0.430411,0323993,90.0;49.278424,-0.430472,0325988,89.8;49.278441,-0.430532,0327995,89.7;49.278459,-0.430592,0329999,89.3;49.278481,-0.430651,0331988,89.0;49.278508,-0.430709,0333995,89.2;49.278538,-0.430762,0335994,89.0;49.278572,-0.430811,0337982,89.3;49.278608,-0.430851,0339993,89.0;49.278649,-0.430878,0341984,89.0;49.278692,-0.430903,0343982,89.6;49.278740,-0.430917,0346001,89.7;49.278788,-0.430925,0347995,89.4;49.278836,-0.430926,0349987,89.4;49.278886,-0.430921,0351991,89.2;49.278939,-0.430915,0353980,89.2;49.278992,-0.430907,0355993,88.9;49.279043,-0.430898,0357980,89.2;49.279095,-0.430884,0359988,89.6;49.279148,-0.430868,0401985,89.6;49.279200,-0.430847,0403999,89.3;49.279252,-0.430812,0406008,89.4;49.279302,-0.430769,0408001,89.5;49.279350,-0.430716,0409979,90.1;49.279392,-0.430657,0411990,89.5;49.279430,-0.430593,0413993,89.7;49.279465,-0.430529,0416016,89.9;49.279500,-0.430468,0417991,90.0;49.279534,-0.430405,0419988,90.7;49.279580,-0.430315,0421992,91.6;49.279613,-0.430242,0424000,91.5;49.279640,-0.430174,0425990,91.4;49.279665,-0.430109,0428007,91.0;49.279688,-0.430043,0430006,90.4;49.279708,-0.429979,0431997,90.3;49.279721,-0.429935,0433981,90.2;49.279738,-0.429879,0436005,89.9;49.279757,-0.429818,0437988,89.6;49.279777,-0.429755,0439997,89.8;49.279798,-0.429689,0441994,89.5;49.279818,-0.429621,0443990,89.3;49.279834,-0.429550,0446012,89.2;49.279849,-0.429470,0447993,89.7;49.279861,-0.429361,0449979,89.5;49.279863,-0.429276,0451991,89.3;49.279861,-0.429219,0453983,89.1;49.279857,-0.429151,0455988,89.3;49.279850,-0.429078,0458005,89.1;49.279840,-0.429005,0500015,89.1;49.279831,-0.428938,0501997,88.9;49.279822,-0.428872,0503990,89.3;49.279811,-0.428805,0506036,89.7;49.279800,-0.428741,0507990,89.6;49.279785,-0.428681,0509983,89.6;49.279766,-0.428625,0511989,89.5;49.279744,-0.428571,0513994,89.9;49.279717,-0.428519,0515989,89.8;49.279690,-0.428465,0517995,89.6;49.279675,-0.428404,0519984,89.7;49.279671,-0.428340,0522004,89.6;49.279672,-0.428276,0523991,89.7;49.279680,-0.428210,0525991,89.8;49.279688,-0.428143,0527976,89.8;49.279696,-0.428074,0529975,89.7;49.279705,-0.428006,0531982,89.8;49.279714,-0.427944,0533992,89.6;49.279721,-0.427898,0536006,88.7;49.279726,-0.427865,0537981,88.8;49.279735,-0.427801,0540022,89.8;49.279752,-0.427711,0541990,89.4;49.279773,-0.427621,0543988,89.3;49.279794,-0.427538,0545979,88.9;49.279824,-0.427471,0547991,88.7;49.279859,-0.427420,0549986,88.7;49.279898,-0.427378,0551991,88.4;49.279936,-0.427336,0554009,88.7;49.279976,-0.427299,0555985,88.8;49.280015,-0.427268,0557987,88.9;49.280055,-0.427239,0559993,88.8;49.280096,-0.427214,0601991,88.7;49.280137,-0.427187,0603996,88.3;49.280178,-0.427160,0605989,88.0;49.280219,-0.427134,0607996,87.8;49.280259,-0.427111,0609988,87.6;49.280299,-0.427091,0611980,87.5;49.280341,-0.427070,0613997,88.0;49.280383,-0.427049,0615989,88.1;49.280422,-0.427026,0617991,87.7;49.280459,-0.426994,0619994,87.5;49.280484,-0.426957,0621997,87.6;49.280498,-0.426913,0623992,87.8;49.280503,-0.426863,0625998,87.2;49.280503,-0.426809,0627990,87.2;49.280502,-0.426761,0629992,86.1;49.280501,-0.426740,0632000,87.1;49.280503,-0.426736,0633995,87.3;49.280507,-0.426750,0636011,87.6;49.280514,-0.426779,0637998,87.3;49.280526,-0.426821,0639988,87.0;49.280542,-0.426854,0641992,87.4;49.280563,-0.426875,0643977,87.5;49.280589,-0.426884,0645985,87.2;49.280619,-0.426883,0647999,86.7;49.280653,-0.426878,0649989,86.6;49.280689,-0.426872,0651991,86.6;49.280718,-0.426876,0653987,86.7;49.280745,-0.426900,0656002,86.7;49.280770,-0.426936,0657986,86.7;49.280793,-0.426985,0659978,86.4;49.280816,-0.427039,0701994,85.5;49.280844,-0.427089,0703996,86.0;49.280883,-0.427126,0705987,86.0;49.280927,-0.427149,0707989,85.8;49.280972,-0.427161,0709989,85.9;49.281020,-0.427164,0711992,86.1;49.281067,-0.427163,0713985,86.0;49.281116,-0.427158,0715979,85.3;49.281167,-0.427150,0717987,85.2;49.281217,-0.427137,0720009,85.0;49.281268,-0.427121,0721991,85.1;49.281318,-0.427101,0723989,85.2;49.281345,-0.427088,0726004,85.2;49.281384,-0.427066,0728004,84.6;49.281457,-0.427016,0729982,85.0;49.281503,-0.426962,0731996,84.7;49.281522,-0.426930,0733983,83.9;49.281537,-0.426891,0735991,84.3;49.281553,-0.426808,0737985,84.4;49.281552,-0.426743,0739975,84.6;49.281540,-0.426681,0742003,84.3;49.281521,-0.426623,0743991,84.2;49.281499,-0.426565,0746002,84.4;49.281479,-0.426503,0748001,84.4;49.281461,-0.426433,0750010,84.3;49.281440,-0.426366,0751994,84.1;49.281413,-0.426303,0753987,83.7;49.281386,-0.426246,0755996,83.4;49.281358,-0.426185,0757986,82.9;49.281328,-0.426130,0759984,83.8;49.281294,-0.426073,0801997,83.5;49.281261,-0.426018,0803983,83.3;49.281212,-0.425943,0805980,83.0;49.281172,-0.425888,0807991,82.9;49.281136,-0.425840,0809990,82.7;49.281101,-0.425795,0811992,82.7;49.281077,-0.425758,0813997,82.4;49.281045,-0.425706,0815989,83.0;49.281009,-0.425642,0817991,83.3;49.280972,-0.425574,0820003,83.1;49.280939,-0.425507,0821987,83.6;49.280913,-0.425448,0823996,82.8;49.280890,-0.425386,0825999,82.4;49.280869,-0.425318,0827989,83.0;49.280849,-0.425249,0829975,83.3;49.280830,-0.425180,0831997,83.7;49.280814,-0.425110,0833986,83.7;49.280799,-0.425041,0836005,83.7;49.280786,-0.424970,0837989,83.7;49.280773,-0.424899,0839983,82.9;49.280756,-0.424838,0841995,84.4;49.280740,-0.424768,0843982,84.4;49.280726,-0.424697,0845990,83.9;49.280715,-0.424625,0847995,83.5;49.280703,-0.424554,0849989,83.9;49.280692,-0.424486,0851976,84.0;49.280679,-0.424421,0853973,83.9;49.280667,-0.424359,0855991,84.7;49.280652,-0.424298,0857980,85.5;49.280639,-0.424236,0859980,85.1;49.280626,-0.424173,0901989,84.5;49.280614,-0.424110,0903991,85.2;49.280600,-0.424047,0905986,84.6;49.280584,-0.423980,0907996,85.4;49.280569,-0.423912,0909996,85.1;49.280554,-0.423843,0911978,85.6;49.280535,-0.423764,0913987,87.5;49.280514,-0.423688,0915982,87.7;49.280494,-0.423609,0917993,87.5;49.280476,-0.423532,0919994,87.5;49.280459,-0.423457,0921993,87.4;49.280442,-0.423385,0923979,87.4;49.280426,-0.423315,0925985,87.0;49.280412,-0.423247,0927981,86.9;49.280402,-0.423178,0929995,87.6;49.280395,-0.423104,0931998,88.1;49.280396,-0.423022,0934004,88.6;49.280399,-0.422942,0935988,88.7;49.280406,-0.422864,0937996,89.0;49.280419,-0.422786,0939997,88.5;49.280432,-0.422710,0941985,88.1;49.280447,-0.422637,0943983,88.3;49.280463,-0.422565,0945986,88.5;49.280480,-0.422495,0947987,88.7;49.280497,-0.422425,0949996,88.9;49.280515,-0.422356,0951999,88.7;49.280535,-0.422289,0953977,88.5;49.280555,-0.422221,0955981,88.4;49.280576,-0.422153,0957991,88.1;49.280596,-0.422086,1000010,88.1;49.280616,-0.422020,1001994,88.2;49.280636,-0.421954,1003995,88.1;49.280655,-0.421888,1005991,87.9;49.280674,-0.421823,1007992,88.0;49.280692,-0.421757,1009991,87.9;49.280711,-0.421689,1011995,88.0;49.280730,-0.421623,1013984,88.2;49.280748,-0.421558,1015993,88.1;49.280766,-0.421495,1017993,88.0;49.280784,-0.421432,1019982,88.0;49.280803,-0.421367,1021982,87.9;49.280819,-0.421304,1023985,87.6;49.280837,-0.421236,1025994,88.0;49.280855,-0.421166,1027981,87.8;49.280866,-0.421100,1029988,87.2;49.280868,-0.421043,1031996,87.5;49.280861,-0.420990,1033976,87.4;49.280847,-0.420944,1035989,87.4;49.280820,-0.420911,1038003,87.6;49.280789,-0.420885,1039984,88.1;49.280753,-0.420859,1042000,88.3;49.280717,-0.420836,1043983,88.9;49.280685,-0.420816,1045988,88.8;49.280657,-0.420803,1047983,88.5;49.280628,-0.420793,1049974,88.1;49.280598,-0.420788,1051971,87.9;49.280563,-0.420784,1053991,87.3;49.280525,-0.420780,1055987,87.1;49.280484,-0.420771,1057972,87.3;49.280439,-0.420752,1059986,88.1;49.280403,-0.420721,1101985,88.2;49.280372,-0.420679,1103993,88.7;49.280348,-0.420626,1106002,88.3;49.280329,-0.420566,1107999,88.1;49.280315,-0.420509,1109991,88.5;49.280304,-0.420450,1111997,88.3;49.280296,-0.420389,1113976,88.5;49.280290,-0.420323,1115974,88.8;49.280283,-0.420256,1117989,88.9;49.280275,-0.420191,1119990,89.2;49.280267,-0.420126,1121984,89.4;49.280260,-0.420058,1123977,89.4;49.280253,-0.419989,1125983,89.3;49.280249,-0.419927,1127986,89.4;49.280245,-0.419869,1129998,89.6;49.280238,-0.419801,1131987,89.6;49.280222,-0.419709,1134001,90.6;49.280211,-0.419623,1136973,91.4;49.280212,-0.419618,1138998,91.8;49.280216,-0.419646,1141011,91.9;49.280219,-0.419705,1143015,91.5;49.280222,-0.419757,1144974,91.4;49.280226,-0.419827,1147005,91.2;49.280231,-0.419903,1148998,90.8;49.280237,-0.419980,1150984,90.8;49.280241,-0.420050,1152975,90.2;49.280247,-0.420119,1154990,90.1;49.280255,-0.420188,1156993,89.7;49.280263,-0.420253,1158976,89.7;49.280272,-0.420314,1200982,90.1;49.280282,-0.420376,1202989,90.2;49.280286,-0.420436,1204996,90.3;49.280281,-0.420491,1206987,89.5;49.280261,-0.420528,1208984,89.2;49.280230,-0.420550,1210989,89.0;49.280193,-0.420562,1212970,89.2;49.280148,-0.420565,1214982,89.2;49.280097,-0.420565,1217012,89.5;49.280043,-0.420560,1218979,89.7;49.279988,-0.420552,1220983,89.6;49.279934,-0.420542,1223007,89.7;49.279882,-0.420528,1224994,89.5;49.279829,-0.420513,1226996,89.4;49.279776,-0.420499,1228982,89.2;49.279725,-0.420484,1230982,89.4;49.279676,-0.420468,1232999,89.5;49.279630,-0.420455,1234992,89.3;49.279583,-0.420443,1236988,89.9;49.279536,-0.420431,1238988,89.6;49.279487,-0.420420,1241008,88.9;49.279438,-0.420409,1242982,88.9;49.279389,-0.420397,1244987,88.9;49.279342,-0.420383,1246981,88.8;49.279296,-0.420367,1248981,88.3;49.279251,-0.420348,1250984,88.7;49.279203,-0.420328,1252979,88.8;49.279157,-0.420312,1255010,88.1;49.279113,-0.420295,1257002,88.1;49.279071,-0.420278,1258982,88.6;49.279038,-0.420260,1300982,88.6;49.279004,-0.420238,1302986,88.8;49.278965,-0.420216,1304995,88.6;49.278924,-0.420191,1306981,88.1;49.278882,-0.420167,1308992,88.1;49.278825,-0.420145,1310978,88.6;49.278768,-0.420126,1312987,88.2;49.278714,-0.420105,1314993,87.7;49.278660,-0.420084,1316980,87.8;49.278607,-0.420064,1318987,88.5;49.278556,-0.420055,1320990,88.4;49.278504,-0.420055,1322982,87.8;49.278453,-0.420064,1324982,88.4;49.278405,-0.420080,1326975,88.1;49.278357,-0.420099,1328970,88.0;49.278309,-0.420123,1330983,87.7;49.278263,-0.420146,1332990,87.3;49.278217,-0.420168,1334994,87.3;49.278176,-0.420188,1336986,87.0;49.278136,-0.420208,1338994,87.1;49.278097,-0.420228,1340989,86.9;49.278061,-0.420247,1342982,87.0;49.278024,-0.420268,1344991,86.9;49.277987,-0.420292,1347015,86.6;49.277949,-0.420316,1348973,86.9;49.277908,-0.420339,1350984,85.7;49.277862,-0.420365,1352991,85.6;49.277812,-0.420389,1354987,85.9;49.277763,-0.420414,1356979,86.1;49.277717,-0.420435,1358988,85.8;49.277688,-0.420446,1400993,85.4;49.277667,-0.420451,1402991,85.3;49.277640,-0.420459,1404998,85.7;49.277605,-0.420482,1406986,85.9;49.277561,-0.420507,1408985,86.0;49.277513,-0.420534,1410970,85.6;49.277459,-0.420563,1412988,85.9;49.277402,-0.420593,1414988,86.0;49.277345,-0.420625,1416983,85.8;49.277289,-0.420657,1419001,85.4;49.277237,-0.420681,1420984,85.8;49.277189,-0.420691,1422978,86.1;49.277145,-0.420670,1424986,85.7;49.277107,-0.420626,1426994,85.8;49.277054,-0.420541,1429008,86.4;49.277014,-0.420459,1430989,86.8;49.276982,-0.420377,1432978,87.0;49.276953,-0.420295,1434982,87.2;49.276926,-0.420214,1436981,87.4;49.276898,-0.420128,1438994,88.6;49.276881,-0.420070,1440992,89.0;49.276864,-0.420003,1443004,89.1;49.276848,-0.419932,1444983,89.1;49.276832,-0.419862,1446989,89.4;49.276814,-0.419790,1448985,89.4;49.276797,-0.419720,1450983,89.4;49.276779,-0.419651,1452976,89.4;49.276760,-0.419583,1455010,89.3;49.276731,-0.419521,1456989,89.4;49.276701,-0.419467,1458997,89.9;49.276674,-0.419414,1500994,90.2;49.276662,-0.419373,1502980,91.6;49.276667,-0.419361,1504986,91.6;49.276689,-0.419366,1506987,92.1;49.276725,-0.419356,1509006,91.8;49.276776,-0.419333,1510994,91.1;49.276837,-0.419300,1512985,91.1;49.276903,-0.419263,1515015,90.8;49.276964,-0.419225,1516998,91.5;49.277018,-0.419224,1518979,91.4;49.277089,-0.419174,1520993,93.0;49.277131,-0.419119,1523005,92.9;49.277154,-0.419079,1524980,92.5;49.277175,-0.419029,1526970,92.6;49.277197,-0.418979,1528979,92.4;49.277217,-0.418951,1530980,92.1;49.277237,-0.418940,1532987,92.5;49.277262,-0.418934,1534998,91.9;49.277295,-0.418932,1536984,91.9;49.277334,-0.418927,1539002,91.8;49.277375,-0.418917,1540981,92.1;49.277414,-0.418902,1542974,92.0;49.277445,-0.418887,1544990,91.8;49.277457,-0.418881,1546981,91.2;49.277457,-0.418879,1548983,91.2;49.277447,-0.418884,1550973,90.6;49.277426,-0.418886,1552979,90.8;49.277400,-0.418887,1554999,90.9;49.277373,-0.418889,1557001,90.8;49.277346,-0.418890,1558982,90.7;49.277312,-0.418900,1600981,91.1;49.277281,-0.418933,1602984,90.8;49.277243,-0.418985,1604988,92.5;49.277198,-0.419042,1606985,93.3;49.277138,-0.419116,1608988,94.0;49.277105,-0.419153,1610979,93.0;49.277076,-0.419178,1612986,92.5;49.277041,-0.419205,1614982,92.9;49.277016,-0.419222,1616981,93.0;49.276983,-0.419243,1618990,92.9;49.276946,-0.419268,1620978,92.6;49.276906,-0.419293,1622984,92.5;49.276865,-0.419315,1624991,93.0;49.276828,-0.419339,1626983,93.3;49.276809,-0.419378,1628980,93.9;49.276801,-0.419430,1630987,94.0;49.276801,-0.419493,1632978,94.0;49.276807,-0.419562,1634985,93.8;49.276817,-0.419634,1636980,93.7;49.276828,-0.419709,1638997,93.8;49.276841,-0.419783,1640983,94.0;49.276856,-0.419858,1642981,93.8;49.276875,-0.419931,1644988,93.8;49.276895,-0.420006,1646975,93.8;49.276914,-0.420082,1648992,93.9;49.276933,-0.420157,1650998,93.7;49.276952,-0.420231,1652980,94.0;49.276970,-0.420306,1654984,94.1;49.276988,-0.420380,1656983,94.1;49.277007,-0.420455,1659013,94.3;49.277026,-0.420529,1700986,94.0;49.277048,-0.420604,1702978,94.1;49.277068,-0.420720,1704990,94.7;49.277086,-0.420816,1707000,94.7;49.277105,-0.420903,1708980,94.5;49.277125,-0.420986,1710968,94.3;49.277141,-0.421043,1712980,94.0;49.277165,-0.421136,1714984,95.1;49.277186,-0.421217,1716989,95.4;49.277206,-0.421292,1718986,95.4;49.277225,-0.421364,1720987,95.6;49.277239,-0.421413,1722984,95.7;49.277256,-0.421474,1725001,95.8;49.277274,-0.421540,1726979,96.1;49.277290,-0.421604,1728992,95.7;49.277295,-0.421649,1730972,95.8;49.277302,-0.421687,1732993,96.0;49.277309,-0.421720,1734978,95.9;49.277319,-0.421754,1736981,96.0;49.277331,-0.421794,1738980,96.0;49.277344,-0.421841,1740991,95.8;49.277359,-0.421893,1742978,95.7;49.277376,-0.421947,1744988,96.0;49.277396,-0.422001,1746984,96.7;49.277418,-0.422044,1748995,97.2;49.277441,-0.422088,1750983,96.7;49.277463,-0.422148,1752981,96.4;49.277468,-0.422210,1754999,95.9;49.277454,-0.422271,1757027,96.7;49.277410,-0.422372,1758974,97.5;49.277354,-0.422456,1800995,97.6;49.277296,-0.422523,1802994,98.0;49.277238,-0.422581,1804983,98.3;49.277184,-0.422624,1806990,98.5;49.277135,-0.422660,1808980,98.4;49.277101,-0.422682,1810986,98.4;49.277062,-0.422707,1812992,98.3;49.277021,-0.422732,1814979,98.2;49.276982,-0.422757,1816978,97.9;49.276945,-0.422781,1818989,97.9;49.276908,-0.422805,1820997,97.6;49.276871,-0.422828,1822983,97.5;49.276834,-0.422853,1824991,97.8;49.276794,-0.422879,1826983,97.8;49.276756,-0.422903,1828985,97.6;49.276719,-0.422927,1830988,97.3;49.276682,-0.422949,1832980,97.4;49.276646,-0.422971,1834981,97.6;49.276608,-0.422994,1836982,97.5;49.276569,-0.423016,1838971,97.6;49.276528,-0.423038,1840980,97.7;49.276485,-0.423060,1842982,97.1;49.276441,-0.423084,1844976,97.4;49.276399,-0.423111,1846981,97.7;49.276366,-0.423145,1848985,97.7;49.276347,-0.423188,1850990,97.6;49.276337,-0.423237,1852979,97.7;49.276333,-0.423289,1854975,97.6;49.276335,-0.423346,1856983,97.3;49.276340,-0.423407,1858985,97.2;49.276350,-0.423474,1900991,97.1;49.276359,-0.423547,1902978,96.9;49.276372,-0.423623,1904992,96.2;49.276387,-0.423699,1906986,96.4;49.276403,-0.423772,1908988,96.7;49.276418,-0.423845,1910986,96.8;49.276433,-0.423918,1912985,97.0;49.276452,-0.423986,1915014,96.6;49.276477,-0.424047,1917016,97.5;49.276512,-0.424097,1918990,97.1;49.276557,-0.424133,1920992,97.6;49.276609,-0.424163,1923003,97.6;49.276647,-0.424187,1924972,98.2;49.276658,-0.424199,1926980,97.2;49.276653,-0.424209,1928986,96.7;49.276622,-0.424225,1930989,97.0;49.276577,-0.424238,1933015,97.5;49.276543,-0.424249,1934989,97.7;49.276517,-0.424287,1936982,97.2;49.276501,-0.424348,1939004,97.0;49.276491,-0.424424,1940979,96.8;49.276487,-0.424508,1942998,97.0;49.276483,-0.424608,1944986,97.0;49.276479,-0.424741,1947003,97.0;49.276484,-0.424847,1948985,97.4;49.276506,-0.424919,1950999,98.3;49.276546,-0.424950,1952990,98.4;49.276597,-0.424962,1955000,98.3;49.276651,-0.424965,1956986,98.5;49.276690,-0.424964,1958973,98.5;49.276739,-0.424961,2000977,98.4;49.276793,-0.424959,2002983,98.5;49.276846,-0.424957,2004983,98.3;49.276898,-0.424953,2006988,98.4;49.276949,-0.424948,2008983,98.5;49.277000,-0.424941,2010983,98.7;49.277053,-0.424932,2012997,98.9;49.277106,-0.424921,2014973,97.8;49.277157,-0.424909,2016986,97.7;49.277205,-0.424899,2018979,97.9;49.277253,-0.424894,2020984,98.2;49.277302,-0.424890,2022975,98.3;49.277352,-0.424887,2024993,98.2;49.277403,-0.424884,2026991,98.1;49.277453,-0.424879,2028979,97.7;49.277501,-0.424872,2030980,97.7;49.277547,-0.424863,2032981,97.4;49.277589,-0.424856,2034994,97.4;49.277632,-0.424848,2036986,97.5;49.277673,-0.424840,2038988,96.9;49.277713,-0.424829,2041013,97.4;49.277754,-0.424820,2043000,97.9;49.277798,-0.424809,2044979,97.6;49.277844,-0.424796,2046982,97.8;49.277892,-0.424781,2048981,97.8;49.277919,-0.424773,2050989,97.6;49.277955,-0.424761,2052982,97.6;49.277998,-0.424747,2054983,97.4;49.278046,-0.424725,2056976,96.8;49.278129,-0.424679,2058982,96.5;49.278191,-0.424631,2100982,96.1;49.278244,-0.424584,2102978,96.0;49.278292,-0.424532,2104992,95.3;49.278335,-0.424484,2106979,95.5;49.278373,-0.424436,2108977,95.6;49.278407,-0.424382,2110975,95.1;49.278441,-0.424320,2112998,95.1;49.278470,-0.424250,2114978,94.4;49.278499,-0.424178,2116982,94.1;49.278533,-0.424105,2118989,94.5;49.278568,-0.424033,2120981,95.0;49.278607,-0.423962,2122995,95.2;49.278642,-0.423895,2124992,95.0;49.278679,-0.423833,2126985,94.6;49.278717,-0.423777,2128983,94.2;49.278757,-0.423741,2130980,93.7;49.278794,-0.423740,2132985,93.8;49.278831,-0.423759,2134991,94.0;49.278868,-0.423790,2136988,94.1;49.278908,-0.423828,2138989,94.4;49.278948,-0.423869,2140991,94.6;49.278988,-0.423910,2142977,94.9;49.279026,-0.423941,2144991,94.7;49.279062,-0.423961,2146972,94.4;49.279103,-0.423983,2149015,94.4;49.279144,-0.424011,2150979,94.4;49.279184,-0.424050,2152989,93.6;49.279212,-0.424096,2154996,93.9;49.279224,-0.424148,2157005,94.1;49.279228,-0.424200,2158982,93.5;49.279233,-0.424252,2200985,92.7;49.279244,-0.424301,2202982,93.8;49.279259,-0.424353,2204985,93.2;49.279269,-0.424410,2206994,93.3;49.279283,-0.424469,2208979,92.5;49.279299,-0.424526,2210994,92.2;49.279307,-0.424591,2212976,92.1;49.279305,-0.424670,2214981,92.7;49.279294,-0.424747,2216982,92.2;49.279278,-0.424818,2218994,92.2;49.279259,-0.424887,2220993,92.4;49.279237,-0.424950,2223000,92.4;49.279212,-0.425023,2224990,93.3;49.279184,-0.425099,2226978,93.6;49.279159,-0.425170,2228975,93.1';
String trackExample = '49.278524,-0.425337,02005,90.5;49.278511,-0.425321,03982,89.9;49.278501,-0.425309,08007,90.4';
late List<GeodesicPoint> route;
setUpAll(() {
route = Result.getGpsRouteAsWaypoints(trackExample);
});
test('Test find current GPS point when start', () async {
var actual = TrackAnimation.findCurrentGPSPoint(route, 0, 0);
expect(actual, 0);
});
test('Test find current GPS point when before GPS time', () async {
var actual = TrackAnimation.findCurrentGPSPoint(route, 3981, 0);
expect(actual, 1);
});
test('Test find current GPS point when egals GPS time', () async {
var actual = TrackAnimation.findCurrentGPSPoint(route, 3982, 0);
expect(actual, 1);
});
test('Test find current GPS point when after GPS time', () async {
var actual = TrackAnimation.findCurrentGPSPoint(route, 3983, 0);
expect(actual, 2);
});
test('Test find current GPS point when nd', () async {
var actual = TrackAnimation.findCurrentGPSPoint(route, 8007, 0);
expect(actual, 2);
});
test('Get sublist when empty', () async {
var actual = TrackAnimation.getSubList(route, 0, 0);
expect(actual, []);
});
test('Get sublist when one leg', () async {
var actual = TrackAnimation.getSubList(route, 3982, 2);
expect(actual.length, route.sublist(0, 2).length);
});
test('Get sublist when all legs', () async {
var actual = TrackAnimation.getSubList(route, 8007, 2);
expect(actual.length, route.length);
});
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment