2 つの異なるオーバーレイを持つ MKMapView が必要です。
まず、「マップ上のイメージ オーバーレイ」(TileOverlay) があり、次にマップ上にオーバーレイとしてルートを描画したいと考えています。
この作業を 2 つの異なるプロジェクトで行うと、すべて正常に動作します (1 つはイメージ オーバーレイを使用し、もう 1 つはルート オーバーレイを使用)。
ここで、プロジェクトをマージした場合、viewForOverlay デリゲート関数はどのように見えるべきか疑問に思っています。
私の画像(タイル)オーバーレイの場合、現在、次のようになっています。
- (MKOverlayView *) mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
TileOverlayView *tileView = [[TileOverlayView alloc] initWithOverlay:overlay];
tileView.tileAlpha = 1.0;
return tileView;
}
私のルートオーバーレイでは、次のようになります。
- (MKOverlayView*)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay
{
MKPolylineView *polylineView = [[MKPolylineView alloc] initWithPolyline:overlay];
polylineView.lineJoin = kCGLineJoinRound;
polylineView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.4];
return polylineView;
}
これらを (1 つのプロジェクトに) 「マージ」したい場合、このメソッドはどのように見えるでしょうか?
- (MKOverlayView*)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay
{
//what comes here?
}