iphone 调用google map

 

使用CLLocationManager类,MKMapView并且实现<MKMapViewDelegate,CLLocationManagerDelegate>

//初始化CLLocationManager,CLLocationManager获得当前地理坐标

locmanager=[[CLLocationManager alloc] init];

 

 [locmanager setDelegate:self];

 //设置精确度

 [locmanager setDesiredAccuracy:kCLLocationAccuracyBest];

 

 [locmanager startUpdatingLocation];

执行完以后,会自动调用代理方法:

 

在代理方法:

 

 

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{

 //初始化矩形大小

 CGRect rect=CGRectMake(0,0,320,460);

 //设置地图大小为矩形大小

 map=[[MKMapView alloc] initWithFrame:rect];

 

 CLLocationCoordinate2D loc=[newLocation coordinate];

 lat=loc.latitude;

 lon=loc.longitude;

 

 //coordinate坐标

 CLLocationCoordinate2D theCoordinate;

 CLLocationCoordinate2D theCenter;

 

 //theCoordinate.latitude=lat;

 //theCoordinate.longitude=lon;

theCoordinate=loc;

[map setDelegate:self];

 //设置地图显示的类型,有卫星地图,道路,等

[map setMapType:MKMapTypeStandard];

 //[map setMapType:MKMapTypeSatellite];

 //区域坐标Region(区域,地域)

 

 MKCoordinateRegion theRegin;

 //theCenter.latitude=lat;

 //theCenter.longitude=lon;

theCenter=loc;

theRegin.center=theCenter;

 

 //坐标间距(span:间隔,间距)

 MKCoordinateSpan  theSpan;

 

theSpan.latitudeDelta=0.1;

theSpan.longitudeDelta=0.1;

 //设置地图显示的区域,

theRegin.span=theSpan;

 //[map setRegion:theRegin];

[map regionThatFits:theRegin];

map.showsUserLocation=YES;

[self.view addSubview:map];

 

}

 

 

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{

 NSLog(@"-------viewForAnnotation-------");

 //此类可以显示针一样的图标

 MKPinAnnotationView *newAnnotation=[[MKPinAnnotationView alloc] initWithAnnotation:annotationreuseIdentifier:@"annotation1"];

 

 //newAnnotation.animatesDrop=YES;

//newAnnotation.animatesDrop=NO;

 

newAnnotation.pinColor=MKPinAnnotationColorPurple;

//显示标志提示

newAnnotation.canShowCallout=YES;

return newAnnotation;

 

 

 

}

posted on 2010-11-03 14:11  xYx  阅读(753)  评论(0编辑  收藏  举报

导航