2012-06-06 5 views
1

개체를 설정 했으므로 MKCircle 오버레이를 추가하고 있습니다. 나는 MKCircleradius 변수가 두이 상대적 할 것을 권장합니다MKMapView의 오버레이 질문

나는 어떤 종류의를 검색 할 수있는 방법을
  1. 지도보기

그래서 위치의 크기의 크기, 크기 값은 CLLocation에서? 지도보기와 상호 작용/확대하면 자동으로 확대됩니다. 다음은 내 목표에 대한 개요입니다.

지도보기에 오버레이를 추가합니다. 오버레이는 CLLocationCLLocationCoordinate2D 변수가 될 것입니다. 그러나 그 오버레이를 해당 위치의 크기에 맞춰서지도를 확대/축소하면 크기가 조정되기를 원합니다. 자동으로해야한다고 확신합니다. 나는 MKCircle의 반경 변수를 정의 할 필요가 있다고 생각하지만 어떻게 설정해야합니까? 자, 내가 어떻게이 일을 할 수 있는지 알고 있니?

감사합니다.

UPDATE :

CLLocation *org = [[CLLocation alloc] initWithLatitude:coordO.latitude longitude:coordO.longitude]; 
CLLocation *des = [[CLLocation alloc] initWithLatitude:coordD.latitude longitude:coordD.longitude]; 

MKCircle *myCircle = [MKCircle circleWithCenterCoordinate:coordO radius:org.horizontalAccuracy]; 
MKCircle *myCircle2 = [MKCircle circleWithCenterCoordinate:coordD radius:des.horizontalAccuracy]; 

if (myCircle2 && myCircle) { 

    NSLog(@"destination and origin both valid"); 
} 

[mapView addOverlays: [NSArray arrayWithObjects:myCircle, myCircle2, nil]]; 

[myCircle setTitle:@"Placeholder"]; 
[myCircle2 setTitle:@"Placeholder"]; 

[localOverlays addObjectsFromArray: [NSArray arrayWithObjects:myCircle, myCircle2, nil]]; 

이 나는 ​​그것이 (내가 원은 가정 MKCircle) 오버레이를 작동하지 않지만,지도보기로 오버레이를 추가 할 모든 코드가없는/명백한. 나는 HazardMap Apple Sample Code를 살펴 봤고 설치를위한 몇 가지 다른 클래스를 만든 것처럼 보입니다. 이것이 필요한가요, 내 코드가 잘못된 것입니다. 감사!

답변

1

MKCircle의 반경은 미터 단위 거리 측정을 나타내는 CLLocationDistance입니다. CLLocation의 수평 정확도는 미터 단위의 좌표 값의 정확도를 나타내는 CLLocationAccuracy입니다.

그래서, 당신이 할 필요가있다 :

MKCircle *circle = [MKCircle circleWithCenterCoordinate:location.coordinate 
               radius:location.horizontalAccuracy]; 

UPDATE : 수동으로 위치를 생성하기 때문에 자신의 수평 정확도가 제로 있도록 오버레이들는 표시되지 않습니다. -[CLLocation initWithCoordinate:altitude:horizontalAccuracy:verticalAccuracy:timestamp:] 메서드를 사용하여 사용자 정의 수평 정확도로 CLLocation을 만들 수 있습니다. 또는 원의 최소 반경을 정의 할 수 있습니다 (예 : 10 미터).

CLLocationDistance radius = MAX(10, location.horizontalAccuracy); 
+0

감사합니다. 니콜라스 (Nicholas)에게 감사드립니다. 내 업데이트 된 대답에 표시된 MKCircle 오버레이를 추가하는 몇 가지 코드가 있습니다. 당신이 대답한다면 고맙겠습니다. – MCKapur

+0

내 질문을 업데이트했습니다! – MCKapur

+0

내 대답이 업데이트되었습니다. –