2012-02-13 142 views
2

誰能指出我在正確的方向來理解MKMapPoint疑難解答MKMapPoint(S)

我明白,它必須在2D表面上鋪設地球表面。但我不明白每個「點」是如何衡量的?

任何人都可以給我一個代碼示例嗎?

回答

1

沒有什麼過多的工作..只是一個2D地圖上顯示點的結構......這裏是文件說什麼..

MKMapPoint在二維地圖投影的點。

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

字段x沿着x軸的點的位置 貼圖。 y沿着y軸的點的位置 地圖。討論如果將地球儀 的曲面投影到一個平面上,您將得到的是一個經緯線看起來平行的二維版本的 地圖。這些地圖通常是用於一次顯示地球的整個表面的 。一個 MKMapPoint數據結構表示這個二維地圖上的一個點。

地圖點的實際單位被綁定到使用的基礎單位 來繪製MKMapView的內容,但您不應該直接需要 擔心這些單位。您主要使用地圖點來簡化在曲面上使用座標 的值很複雜的計算。通過轉換爲地圖點,您可以在平坦的表面上執行這些計算,這通常比較簡單,然後根據需要轉換回來。您可以使用MKMapPointForCoordinate和 MKCoordinateForMapPoint函數在 座標值和地圖點之間進行映射。

將地圖相關數據保存到文件時,應始終保存 座標值(緯度和經度),而不是保存地圖點。

可用性iOS可用於iOS 4.0和更高版本。在MKGeometry.h中聲明

+0

因此MKMapPoint/Rect x增加西,y增加南? – Barry 2014-09-07 06:28:11

0

如果您想在某個真實世界大小的地圖上繪製某些東西,例如一個刻度,那麼在您的計算中,您將以米爲單位乘以任何給定長度的結果的MKMapPointsPerMeterAtLatitude(...)以獲得MKMapPoint單位的大小。

如果您的地圖僅顯示地球的一小部分,MKMapPointsPerMeterAtLatitude(...)將爲地圖中涉及的所有緯度提供大致相同的恆定值。在這種情況下,您可以簡單地使用地圖中間的緯度作爲此函數的參數。

0

另請閱讀文檔中使用墨卡託投影進行轉換。這裏有一個額外的觀察:北向(y)軸方向似乎與標準墨卡託投影的方向相反(正方向向下而不是向上)。

+2

這將是更好的評論 – Vader 2014-02-06 19:18:30