2012-02-13 7 views
2

MKMapPoint을 이해하는 데 도움이되는 사람이 올바른 방향으로 나를 가리킬 수 있습니까?문제 이해 MKMapPoint (s)

지구의 표면을 2D 표면에 놓는 것과 관련이 있다는 것을 알고 있습니다. 그러나 각 "포인트"가 어떻게 측정되는지 이해할 수 없습니까?

누구든지 코드 예제를 제공 할 수 있습니까? 거기에 많은 아무것도 .. 2 차원지도에 지점을 표시하는 단순한 구조가 여기에 ...없는 문서의 말씀입니다

답변

1

..

MKMapPoint 두 차원지도 투영에 점.

typedef struct { double x; double y; } MKMapPoint;

필드 x 맵의 x 축을 따르는 점의 위치입니다. y y 축을 따라 점의 위치가 인지도. 토의 글로브의 곡면을 평평한면에 투영하면, 경도 선이 평행하게 나타나는 지도의 2 차원 버전이됩니다. 그런지도는 종종 세계의 모든 표면을 한꺼번에 보여주기 위해 사용되는 입니다. MKMapPoint 데이터 구조는이 2 차원 맵의 한 점을 나타냅니다.

맵 포인트의 실제 단위는 으로 사용 된 기본 단위와 연결되어 MKMapView의 내용을 그리지 만, 유닛을 직접 염려 할 필요는 없습니다. 곡면에 좌표 값을 사용하여 복잡한 계산을 단순화하기 위해 주로지도 점을 에 사용합니다. 맵 포인트로 변환하면 평평한 표면에서 계산을 수행 할 수 있습니다. 평평한 표면에서 계산을 수행하는 경우 일반적으로 이 훨씬 많으며 필요한 경우 다시 변환 할 수 있습니다. MKMapPointForCoordinate 및 MKCoordinateForMapPoint 함수를 사용하여 좌표 값과 맵 지점간에 매핑 할 수 있습니다.

지도 관련 데이터를 파일로 저장할 때 좌표 값 (위도 및 경도)을 저장하고지도 지점을 저장하지 않아야합니다.

가용성 iOS 4.0 이상에서 사용할 수 있습니다. 당신은 예를 들어, 특정 실제 크기가지도 위에 뭔가를 그리려면 MKGeometry.h

+0

그래서 MKMapPoint/Rect x는 서쪽으로 증가하고 y는 남쪽으로 증가합니까? – Barry

0

선언, 규모는 다음 계산에 당신은 결과 미터에 주어진 길이를 곱 것 MKMapPointsPerMeterAtLatitude(...)의 크기를 사용하여 MKMapPoint 단위로 크기를 가져옵니다.

지도가 지구의 작은 부분 만 표시하는 경우 MKMapPointsPerMeterAtLatitude(...)은지도에 포함 된 모든 위도에 대해 대략 동일한 상수 값을 제공합니다. 이 경우지도의 중간에있는 위도를이 함수의 인수로 간단히 사용할 수 있습니다.

0

또한 변환에 Mercator 투영법이 사용되었음을 설명서에서 읽습니다. 추가 관찰이 있습니다 : 북 방향 (y) 축 방향은 표준 mercator 투영과 반대 방향입니다 (양의 방향은 위로가 아니라 아래로).

+2

이것은 주석으로 더 좋았을 것입니다. – Vader