2014-05-16 19 views
1

나는 GPS 점을 색인과 함께 저장합니다.이 점에서이 점을 참조하면 GPS [0], GPS [1]와 같이 보입니다. GPS는 GPS 위치 및 [n]은 GPS 위치 배열의 색인입니다. - 항상 첫번째 인덱스동적으로 GPS가 도로를 따라 점을 찍습니다.

GPS [에서 도로

GPS [0] = 개시 : 여기

난 (어레이는 11 개 개의 위치를 ​​포함이 예에서) 위치를 기억 될 예정 어떻게 - 9] 점에서 캡처되지 [1 모든 : 도로 10] = 끝 - - 항상 마지막 인덱스

GPS에서 [1 9] = 길의 시작과 끝

주 사이에 점 예를 들어 GPS [1]와 GPS [2]가 월요일에 캡처되고 GPS [ 3]은 수요일에 캡처 될 수 있고 GPS [4 - 9]는 지금부터 한 달에 캡처 될 수 있습니다. 그들이 잡히지 않으면 ... 무시됩니다.

GPS 위치가 "순서가 맞지 않음"으로 캡처 될 수 있습니다 ... "순서가 틀리다"란 뜻은 도로를 따라 점이 찍히지 만 반드시 그 점을 발견 할 때와 같은 순서는 아닙니다 때 처음부터 끝까지 길을 따라 여행했다.

나는 C# 예제 코드를 찾고 있어요

//--- 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는'매핑 API가있는 모든 소프트웨어/서비스) 거래 : 내 알고리즘 질문에 날 리드

지도 API를 기능

다른 메모와 함께 ...이 모든 사용자 인터페이스 디스플레이를 필요로하지 않습니다 ...

나는 위도/경도가 ... 그러나, 어떤 공동 GPS를 사용할 수 있습니다 내가 사용하는 좌표는 그다지 중요하지 않습니다 ... 중요한 것은 도로를 여행 할 수 있고 현재 지점과 가까운 지점인지 결정할 수있는 MAP API 기능입니다. 구글지도 API를 사용하여

감사

+0

'GPS'유형은 무엇입니까? Vector2 배열입니까? Vector3 배열? 'octopus' 타입의 배열? 어떤 "포인트"입니까? 위도 경도? (X, Y)? 원산지까지 거리에 따라 GPS 배열을 정렬 할 수 있습니다. 거리 계산에 대한이 질문을 참조하십시오 : http://stackoverflow.com/questions/6366408/calculating-distance-between-two-latitude-and-longitude-geocoordinates – arao6

+0

수정 된 질문보기 – user3174075

+0

Google지도 API를 확인하십시오 : https : // developers.google.com/maps/documentation/directions/ 'GPS'배열의 점에 대해 '중간 지점'을 설정할 수 있습니다. 반환 된 폴리선을 사용하여 점을 반복하면서 모든 반복에서 X 거리를 이동 한 다음 예를 들어'GeoCoordinate.GetDistanceTo()'<50과 같은지 확인할 수 있습니다. 50보다 작은 경우 해당 점을'sequencedIndicies'에 추가 할 수 있습니다. 해당 배열을 새 경유지로 사용하는 경우 Google은 올바른 순서의 정렬 된 배열을 반환합니다. – arao6

답변

1

은 .. 나는 그것을 알아 냈 : 여기

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

포인트는 서니 베일 근처의 hwy 280에있다. – user3174075

+0

위대한 일! 죄송합니다. 코드를 게시 할 수 없습니다. 나는 며칠 동안 마을을 벗어났다. – arao6

+0

감사합니다 ... 시간이 좀 걸렸지 만 마침내 알아 냈습니다. – user3174075