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;
}