2012-02-02 3 views
0

아이폰의 위치 정확도를 향상시키기위한 몇 가지 코딩을 시도하고 있습니다. iPhone 하드웨어에서 필요한 모든 정보 (예 : 위도, 경도, deviceMotion, 자이로 ..)를 얻었으므로 mapView에서 더 정확한 계산 결과를 표시해야합니다. 하지만 mapView의 userLocation 속성은 읽기 전용이므로 setCoordinate 메서드를 사용하더라도 변경할 수 없다는 것을 의미하므로 슬픔 = [ 다른 방법으로 처리 할 수있는 솔루션이 있습니까? 지도보기에서 그 위치를 표시 하시겠습니까? 감사합니다.mapView의 userLocation을 내가 만든 MKUserLocation으로 어떻게 설정할 수 있습니까?

답변

0

CLLocationCoordinate2DMake를 사용하여 CLLocationCoordinate2D를 만들고 위도를 경도로 설정하면됩니다. 그런 다음 새 MKAnotation (예 : yourPositionAnotation)으로 위치를 만들고 CLLocationCoordinate2D에서 위치를 좌표로 설정하십시오. 그렇다면 다음과 같이하십시오.

// create coordinate 
CLLocationCoordinate2D yourPos = CLLocationCoordinate2DMake(lat, lon); 
// create MKAnnotation 
MKAnnotationView *yourAnnotation = [[MKAnnotationView alloc] init]; 

yourAnnotation.coordinate = yourPos; 

// remove all old annotations 
[self.myMapView removeAnnotations:self.myMapView.annotations] 
// add your annotation 
[self.myMapView addAnnotation:yourAnnotation]; 

마지막에 릴리스 특수 효과를 잊지 마십시오.

+1

당신의 생각은 대단합니다! 나는 Core Graphic을 사용하여지도상의 한 점을 그리는 것도 효과가 있지만, 당신보다 훨씬 많은 코딩을 수행한다고 생각합니다. –