Skip to content

Commit

Permalink
Use meters instead of km. Misc changes
Browse files Browse the repository at this point in the history
  • Loading branch information
johnjore committed Apr 5, 2022
1 parent 3ddf0ab commit 88942a6
Show file tree
Hide file tree
Showing 8 changed files with 233 additions and 204 deletions.
13 changes: 7 additions & 6 deletions Fragments/Fragment_posinfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
//Distance Straight Line from GPSLocation to MapPosition
try
{
var DistanceStraightLine_m = (new PositionHandler().CalculateDistance(MapPosition, GpsLocation, DistanceType.Kilometers)) * 1000;
var DistanceStraightLine_m = (new PositionHandler().CalculateDistance(MapPosition, GpsLocation, DistanceType.Meters));

string v = Utils.Misc.KMvsM(DistanceStraightLine_m);
view.FindViewById<TextView>(Resource.Id.DistanceStraightLine_m).Text = "GPS to Map: " + v;
Expand Down Expand Up @@ -129,7 +129,7 @@ public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
var DistanceGPSLocationMapLocation_m = a.Item3;

//Add distance from GPSLocation to first waypoint. We might not be on-top of it. If we are, distance should be 0...
DistanceGPSLocationMapLocation_m += (int)(new PositionHandler().CalculateDistance(p1, GpsLocation, DistanceType.Kilometers)) * 1000;
DistanceGPSLocationMapLocation_m += (int)(new PositionHandler().CalculateDistance(p1, GpsLocation, DistanceType.Meters));
string v = Utils.Misc.KMvsM(DistanceGPSLocationMapLocation_m);

view.FindViewById<TextView>(Resource.Id.AscentGPSLocationMapLocation_m).Text = "Ascent From GPS to Map: " + AscentGPSLocationMapLocation_m.ToString("N0") + "m";
Expand Down Expand Up @@ -161,7 +161,7 @@ public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
{
var PositionStart = new GPXUtils.Position((double)RecordTrack.trackGpx.Waypoints.First().lat, (double)RecordTrack.trackGpx.Waypoints.First().lon, 0);

var DistanceStraightLine_m = (new PositionHandler().CalculateDistance(MapPosition, PositionStart, DistanceType.Kilometers)) * 1000;
var DistanceStraightLine_m = (new PositionHandler().CalculateDistance(MapPosition, PositionStart, DistanceType.Meters));
string v = Utils.Misc.KMvsM(DistanceStraightLine_m);

view.FindViewById<TextView>(Resource.Id.DistanceStraightLineFromStart_m).Text = "Straight Distance From Start To Map: " + v;
Expand All @@ -176,7 +176,7 @@ public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
{
var PositionStart = new GPXUtils.Position((double)RecordTrack.trackGpx.Waypoints.First().lat, (double)RecordTrack.trackGpx.Waypoints.First().lon, 0);

var DistanceStraightLine_m = (new PositionHandler().CalculateDistance(PositionStart, GpsLocation, DistanceType.Kilometers)) * 1000;
var DistanceStraightLine_m = (new PositionHandler().CalculateDistance(PositionStart, GpsLocation, DistanceType.Meters));
string v = Utils.Misc.KMvsM(DistanceStraightLine_m);

view.FindViewById<TextView>(Resource.Id.DistanceStraightLineFromStartGPS_m).Text = "Striaght Distance From Start To GPS: " + v;
Expand All @@ -192,8 +192,9 @@ public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
var a = GPXUtils.GPXUtils.CalculateElevationDistanceData(RecordTrack.trackGpx.Waypoints, 0, RecordTrack.trackGpx.Waypoints.Count);
int TrackAscentFromStart_m = a.Item1;
int TrackDescentFromStart_m = a.Item2;
int TrackDistanceFromStart_m = a.Item3;
int TrackDistanceFromStart_m = a.Item3;
string v = Utils.Misc.KMvsM(TrackDistanceFromStart_m);
Serilog.Log.Debug("Item3: '" + a.Item3.ToString() + "', TrackDistanceFromStart_m: '" + TrackDistanceFromStart_m.ToString() + "', v: '" + v + "'");

view.FindViewById<TextView>(Resource.Id.AscentFromStart_m).Text = "Ascent From Start To GPS: " + TrackAscentFromStart_m.ToString("N0") + "m";
view.FindViewById<TextView>(Resource.Id.DescentFromStart_m).Text = "Descent From Start To GPS: " + TrackDescentFromStart_m.ToString("N0") + "m";
Expand Down Expand Up @@ -300,7 +301,7 @@ private void ConfigureGraph(View view, Xamarin.Essentials.Location GpsLocation,
if (i == route.rtept.Count - 1)
{
var t = Import.GPXtoRoute(route, false);
entry.Label =  t.Item2.ToString("N1");
entry.Label =  (t.Item2 / 1000).ToString("N1");
entry.TextColor = SKColor.Parse("#000000"); //Purple
}

Expand Down
26 changes: 14 additions & 12 deletions ImportGPX/ImportGPX.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class Import
/**///Why do we need this as global variables
public static Android.App.Dialog dialog = null;
public static int progress = 0;
public static Google.Android.Material.TextView.MaterialTextView progressBarText = null;
public static Google.Android.Material.TextView.MaterialTextView progressBarText2 = null;

public static ILayer GetRoute()
{
Expand Down Expand Up @@ -133,7 +133,7 @@ public static void AddGPXTrack(trkType track, bool DownloadOfflineMap)
//Get Track and distance from GPX
var t = GPXtoRoute(track.ToRoutes()[0], true);
string mapTrack = t.Item1;
float mapDistanceKm = t.Item2;
float mapDistance_m = t.Item2;
int ascent = t.Item3;
int descent = t.Item4;
List<Position> LatLon = t.Item5;
Expand Down Expand Up @@ -177,7 +177,7 @@ public static void AddGPXTrack(trkType track, bool DownloadOfflineMap)
{
GPXType = GPXType.Track,
Name = track.name,
Distance = mapDistanceKm,
Distance = (mapDistance_m / 1000),
Ascent = ascent,
Descent = descent,
Description = track.desc,
Expand Down Expand Up @@ -214,7 +214,7 @@ public static void AddGPXRoute(rteType route, bool DownloadOfflineMap)
//Get Route and distance from GPX
var t = GPXtoRoute(route, true);
string mapRoute = t.Item1;
float mapDistanceKm = t.Item2;
float mapDistance_m = t.Item2;
int ascent = t.Item3;
int descent = t.Item4;
List<Position> LatLon = t.Item5;
Expand Down Expand Up @@ -258,7 +258,7 @@ public static void AddGPXRoute(rteType route, bool DownloadOfflineMap)
{
GPXType = GPXType.Route,
Name = route.name,
Distance = mapDistanceKm,
Distance = (mapDistance_m / 1000),
Ascent = ascent,
Descent = descent,
Description = route.desc,
Expand Down Expand Up @@ -346,7 +346,9 @@ public static async void GetloadOfflineMap(boundsType bounds, int id, string str
var progressBar = progressDialogBox.FindViewById<ProgressBar>(Resource.Id.progressBar);
progressBar.Max = 100;
progressBar.Progress = 0;
progressBarText = progressDialogBox.FindViewById<Google.Android.Material.TextView.MaterialTextView>(Resource.Id.progressBarText);
var progressBarText1 = progressDialogBox.FindViewById<Google.Android.Material.TextView.MaterialTextView>(Resource.Id.progressBarText1);
progressBarText1.Text = $"{MainActivity.mContext.GetString(Resource.String.DownloadTiles)}";
progressBarText2 = progressDialogBox.FindViewById<Google.Android.Material.TextView.MaterialTextView>(Resource.Id.progressBarText2);
dialog = alertDialogBuilder.Create();
dialog.Show();
UpdatePB uptask = new UpdatePB(progressBar);
Expand Down Expand Up @@ -534,7 +536,7 @@ public static (string, float, int, int, List<Position>) GPXtoRoute(rteType route

try
{
float mapDistanceKm = 0.0f;
float mapDistance_m = 0.0f;
var p = new PositionHandler();
var p2 = new Position(0, 0, 0);
List<Position> ListLatLon = new List<Position>();
Expand All @@ -556,23 +558,23 @@ public static (string, float, int, int, List<Position>) GPXtoRoute(rteType route
if (j == 0 && p2.Latitude != 0 && p2.Longitude != 0)
{
var p1 = new Position((float)rtePteExt.rpt[j].lat, (float)rtePteExt.rpt[j].lon, 0);
mapDistanceKm += (float)p.CalculateDistance(p1, p2, DistanceType.Kilometers);
mapDistance_m += (float)p.CalculateDistance(p1, p2, DistanceType.Meters);
}

//First leg
if (j == 0)
{
var p1 = new Position((float)route.rtept[i].lat, (float)route.rtept[i].lon, 0);
p2 = new Position((float)rtePteExt.rpt[j].lat, (float)rtePteExt.rpt[j].lon, 0);
mapDistanceKm += (float)p.CalculateDistance(p1, p2, DistanceType.Kilometers);
mapDistance_m += (float)p.CalculateDistance(p1, p2, DistanceType.Meters);
}

//All other legs
if (j >= 1)
{
var p1 = new Position((float)rtePteExt.rpt[j - 1].lat, (float)rtePteExt.rpt[j - 1].lon, 0);
p2 = new Position((float)rtePteExt.rpt[j].lat, (float)rtePteExt.rpt[j].lon,0);
mapDistanceKm += (float)p.CalculateDistance(p1, p2, DistanceType.Kilometers);
mapDistance_m += (float)p.CalculateDistance(p1, p2, DistanceType.Meters);
}
}

Expand All @@ -588,7 +590,7 @@ public static (string, float, int, int, List<Position>) GPXtoRoute(rteType route
{
var p1 = new Position((float)route.rtept[i - 1].lat, (float)route.rtept[i - 1].lon, 0);
p2 = new Position((float)route.rtept[i].lat, (float)route.rtept[i].lon, 0);
mapDistanceKm += (float)p.CalculateDistance(p1, p2, DistanceType.Kilometers);
mapDistance_m += (float)p.CalculateDistance(p1, p2, DistanceType.Meters);
}
}
}
Expand All @@ -605,7 +607,7 @@ public static (string, float, int, int, List<Position>) GPXtoRoute(rteType route
descent = a.Item2;
}

return (mapRoute, mapDistanceKm, ascent, descent, ListLatLon);
return (mapRoute, mapDistance_m, ascent, descent, ListLatLon);
}
catch (Exception ex)
{
Expand Down
8 changes: 3 additions & 5 deletions Location/RecordTrack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,21 +109,21 @@ public static async void SaveTrack()
track.Metadata.bounds = track.GetBounds();

//Calculate Distance
float mapDistanceKm = 0.0f;
float mapDistance_m = 0.0f;
var p = new PositionHandler();
for (int j = 1; j < track.Tracks[0].trkseg[0].trkpt.Count; j++)
{
var p1 = new Position((float)track.Tracks[0].trkseg[0].trkpt[j - 1].lat, (float)track.Tracks[0].trkseg[0].trkpt[j - 1].lon, 0);
var p2 = new Position((float)track.Tracks[0].trkseg[0].trkpt[j].lat, (float)track.Tracks[0].trkseg[0].trkpt[j].lon, 0);
mapDistanceKm += (float)p.CalculateDistance(p1, p2, DistanceType.Kilometers);
mapDistance_m += (float)p.CalculateDistance(p1, p2, DistanceType.Meters);
}

//Add to routetrack DB
GPXDataRouteTrack r = new GPXDataRouteTrack
{
GPXType = GPXType.Track,
Name = name,
Distance = mapDistanceKm,
Distance = mapDistance_m / 1000,
Ascent = 0, /**///Fix this
Descent = 0, /**///Fix this
Description = "Track generated by hajk",
Expand Down Expand Up @@ -180,8 +180,6 @@ private static void CheckOffRouteEvent(object state)
//Calculate Distance
var p = new PositionHandler();
var pos_a = new Position((float)route.rtept[i].lat, (float)route.rtept[i].lon, 0);

//float mapDistanceMeters = (float)(p.CalculateDistance(pos_a, pos_c, DistanceType.Kilometers)*1000);
double mapDistanceMeters = CrossTrackCalculations.CalculateDistance(pos_a, pos_c);

Log.Debug($"Location is: " + mapDistanceMeters.ToString("N2") + " meters from index:" + i.ToString());
Expand Down
5 changes: 3 additions & 2 deletions OfflineMaps/DownloadRasterImageMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using hajk.Models;
using Xamarin.Essentials;
using Mapsui.Layers;
using Android.Views;

namespace hajk
{
Expand Down Expand Up @@ -91,8 +92,8 @@ await range.ParallelForEachAsync(async tile =>

//Update Progressbar
Import.progress = (int)Math.Floor((decimal)done * 100 / totalTilesCount);
Import.progressBarText.Text = $"{MainActivity.mContext.GetString(Resource.String.DownloadTiles)} {zoom}";
Import.progressBarText.Invalidate();
Import.progressBarText2.Text = $"{done} of {totalTilesCount}";
Import.progressBarText2.Invalidate();

for (int i = 0; i < 10; i++)
{
Expand Down
Loading

0 comments on commit 88942a6

Please sign in to comment.