1

我将 GPS 点与索引一起存储——所以要在这个问题中引用这些点,它看起来像这样 GPS[0]、GPS[1],其中 GPS 是 GPS 位置,[n] 是GPS 位置数组。

以下是我将如何存储位置(在此示例中,数组仅包含 11 个位置):

GPS[0] = 道路起点 - 始终位于第一个索引处

GPS[10] = 路尽头 - 总是在最后一个索引处

GPS[ 1 - 9 ] = 道路起点和终点之间的点

注意:并非所有 [1 - 9] 点都被同时捕获,例如 GPS[1] 和 GPS[2] 可能在星期一捕获,GPS[3] 可能在星期三捕获,GPS[4 - 9]一个月后可能会被捕获。如果他们没有被捕获......他们会被忽略。

此外,GPS 位置可能被“乱序”捕获......我所说的“乱序”是指沿道路捕获点,但不一定按照您在旅行时遇到的相同顺序从头到尾的路上。

这导致我在算法中遇到问题:

(注意“MAP API”是任何具有映射 API 的软件/服务)

//--- is there a MAP API that does this?
Set CurrentPoint = MAP.api.FindPoint( GPSArray[0] )

//--- is there a MAP API that does this?
Set EndPoint = MAP.api.FindPoint( GPSArray[10] )

List<int> sequencedIndicies = new List<int>;   

while ( CurrentPoint != EndPoint )
{

    // Is there a MAP API that will travel down the road from the current point
    // X feet and set the current point to that location ?

    CurrentPoint = MAP.api.TravelThisManyFeetDownRoad( CurrentPoint, 100 )

    // loop through my points and check them against the current road point
    for( int i= 1; i<10; i++ )
    {
        // Is there a MAP API function will take a point, a "current" point 
        // and tell if the point is within X feet of the current point
        //
        // ( alternatively I could use Haversine function if map api does not exist ) 
        //
        if( MAP.api.IsNear( CurrentPoint, GPSArray[i],  50 ) )  <--- need this too
        {
            sequencedIndicies.Add( i );
            break;
        }
    }
}

// move the GPS points to the new sequenced order
ReindexGPSArray( GPSArray, sequenceIndicies )

我正在寻找处理 MAP api 功能的 C# 示例代码

另一个注意事项...这不需要任何用户界面显示...

我可以使用纬度/经度...但是,我使用的 GPS 坐标并不那么重要...重要的是 MAP api 功能可以沿着道路行驶并确定一个点是否接近当前点.

谢谢

4

1 回答 1

2

使用谷歌地图 API .. 我想通了:

这是代码:

 http://maps.googleapis.com/maps/api/directions/xml?origin=37.332829,-122.053389&destination=37.320885,-121.995869&waypoints=optimize:true|37.326531,-122.006750|37.334222,-122.037787|37.333721,-122.021086&sensor=false

以下是对路径点进行排序的响应部分:

 <waypoint_index>1</waypoint_index>
 <waypoint_index>2</waypoint_index>
 <waypoint_index>0</waypoint_index>
于 2014-05-21T19:24:10.113 回答