>

내지도에 주석을 추가하려고합니다. 어떻게해야합니까?

내 코드 :

- (void)abreMapa:(NSString *)endereco {
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", 
                       [endereco stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];
NSArray *listItems = [locationString componentsSeparatedByString:@","];
double latitude = 0.0;
double longitude = 0.0;
if([listItems count] >= 4 && [[listItems objectAtIndex:0] isEqualToString:@"200"]) {
    latitude = [[listItems objectAtIndex:2] doubleValue];
    longitude = [[listItems objectAtIndex:3] doubleValue];
}
else {
    //Show error
}
CLLocationCoordinate2D coordinate;
coordinate.latitude = latitude;
coordinate.longitude = longitude;
myMap.region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000);
[self.view addSubview:mapa];

 }

감사합니다!

  • 답변 # 1

    MKAnnotation은 프로토콜이므로 프로토콜을 구현하는 고유 한 클래스를 정의해야합니다. 예를 들어

    @interface SPAnnotation : NSObject <MKAnnotation> {
        CLLocationCoordinate2D coordinate;
    }
    @property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
    - (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate;
    
    

    위도, 경도를 매핑하려는 위치의 경우 :

    SPAnnotation *annotation = [[Annotation alloc] initWithCoordinate:CLLocationCoordinate2DMake(latitude, longitude)];
    [myMap addAnnotation:annotation];
    
    

  • 답변 # 2

    MKAnnotation 프로토콜을 채택하는 주석 클래스도 코딩해야합니다. 예 :

    @interface MyMapAnnotation : NSObject <MKAnnotation> {
    ...
    }
    
    

  • 답변 # 3

    이것을 시도하십시오

    Pin *selected = [[Pin alloc] init];
    for(i=0; i<[[newxml dataarray] count]; i++)
    {
        gapi = [newxml.dataarray objectAtIndex:i]; 
        MKCoordinateRegion region ;  // = { {0.0, 0.0 }, { 0.0, 0.0 } }; 
        region.center. latitude = [gapi.lat floatValue];
        region.center. longitude = [gapi.lng floatValue];
        region.span.longitudeDelta = 0.05f;
        region.span.latitudeDelta = 0.05f;
        [self.mapview setRegion:region animated:YES]; 
        Pin* myAnnotation1=[[Pin alloc] init];
        myAnnotation1.coordinate=region.center;;
        myAnnotation1.title=gapi.name;
        myAnnotation1.itemIndex = i;
        myAnnotation1.subtitle=gapi.address;
        [self.mapview addAnnotation:myAnnotation1];
        if (j == i)
        {  
                selected = myAnnotation1;
        }
        if(k==123)
        {
            [self.mapview selectAnnotation:selected animated:NO]; 
        }
    
    

    }

  • 이전 javascript - Vuejs는 그래프에 전달할 새 배열을 만드는 방법
  • 다음 c# - ie10 - "현재 보안 설정으로이 파일을 다운로드 할 수 없습니다"팝업이 나타나지 않도록하는 방법은 무엇입니까?