0
xml 파일에서 위도와 경도를 읽었으므로 주석을 추가하고 싶습니다. 여기에 맵 인포 클래스입니다위도와 경도를 사용하여지도 뷰에 주석을 추가 할 수 없습니다.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (newLocation != nil) {
self.myLocation = newLocation;
}
mapView.region = MKCoordinateRegionMake(self.myLocation.coordinate, MKCoordinateSpanMake(0.005f, 0.005f));
mapView.zoomEnabled = YES;
//mapView.showsUserLocation = YES;
mapView.centerCoordinate = self.myLocation.coordinate;
MKPointAnnotation *userLocation = [[MKPointAnnotation alloc] init];
userLocation.coordinate = myLocation.coordinate;
userLocation.title = @"my position";
userLocation.subtitle = @"my position now";
[mapView removeAnnotations:mapView.annotations];
[mapView addAnnotation:userLocation];
[userLocation release];
if ([self.positionArray count] < 5) {
NSString *dataPath = [[NSBundle mainBundle] pathForResource:@"position" ofType:@"xml"];
NSData *positionData = [[NSData alloc] initWithContentsOfFile:dataPath];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:positionData];
parser.delegate = self;
[parser parse];
}
if (self.myLocation != nil) {
[self.manager stopUpdatingLocation];
}
}
: 그리고 여기에 다음
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
@interface MapInfo : NSObject<MKAnnotation>
{
NSString *subtitle;
NSString *title;
CLLocationCoordinate2D coordinate;
}
@property (nonatomic, copy) NSString *subtitle;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
- (id)initWithCoordinate:(CLLocationCoordinate2D)location;
- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;
@end
그러나 사용자 위치를 제외하고, 그들 중 누구도 mapview.annotations의 added.The 수 없었다 항상 empty.Here 내 코드입니다 대리자 방법
입니다- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
static NSString *AnnotationIdentifier = @"AnnotationIdentifer";
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier];
if ([annotation isKindOfClass:[MapInfo class]]) {
if (pinView == nil) {
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];
}
pinView.pinColor = MKPinAnnotationColorRed;
pinView.canShowCallout = YES;
pinView.animatesDrop = NO;
}else if([annotation isKindOfClass:[MKPointAnnotation class]])
{
if (pinView == nil) {
pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier] autorelease];
}
pinView.pinColor = MKPinAnnotationColorPurple;
pinView.canShowCallout = YES;
pinView.animatesDrop = NO;
}
return pinView;
}
정말에만 사용자 위치를 추가 할 수있는 이유, 누군가가 나에게 그것은 며칠 동안 나를 귀찮게했다 !! 도와 줘요 몰라!