C# 监控实时位置是否遵循C中的路线#

C# 监控实时位置是否遵循C中的路线#,c#,visual-studio-2010,geolocation,gps,gmap.net,C#,Visual Studio 2010,Geolocation,Gps,Gmap.net,我正在开发一个应用程序,通过从C#中的Geolocation名称空间订阅设备的PositionChanged事件来显示起点和终点之间的路线以及设备的实时位置 我想在实时位置上实现一个“监控”功能,该功能可以检测设备的原始路线的哪个部分(城市、公路等)。我有一个与这些位置对应的路线沿线所有不同GPS位置的列表,我的监控功能如下 //Getting the current GPS position on GeoCoordinte currentGpsForCompare //pointHighway

我正在开发一个应用程序,通过从C#中的Geolocation名称空间订阅设备的PositionChanged事件来显示起点和终点之间的路线以及设备的实时位置

我想在实时位置上实现一个“监控”功能,该功能可以检测设备的原始路线的哪个部分(城市、公路等)。我有一个与这些位置对应的路线沿线所有不同GPS位置的列表,我的监控功能如下

//Getting the current GPS position on GeoCoordinte currentGpsForCompare
//pointHighway is a GeoCoordinte List containing all the points along the route that is a highway

 double distanceCompLoop = int.MaxValue;

 if (pointHighway.Count() > 0)
        {
            for (int k = 0; k < pointHighway.Count(); k++)
            {
                double distanceCompare = currentGpsForCompare.GetDistanceTo(pointHighway.ElementAt(k));
                if (distanceCompare < distanceCompLoop)
                {
                    distanceCompLoop = distanceCompare;
                    actionTB.Text = "HIGHWAY";
                    actionTB.ForeColor = System.Drawing.Color.White;
                    actionTB.BackColor = System.Drawing.Color.Green;

                }
            }
        }
.// and the same for city, hilly drive, country roads etcetera
.
.
}
//在GeoCoordine currentGpsForCompare上获取当前GPS位置
//pointHighway是一个地理坐标列表,包含公路沿线的所有点
双距离comploop=int.MaxValue;
if(pointHighway.Count()>0)
{
对于(int k=0;k

我觉得用这种方式实现这个特性效率很低,而且需要花费更多的时间,因为它必须一直执行循环。这也意味着我必须在GPS传感器上有一个更高的超时,以便在接收到新的GPS位置之前,我已经完成了所有必要的监控。有没有更优化的方法呢?

你的工作不是要找出答案吗?你可以在实施你的建议时发布一些真正的问题,但我们无法完成你的工作:这需要时间和金钱。你好,我看到我之前的帖子传达了错误的意图。。我的问题现在更新了一点。感谢您的帮助!