1:CLLocationDegrees 經緯度
CLLocationDegrees latitude = theLocation.coordinate.latitude;
CLLocationCoordinate2D coordinate = theLocation.coordinate
CLLocationDegrees longitude = theLocation.coordinate.longitude;
2:CLLocationAccuracy 精度
有四個值:kCLLocationAccuracyBestForNavigation,kCLLocationAccuracyBest,
kCLLocationAccuracyNearestTenMeters,kCLLocationAccuracyHundredMeters
kCLLocationAccuracyKilometer,kCLLocationAccuracyThreeKilometers
3:MKCoordinateSpan span = MKCoordinateSpanMake(0.1, 0.1);//顯示比例
MKCoordinateRegion region = MKCoordinateRegionMake(coordinate, span);//定義地圖區域
4:MKMapView
MapType屬性值 描述
MKMapTypeStandard 表示標準的街道級地圖
MKMapTypeSatellite 表示衛星圖
MKMapTypeHybird 表示上面兩者的混合
5:計算兩點間的位置:單位(千米)
[NSString stringWithFormat:@"%0.2f km",[userLocation getDistanceFrom:location]/1000]
6:在處理MKAnnotationView時,都要判斷對應annotation是不是MKUserLocation這個顯示用戶當前位置的藍點,以避免誤 操作。[annotation isKindOfClass:[MKUserLocation class]]
7:- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
這個delegate函數一般會在給MKMapView對象添加 annotations後馬上執行,但執行不會馬上結束。如果在它完成之前就調用[mapView viewForAnnotation:someAnnotation];的話,會返回nil的結果,這時對這個返回的nil做任何操作都不會在屏幕上顯示
8:MKMapView放大縮小時,需要注意的是放大,至少放大2倍以上纔會被執行。
MKCoordinateRegion region = mMapView.region;
region.span.latitudeDelta=region.span.latitudeDelta * 0.4;
region.span.longitudeDelta=region.span.longitudeDelta * 0.4;
[mapView setRegion:region animated:YES];(放大)
MKCoordinateRegion region = mMapView.region;
region.span.latitudeDelta=region.span.latitudeDelta * 1.3;
region.span.longitudeDelta=region.span.longitudeDelta * 1.3;
[mapView setRegion:region animated:YES];(縮小)