2012-05-15 3 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

입니다. 먼저 골프 코스의 위도와 경도를 수집해야합니다. 그것을하는 방법은 당신에게 달려 있습니다. 아이폰 문제는 아닙니다. 보유하고있는 포인트 수에 따라 페어웨이 및 그린 (위험 요소 일 가능성이 있음)을 정의하려면 모든 포인트를 XML 파일에 저장하면됩니다.이 포인트는 응용 프로그램의 리소스로 묶을 수 있습니다. 또는 콘텐츠를 정기적으로 업데이트해야하는 경우 웹 서버에 저장할 수도 있습니다. 아니면 둘다. 당신이 잘지도 오버레이를 위해 설계되었습니다 KML 같은 형식을 사용하도록 선택할 수

<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에 이미 저장된 기존 골프장 데이터를 가져올 수있는 경우 특히 유용합니다. 그러나 귀하의 질문에서, 항공지도 세트에서 데이터를 직접 추측하려고하는 것처럼 들렸습니다.

그런 다음 시작할 때 XML 데이터 (또는 KML 또는 plist 데이터 또는 Core Data)를 읽거나 앱에 저장해야합니다.

그런 다음 UIViewController가 데이터를 반복하고 폴리선으로 그려집니다. 이를 위해보기 컨트롤러는 MapKit 프레임 워크를 사용하며, 코스를 녹색 음영 처리 된 다각형의 무리로 그리려면 MKPolygon을 사용합니다. 가장 단순한 MKPolygon 예제에서이 other answer I posted을 볼 수 있습니다.

+0

네 아이디어가 있습니다. 많은 감사. 우리는 mapview에서 그 위치 좌표를 매핑해야한다고 말하고 있습니다. 그러나 나는 골프장지도 만 보이고 전체 Google지도는 보이지 않는 일부 앱을 보았습니다. 어떻게 할 수 있니? 그렇게하면 Google지도를 사용하지 않고 해당 코스지도에서 두 위치 간의 거리를 어떻게 찾을 수 있습니까? Google지도에서 터치하는 동안 위치 좌표를 얻을 수 있기 때문입니다. 그렇다면 어떻게 구현할 수 있습니까? 미리 감사드립니다. –

+0

나는 당신이하고 싶은 일에 달려 있다고 생각합니다. 앱이 골프 코스 바깥에 어떤 영역도 표시하지 않는다고하더라도 MapKit을 사용하는 것이 좋습니다. MKOverlays와 같은 유용한 기능을 많이 제공하기 때문입니다. MapKit을 전혀 사용하지 않는다면 직접 MapKit을 모두 재현해야합니다. MKMapView에서 코스 피쳐를 오버레이로 표시하고 코스에서 패닝하지 않도록 뷰를 제한 할 수 있습니다. 전체 과정에 대해 하나의 MKOverlay를 정의한 다음 [이 솔루션 사용] (http://stackoverflow.com/questions/4119117/restrict-mkmapview-scrolling)을 참조하십시오. – Nate

+0

그러나 수천 개의 폴리곤을 생성하는 고도의 고도 윤곽을 표시하려면 MapKit (성능)을 사용할 수 없습니다. 그렇다면 OpenGL ES를 살펴 봐야합니다. OpenGL ES는 훨씬 더 많은 작업이 될 것입니다. 그러나 당신의 질문은 당신이 그것을 필요로한다고 말하지 않았으므로, 당신은 구멍 하나 하나만으로 이것을 해결할 수 있다고 가정하고 있습니다. 내 가정이 틀린 경우 질문에 자세한 설명을 추가하십시오. 감사. – Nate