我在使用MKMapKit加载512x512像素的瓦片时遇到了问题。
服务器提供512x512像素的.jpeg格式瓦片。
我找不到任何解决方案或自定义视网膜瓦片在MKMapView中的示例实现。
我的做法:
当我将它们加载到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;
}
无论是什么 tileSize(iOS 模拟器 7.1 retina),overlayRenderer.contentScaleFactor 总是为 1。
有什么建议吗?
祝好,Steve