2010-08-18 3 views
0

아래 그림과 같은 위치의지도가 있습니다.정렬/주문 위치

alt text

이 위치는 위도/경도 및 직교 (X, Y, Z) 좌표 모두 함께 C# 1 오브젝트 사전에 유지된다. 이 지역은 5 개 팀으로 구성되며, 그 중 첫 번째 팀은이 지역 서남쪽에 있습니다. 내가 필요로하는 것은 가장 남쪽의 서쪽 지점이 첫 번째가되도록 포인트를 주문할 수있는 것입니다. 이것은 Enniskillen 근처의 녹색 '3'마커가 될 것입니다. 나는 다른 접근법을 시도해 왔지만 원하는 결과를 얻지 못했습니다.

누구나 접근 할 수있는 접근법을 설명 할 수 있습니까? 당신을 가정 마크

+1

어떤 접근 방식을 시도 했습니까? – dtb

답변

1

이지도의 사우스 웨스트 코너의 위도/경도, 내가 Aviation Formulary을 사용하여 해당 코너에서 각 지점의 거리를 계산합니다 알고있다. 그런 다음 계산 된 거리를 기준으로 정렬해야합니다.

+0

나는이 공식을 이미 직선 거리를 계산할 때 사용하고 있었지만, 시도한 모든 것 중에서 남서쪽 구석에있는 점을 선택하여 거기에서 정렬하지 못했습니다! – markpirvine

0

"가장 남쪽에 서쪽"과 비슷한 방식으로 "대부분의 남쪽 서쪽"을 정의하려는 경우 (x,y)x+y으로 주문할 수 있습니다. 이 점은 SW 코너에서 NW-SE 라인을지도를 가로 질러 움직이는 것으로 생각할 수 있습니다. 이는 y에 정렬하여 "가장 남쪽에"정의하는 것과 같습니다. 남쪽 가장자리에서 동서쪽 선을 이동하고 각 지점에 도달하는 순서를 알려줍니다.

+0

안녕하세요, 저는 당신이 말한 것을 실제로 따르고 있지 않습니다. x + y를 정렬하면 Enniskillen 근처에 녹색 '3'표시가됩니다. 그러나 이것을 제거하면 Enniskillen 근처에 녹색 '4'표시가 나타납니다. 실제로지도 상단의 Coleraine 근처에 녹색 '1'표시가 나타납니다. 약간의 의사 코드를 제공 할 수 있습니까? – markpirvine