2 つの MKPinAnnotationView を接続する単純な MKPolyline を追加しようとしています。このチュートリアルを読んで、Apple の WWDC 2010 ビデオを見ました。(http://spitzkoff.com/craig/?p=136)。シンプルなものを描画しようとしているだけなので、viewDidLoad で次のようにします。
MKMapPoint *pointArray = malloc(sizeof(CLLocationCoordinate2D) * 2);
pointArray[0] = MKMapPointForCoordinate(CLLocationCoordinate2DMake(32, -115));
pointArray[1] = MKMapPointForCoordinate(CLLocationCoordinate2DMake(32, -130));
MKPolyline *line = [MKPolyline polylineWithPoints:pointArray count:2];
[self.mapView addOverlay:line];
free(pointArray);
次に、私のデリゲート コールバックは次のとおりです。
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
if ([overlay isKindOfClass:[MKCircle class]]) {
MKCircleView *view = [[MKCircleView alloc] initWithOverlay:overlay];
view.fillColor = [UIColor redColor];
view.strokeColor = [[UIColor redColor] colorWithAlphaComponent:0.5];
return view;
}
else {
MKPolylineView *view = [[MKPolylineView alloc] initWithOverlay:overlay];
view.fillColor = [UIColor redColor];
view.lineWidth = 20;
return view;
}
}
MKCircle で簡単な例を実行すると、円が表示されます。viewDidLoad に追加したこの MKPolyline を使用すると、mapView:viewForOverlay: コールバックを取得できますが、画面には何も描画されません。何か不足していますか?ありがとう。