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)
助言がありますか?
よろしく、スティーブ