5

MKMapKit で 512x512px のタイルを読み込む際に問題があります。サーバーは 512x512 の .jpeg タイルを提供します。

MKMapView でカスタム Retina タイルのソリューションまたはサンプル実装を見つけることができませんでした。

私がやること:

それらをMKMapViewにロードすると

 overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
 overlay.tileSize = CGSizeMake(512.0f, 512.0f);
 [_mapView insertOverlay:overlay atIndex:MAP_OVERLAY_INDEX_TILE level:MKOverlayLevelAboveLabels];

… タイルは正しくスケーリングされていますが、半分しかロードされていません (視覚的にだけでなく、リクエストを盗聴したところ、タイルが見つかりませんでした)

 overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
 overlay.tileSize = CGSizeMake(256.0f, 256.0f);
 [_mapView insertOverlay:overlay atIndex:MAP_OVERLAY_INDEX_TILE level:MKOverlayLevelAboveLabels];

… すべてのタイルが表示されますが、スケーリングが正しくありません

これは私の描画方法です:

(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay
{
    MKOverlayRenderer *overlayRenderer = nil;

    if([overlay isKindOfClass:MKTileOverlay.class])
    {
        overlayRenderer = [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
    }

    return overlayRenderer;
}

... overlayRenderer.contentScaleFactor は常に 1 です ... tileSize に関係なく (iOS シミュレータ 7.1 retina)

助言がありますか?

よろしく、スティーブ

4

1 に答える 1