我在 MKMapKit 中加载 512x512px 瓷砖时遇到问题。服务器提供 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;
}
... overlayRenderer.contentScaleFactor 始终为 1 ... 无论 tileSize 是什么(iOS 模拟器 7.1 视网膜)
有什么建议么?
最好的问候,史蒂夫