From 24f6a4943c0755765d045c78088642a8d17693c2 Mon Sep 17 00:00:00 2001 From: wienkop <uwe.wienkop@th-nuernberg.de> Date: Mon, 20 Mar 2017 12:59:04 +0100 Subject: [PATCH] =?UTF-8?q?Berechnung=20der=20H=C3=B6chstgeschwindigkeit?= =?UTF-8?q?=20hinzugef=C3=BCgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01GPS-Auswertung/CodeMap1.dgml | 61 +++++++++++++++++----------------- 01GPS-Auswertung/Program.cs | 39 +++++++++++++++++++++- 2 files changed, 68 insertions(+), 32 deletions(-) diff --git a/01GPS-Auswertung/CodeMap1.dgml b/01GPS-Auswertung/CodeMap1.dgml index 52edf47..76a4476 100644 --- a/01GPS-Auswertung/CodeMap1.dgml +++ b/01GPS-Auswertung/CodeMap1.dgml @@ -1,42 +1,42 @@ <?xml version="1.0" encoding="utf-8"?> -<DirectedGraph DataVirtualized="True" Layout="Sugiyama" ZoomLevel="2" xmlns="http://schemas.microsoft.com/vs/2009/dgml"> +<DirectedGraph DataVirtualized="True" Layout="Sugiyama" ZoomLevel="-1" xmlns="http://schemas.microsoft.com/vs/2009/dgml"> <Nodes> - <Node Id="(@1 @3 @7 Member=dist)" Category="CodeSchema_Field" Bounds="-181.128119569265,112.06905426501,56.1333333333333,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="dist" /> - <Node Id="(@1 Namespace=::)" Category="CodeSchema_Namespace" Bounds="310.913943497402,-366.71493259879,62.1999999999999,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="::" /> - <Node Id="@11" Category="CodeSchema_Method" Bounds="76.1602137640681,-201.71493259879,103.676666666667,25.96" CodeSchemaProperty_IsConstructor="True" CodeSchemaProperty_IsPublic="True" CodeSchemaProperty_IsSpecialName="True" DelayedCrossGroupLinksState="Fetched" Label="GpsManager" /> - <Node Id="@12" Category="CodeSchema_Method" Bounds="-3.40795936259826,0.186936571809682,86.71,25.96" CodeSchemaProperty_IsConstructor="True" CodeSchemaProperty_IsPublic="True" CodeSchemaProperty_IsSpecialName="True" DelayedCrossGroupLinksState="Fetched" Label="GpsPunkt" /> - <Node Id="@13" Category="CodeSchema_Method" Bounds="113.621504637402,0.186936571809682,56.48,25.96" CodeSchemaProperty_IsPublic="True" CodeSchemaProperty_IsStatic="True" DelayedCrossGroupLinksState="Fetched" Label="Dist" /> - <Node Id="@14" Category="CodeSchema_Method" Bounds="0.408707304068432,56.1106744918097,79.0766666666667,25.96" CodeSchemaProperty_IsPrivate="True" CodeSchemaProperty_IsStatic="True" DelayedCrossGroupLinksState="Fetched" Label="LL2UTM" /> - <Node Id="@15" Category="CodeSchema_Field" Bounds="-13.863119569265,-115.75493251779,73.7233333333333,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="anzPos" /> - <Node Id="@16" Category="CodeSchema_Field" Bounds="-79.9913993625982,56.1106744918097,50,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="dt" /> - <Node Id="@17" Category="CodeSchema_Method" Bounds="-100.011452902598,-191.71493264739,126.02,25.96" CodeSchemaProperty_IsPublic="True" DelayedCrossGroupLinksState="Fetched" Label="get_RouteLength" /> - <Node Id="@18" Category="CodeSchema_Field" Bounds="90.3035470974016,-115.75493259879,75.39,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="gpspos" /> - <Node Id="@19" Category="CodeSchema_Field" Bounds="-181.128119569265,56.1090542650097,70.1633333333333,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="hoehe" /> - <Node Id="@2" Category="CodeSchema_Assembly" Bounds="-241.088515969265,-406.71493297139,634.202459466666,604.6879744728" CodeSchemaProperty_StrongName="01GPS-Auswertung, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="2" FilePath="$(3d918937-8f3e-4fcb-acf1-876729256e13.OutputPath)" Group="Expanded" Label="01GPS-Auswertung.exe" UseManualLocation="True" /> - <Node Id="@20" Category="CodeSchema_Property" Bounds="-120.011452902598,-231.71493271219,166.02,85.9600001296" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="1" Group="Expanded" Label="RouteLength" /> - <Node Id="@21" Category="CodeSchema_Field" Bounds="109.885480637402,56.1106744918097,50,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="x" /> - <Node Id="@22" Category="CodeSchema_Field" Bounds="190.953547097402,56.1090542650097,50,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="y" /> - <Node Id="@4" Category="CodeSchema_Namespace" Bounds="-221.088515969265,-366.71493290659,502.002459466667,544.6879743432" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="3" Group="Expanded" Label="_01GPS_Auswertung" /> - <Node Id="@6" Category="CodeSchema_Class" Bounds="-140.011452902598,-271.71493277699,339.848333333333,201.920000324" CodeSchemaProperty_IsInternal="True" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="4" Group="Expanded" Label="GpsManager" /> - <Node Id="@8" Category="CodeSchema_Class" Bounds="-201.128119569265,-39.8509457349903,462.081666666667,197.88" CodeSchemaProperty_IsInternal="True" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="8" Group="Expanded" Label="GpsPunkt" /> - <Node Id="@9" Category="CodeSchema_Class" Bounds="-23.3906195692651,-326.71493284179,106.606666666667,25" CodeSchemaProperty_IsInternal="True" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="Program" /> + <Node Id="(@1 @3 @7 Member=dist)" Category="CodeSchema_Field" Bounds="60,518.84,56.1333333333333,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="dist" /> + <Node Id="(@1 Namespace=::)" Category="CodeSchema_Namespace" Bounds="552.081666666667,40,62.1999999999998,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="::" /> + <Node Id="@11" Category="CodeSchema_Method" Bounds="317.288333333333,205,103.676666666667,25.96" CodeSchemaProperty_IsConstructor="True" CodeSchemaProperty_IsPublic="True" CodeSchemaProperty_IsSpecialName="True" DelayedCrossGroupLinksState="Fetched" Label="GpsManager" /> + <Node Id="@12" Category="CodeSchema_Method" Bounds="237.726666666667,406.92,86.71,25.96" CodeSchemaProperty_IsConstructor="True" CodeSchemaProperty_IsPublic="True" CodeSchemaProperty_IsSpecialName="True" DelayedCrossGroupLinksState="Fetched" Label="GpsPunkt" /> + <Node Id="@13" Category="CodeSchema_Method" Bounds="354.841666666667,406.92,56.48,25.96" CodeSchemaProperty_IsPublic="True" CodeSchemaProperty_IsStatic="True" DelayedCrossGroupLinksState="Fetched" Label="Dist" /> + <Node Id="@14" Category="CodeSchema_Method" Bounds="241.543333333333,462.88,79.0766666666667,25.96" CodeSchemaProperty_IsPrivate="True" CodeSchemaProperty_IsStatic="True" DelayedCrossGroupLinksState="Fetched" Label="LL2UTM" /> + <Node Id="@15" Category="CodeSchema_Field" Bounds="227.265,290.96,73.7233333333333,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="anzPos" /> + <Node Id="@16" Category="CodeSchema_Field" Bounds="161.081666666667,462.88,50,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="dt" /> + <Node Id="@17" Category="CodeSchema_Method" Bounds="141.116666666667,215,126.02,25.96" CodeSchemaProperty_IsPublic="True" DelayedCrossGroupLinksState="Fetched" Label="get_RouteLength" /> + <Node Id="@18" Category="CodeSchema_Field" Bounds="331.431666666667,290.96,75.39,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="gpspos" /> + <Node Id="@19" Category="CodeSchema_Field" Bounds="60,462.88,70.1633333333333,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="hoehe" /> + <Node Id="@2" Category="CodeSchema_Assembly" Bounds="0,0,634.281666666667,604.8" CodeSchemaProperty_StrongName="01GPS-Auswertung, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="2" FilePath="$(3d918937-8f3e-4fcb-acf1-876729256e13.OutputPath)" Group="Expanded" Label="01GPS-Auswertung.exe" /> + <Node Id="@20" Category="CodeSchema_Property" Bounds="121.116666666667,175,166.02,85.96" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="1" Group="Expanded" Label="RouteLength" /> + <Node Id="@21" Category="CodeSchema_Field" Bounds="351.081666666667,462.88,50,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="x" /> + <Node Id="@22" Category="CodeSchema_Field" Bounds="432.081666666667,462.88,50,25.96" CodeSchemaProperty_IsPrivate="True" DelayedCrossGroupLinksState="Fetched" Label="y" /> + <Node Id="@4" Category="CodeSchema_Namespace" Bounds="20,40,502.081666666667,544.8" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="3" Group="Expanded" Label="_01GPS_Auswertung" /> + <Node Id="@6" Category="CodeSchema_Class" Bounds="101.116666666667,135,339.848333333333,201.92" CodeSchemaProperty_IsInternal="True" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="4" Group="Expanded" Label="GpsManager" /> + <Node Id="@8" Category="CodeSchema_Class" Bounds="40,366.92,462.081666666667,197.88" CodeSchemaProperty_IsInternal="True" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="8" Group="Expanded" Label="GpsPunkt" /> + <Node Id="@9" Category="CodeSchema_Class" Bounds="217.7375,80,106.606666666667,25" CodeSchemaProperty_IsInternal="True" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="Program" /> </Nodes> <Links> <Link Source="@11" Target="@12" Category="CodeSchema_Calls" Weight="1" /> - <Link Source="@11" Target="@15" Category="CodeSchema_FieldRead" Bounds="45.8175582885742,-175.754928588867,66.3259429931641,54.2988357543945" Weight="4"> + <Link Source="@11" Target="@15" Category="CodeSchema_FieldRead" Bounds="286.945678710938,230.960006713867,66.325927734375,54.2988433837891" Weight="4"> <Category Ref="CodeSchema_FieldWrite" /> </Link> - <Link Source="@11" Target="@18" Category="CodeSchema_FieldRead" Bounds="127.998550415039,-175.754928588867,0,50.9999923706055" Weight="2"> + <Link Source="@11" Target="@18" Category="CodeSchema_FieldRead" Bounds="369.126678466797,230.960006713867,0,50.9999847412109" Weight="2"> <Category Ref="CodeSchema_FieldWrite" /> </Link> - <Link Source="@12" Target="@14" Category="CodeSchema_Calls" Bounds="39.9535484313965,26.1090545654297,0,21" Weight="1" /> - <Link Source="@12" Target="@16" Category="CodeSchema_FieldWrite" Bounds="-25.2567806243896,26.1090545654297,43.1749458312988,25.432315826416" Weight="1" /> - <Link Source="@12" Target="@19" Category="CodeSchema_FieldWrite" Bounds="-102.398910522461,25.7165927886963,100.513965964317,30.2406520843506" Weight="1" /> - <Link Source="@12" Target="@21" Category="CodeSchema_FieldRead" Bounds="61.9889297485352,26.1090545654297,43.1749420166016,25.432315826416" Weight="1" /> - <Link Source="@12" Target="@22" Category="CodeSchema_FieldRead" Bounds="80.697395324707,26.0837459564209,101.679252624512,32.329381942749" Weight="1" /> - <Link Source="@13" Target="@21" Category="CodeSchema_FieldRead" Bounds="137.694305419922,26.1090545654297,2.63557434082031,21.0695953369141" Weight="2" /> - <Link Source="@13" Target="@22" Category="CodeSchema_FieldRead" Bounds="159.117950439453,26.1090545654297,32.49267578125,24.5714836120605" Weight="2" /> - <Link Source="@13" Target="@8" Category="References" Bounds="141.953552246094,-53.350944519043,12.322265625,53.4999987781048" Weight="2" /> + <Link Source="@12" Target="@14" Category="CodeSchema_Calls" Bounds="281.081665039063,432.880004882813,0,21" Weight="1" /> + <Link Source="@12" Target="@16" Category="CodeSchema_FieldWrite" Bounds="215.871337890625,432.880004882813,43.1749572753906,25.4323120117188" Weight="1" /> + <Link Source="@12" Target="@19" Category="CodeSchema_FieldWrite" Bounds="138.729202270508,432.487548828125,100.513977050781,30.2406311035156" Weight="1" /> + <Link Source="@12" Target="@21" Category="CodeSchema_FieldRead" Bounds="303.117034912109,432.880004882813,43.1749572753906,25.4323120117188" Weight="1" /> + <Link Source="@12" Target="@22" Category="CodeSchema_FieldRead" Bounds="321.825531005859,432.854705810547,101.679229736328,32.3293762207031" Weight="1" /> + <Link Source="@13" Target="@21" Category="CodeSchema_FieldRead" Bounds="378.822418212891,432.880004882813,2.63558959960938,21.069580078125" Weight="2" /> + <Link Source="@13" Target="@22" Category="CodeSchema_FieldRead" Bounds="400.246063232422,432.880004882813,32.49267578125,24.5714721679688" Weight="2" /> + <Link Source="@13" Target="@8" Category="References" Bounds="383.081665039063,353.420013427734,12.322265625,53.5" Weight="2" /> <Link Source="@17" Target="@13" Category="CodeSchema_Calls" Bounds="-30.052476261861,11.7111257202335,43.8525032260457,357.88809737776" Weight="1" /> <Link Source="@17" Target="@15" Category="CodeSchema_FieldRead" Bounds="32.747061330588,304.989077072485,86.3953022362636,64.610146025508" Weight="1" /> <Link Source="@17" Target="@18" Category="CodeSchema_FieldRead" Bounds="18.6042504242308,308.335229422257,15.1685817931712,61.2639936757369" Weight="2" /> @@ -110,7 +110,6 @@ <Property Id="NavigationActionLabel" Label="NavigationActionLabel" Description="NavigationActionLabel" DataType="System.String" /> <Property Id="OutgoingActionLabel" Label="OutgoingActionLabel" Description="OutgoingActionLabel" DataType="System.String" /> <Property Id="TargetType" DataType="System.Type" /> - <Property Id="UseManualLocation" DataType="System.Boolean" /> <Property Id="Value" DataType="System.String" /> <Property Id="ValueLabel" DataType="System.String" /> <Property Id="Visibility" Label="Visibility" Description="Defines whether a node in the graph is visible or not" DataType="System.Windows.Visibility" /> diff --git a/01GPS-Auswertung/Program.cs b/01GPS-Auswertung/Program.cs index f0f437d..99b425c 100644 --- a/01GPS-Auswertung/Program.cs +++ b/01GPS-Auswertung/Program.cs @@ -89,12 +89,29 @@ namespace _01GPS_Auswertung UTMNorthing += 10000000.0; //10000000 meter offset for southern hemisphere } + + /// <summary> + /// Berechnet den Abstand zwischen zwei GpsPunkten in Metern + /// </summary> + /// <param name="p1">1. GPS-Punkt</param> + /// <param name="p2">2. GPS-Punkt</param> + /// <returns>Der Abstand in Meter</returns> public static double GpsDistance(GpsPunkt p1, GpsPunkt p2) { double dx = p1.x - p2.x; double dy = p1.y - p2.y; return Math.Sqrt(dx * dx + dy * dy); } + /// <summary> + /// Berechnet die zwischen zwei Punkten gefahrene Geschwindigkeit + /// </summary> + /// <param name="p1">1. GPS-Punkt</param> + /// <param name="p2">2. GPS-Punkt</param> + /// <returns>Geschwindigkeit in km/h</returns> + public static double GpsVelocity(GpsPunkt p1, GpsPunkt p2) + { + return GpsDistance(p1, p2) / (p2.dt - p1.dt).TotalSeconds * 3.6; + } public double GpsDistance2(GpsPunkt p2) { double dx = x - p2.x; @@ -111,11 +128,29 @@ namespace _01GPS_Auswertung public double RouteLength { get { - return GpsPunkt.GpsDistance(gpspos[0], gpspos[anzPos - 1]); + //return GpsPunkt.GpsDistance(gpspos[0], gpspos[anzPos - 1]); //return gpspos[0].GpsDistance(gpspos[anzPos - 1]); + double len = 0; + for (int i = 1; i < anzPos; i++) + len+= GpsPunkt.GpsDistance(gpspos[i-1], gpspos[i]); + return len; } } + public double MaxVelocity + { + get + { + double maxVel = -1; + for (int i = 1; i < anzPos; i++) + { + double vel = GpsPunkt.GpsVelocity(gpspos[i - 1], gpspos[i]); + if (vel > maxVel) + maxVel = vel; + } + return maxVel; + } + } public GpsManager(string name) { StreamReader sr = new StreamReader(name); @@ -140,6 +175,8 @@ namespace _01GPS_Auswertung { GpsManager NReg = new GpsManager(@"..\..\GPS_Daten.txt"); Console.WriteLine(NReg.RouteLength); + Console.WriteLine(NReg.MaxVelocity); + } } } -- GitLab