1、//更新地圖可見地區,讓所有公交網站在地圖可見地區
- (void)updateMapviewVisibleRegion {
MKMapRect zoomRect =
MKMapRectNull;
for (id <MKAnnotation> annotation
in self.mapView.annotations) {
MKMapPoint annotationPoint =
MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect =
MKMapRectMake(annotationPoint.x, annotationPoint.y,
0, 0);
if (MKMapRectIsNull(zoomRect)) {
zoomRect = pointRect;
}
else {
zoomRect =
MKMapRectUnion(zoomRect, pointRect);
}
}
zoomRect = [self.mapView
mapRectThatFits:zoomRect];
[self.mapView
setVisibleMapRect:zoomRect animated:YES];
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id
< MKAnnotation >)annotation {
//判斷是否是自身位置
if ([annotation isKindOfClass:[MKUserLocation
class]]) {
return nil;
}
//驗證參數
if (![annotation isKindOfClass:[ZPMKAnnotation
class]]) {
return nil;
}
static
NSString *strIdentifier =
@"MapViewRouteAnnotationViewIdentifier";
MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView
dequeueReusableAnnotationViewWithIdentifier:strIdentifier];
if (nil == pinView) {
pinView = [[[MKPinAnnotationView
alloc] initWithAnnotation:annotation
reuseIdentifier:strIdentifier]
autorelease];
pinView.tag = ((ZPMKAnnotation *)annotation).stationID;
pinView.pinColor =
MKPinAnnotationColorGreen;
pinView.canShowCallout =
YES;
pinView.rightCalloutAccessoryView = [UIButton
buttonWithType:UIButtonTypeDetailDisclosure];
pinView.draggable =
YES;
}else {
pinView.annotation = annotation;
}
return pinView;
}
2、在地圖上畫線
//更新地圖可見地區,讓所有公交網站在地圖可見地區
- (void)updateMapviewVisibleRegion {
MKMapRect zoomRect =
MKMapRectNull;
for (id <MKAnnotation> annotation
in self.mapView.annotations) {
MKMapPoint annotationPoint =
MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect =
MKMapRectMake(annotationPoint.x, annotationPoint.y,
0, 0);
if (MKMapRectIsNull(zoomRect)) {
zoomRect = pointRect;
}
else {
zoomRect =
MKMapRectUnion(zoomRect, pointRect);
}
}
zoomRect = [self.mapView
mapRectThatFits:zoomRect];
[self.mapView
setVisibleMapRect:zoomRect animated:YES];
}
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay
{
if(overlay == self.routeLine) {
self.routeLineView = [[[MKPolylineView
alloc] initWithPolyline:self.routeLine]
autorelease];
self.routeLineView.fillColor = [UIColor
blueColor];
self.routeLineView.strokeColor = [UIColor
blueColor];
self.routeLineView.lineWidth =
5;
return self.routeLineView;
}
return
nil;
}