2012-05-15 48 views
2

我正在爲iPhone做一個高爾夫球GPS應用。爲此,我需要在iPhone設備上顯示高爾夫球場地圖。我在互聯網上搜索了這個。有很多方法和服務提供商可以進行高爾夫球場測繪(航空影像)。做iPhone中的高爾夫球場映射

供您參考:

http://sites.google.com/site/mapmakerpedia/maps-101/how-to-map-a-golf-course

有人說,我們可以使用谷歌的圖像爲。但我的問題是

1. How we could bring that golf course map data into iPhone app? 
2. Is there any API or method available for that? 
3. In which format, that golf course map data file will be? 

回答

1

首先,您需要爲您的高爾夫球場收集經度和緯度點。如何做到這一點取決於你,而不是真正的iPhone問題。根據你有多少點來定義球道和果嶺(可能有危險?),你可能想要將所有點存儲在一個XML文件中,這些文件將被捆綁爲應用程序中的一個資源。或者,如果內容需要定期更新,也許將其存儲在網絡服務器上。或兩者。但是,該文件可能是這樣的:

<golf-courses> 
    <golf-course> 
    <name>Pebble Peach</name> 
    <par>72</par> 
    <fee>$200</fee> 
    <holes> 
     <hole> 
      <number>1</number> 
      <par>4</par> 
      <fairway> 
       <points> 
       <point><lat>-122.1231231</lat><lon>36.0131231</lon></point> 
       <point><lat>-122.1231232</lat><lon>36.0131235</lon></point> 
       <point><lat>-122.1231237</lat><lon>36.0131235</lon></point> 
        ... 
       </points> 
      </fairway> 
      <green> 
       ... 
      </green> 
     </hole> 
    </holes> 
    </golf-course> 
... 
</golf-courses> 

或者,您可以選擇使用像KML的格式,這是精心設計的地圖疊加。如果您能夠獲取已存儲在KML中的現有高爾夫球場數據,那將會特別有用。但是,從你的問題來看,這聽起來像你試圖從一組航拍地圖中自己推導出數據。

然後,您需要在啓動時將XML數據(或KML或plist數據或Core Data或存儲它)讀取到您的應用程序中。

然後,您可能會有一個遍歷數據的UIViewController,並將該過程繪製爲多邊形。爲此,您的視圖控制器將使用MapKit框架,並且您可能使用MKPolygon將該課程繪製爲一堆綠色陰影多邊形。您可以在最簡單的MKPolygon示例上看到other answer I posted

+0

是的,我有你的想法。非常感謝。你說我們應該在mapview中映射那個位置座標。但我看過一些應用程序,他們只顯示高爾夫球場地圖,而不是完整的谷歌地圖。我們如何做到這一點?如果我們這樣做,我們如何在不使用谷歌地圖的情況下找到該課程地圖上兩個地點之間的距離?因爲在Google地圖中,我們可以在觸摸時獲取位置座標。那我們該怎麼實現呢?提前致謝。 –

+0

我想這取決於你想要做什麼。即使您的應用程序不打算顯示高爾夫球場邊界之外的任何區域,您仍可能需要使用MapKit,因爲它爲您提供了許多有用的功能(如MKOverlays)。如果你根本不使用MapKit,那麼你將不得不重現所有你自己。您仍然可以將課程功能作爲覆蓋圖繪製在MKMapView上,並限制視圖遠離課程。您可以爲整個課程定義一個MKOverlay,然後[使用此解決方案](http://stackoverflow.com/questions/4119117/restrict-mkmapview-scrolling)。 – Nate

+0

但是,如果要顯示課程的非常詳細的高程輪廓,這將創建數千個多邊形,則可能無法使用MapKit(性能)。然後,你應該看看OpenGL ES,這將是更多的工作。但是,你的問題並沒有說你需要這個,所以我假設你可以通過每個洞只有幾個重疊來解決這個問題。如果我的假設不正確,請在您的問題中附加更多描述。謝謝。 – Nate