Динамическая последовательность точек GPS вдоль дороги

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

другое примечание... это не требует отображения пользовательского интерфейса...

Я могу использовать Lat/Lon... однако, какие координаты GPS, которые я использую, не так важны... Важно, что функциональность MAP api, которая может перемещаться по дороге и определять, находится ли точка близко к текущей точке или нет,

благодаря

Теги:
gps
map

1 ответ

1
Лучший ответ

Используя API карт Google.. Я понял:

Вот код:

 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>
  • 0
    Точки вдоль шоссе 280 возле Саннивейл, Калифорния
  • 0
    Отличная работа! Извините, я не смог опубликовать код; Я был вне города на несколько дней.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню