2009-08-26 3 views

답변

1

나는 이것을 수행하기 위해이 사람 블로그 게시물의 아이디어를 사용했습니다. 기본적으로지도 위에 투명한 뷰를 추가하는 작업이 포함됩니다. 그런 다음지도에서보기의 지점으로 위치를 변환 할 수 있습니다. 사이트가 도움이되지 않는 경우 알려 주시면 코드에서 예제를 찾아보실 수 있습니다.

http://spitzkoff.com/craig/?p=65

6

나는 당신의 질문을 읽고 있어요 방법은 프로그래밍지도에 다각형을 그리 하려는 것입니다. 이를 위해 Apple docs on MapKit.

MapKit지도 (MKMapView)에 투명 뷰를 추가 할 필요가 없습니다. 오버레이 개체 (이 경우 MKPolygon)를 만듭니다. (다음 예에서, 변수 map 당신이 코드를 넣어 뷰 컨트롤러가 소유 한 MKMapView 인스턴스가됩니다) :

다음
CLLocationCoordinate2D points[4]; 

points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116); 
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066); 
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981); 
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267); 

MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4]; 
poly.title = @"Colorado"; 

[map addOverlay:poly]; 

, 당신은 모양을 사용자 정의하려는 경우 (색상, 뇌졸중, 항상 실제로지도를 할당 기억, 물론

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay 
{ 
    if ([overlay isKindOfClass:[MKPolygon class]]) 
    { 
     MKPolygonView* aView = [[[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay] autorelease]; 

     aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2]; 
     aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7]; 
     aView.lineWidth = 3; 

     return aView; 
    } 

    return nil; 
} 

: 등) 오버레이, 당신은이 MKMapView 객체를 소유하고 당신이 가지고있는 뷰 컨트롤러에서 MKMapViewDelegate 프로토콜을 구현하고 mapView:viewForOverlay의 구현을 제공 인스턴스의 대리자 (예 :보기 컨트롤러 (MKMapViewDelegate)), 인터페이스 빌더 또는 코드 (예 : viewDidLoad).

+0

물론 원의 경우 MKPolygon 대신 MKCircle을 사용합니다. – Nate

관련 문제