- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始研究 map ,想知道如何在我的 MKMapView 上实现来自 OpenLayer 的图 block (我相信 openstreetmap 正在显示)。默认的 sdk 没有显示足够的细节来完成我想要做的事情。我可以对服务器执行 ping 操作以获取图 block ,但我不断看到有关这样做的警告。所以我的两个问题是 1) 我如何从 openlayer 获取图 block 并将它们覆盖在我的 map View 中,以及 2) 有没有办法提前获取这些图 block 并将它们存储在我的应用程序中?我只是想绘制一小块区域的 map (大约 9 平方英里)。任何建议都表示赞赏
最佳答案
您正在寻找的是 MKTileOverlay,它覆盖来自 OpenSteetMap 的图 block 。
Mattt Thompson 在 NSHipster 上有一些示例代码:
static NSString * const template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png";
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
overlay.canReplaceMapContent = YES;
[self.mapView addOverlay:overlay
level:MKOverlayLevelAboveLabels];
对于每个必需的图 block ,这将从 URL 模板下载数据。
参见 http://nshipster.com/mktileoverlay-mkmapsnapshotter-mkdirections/ (这是从哪里获取的)了解更多详情。
如果您想管理自己的切片缓存(例如,一些切片随应用程序一起提供),您可以子类化
- (void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *tileData, NSError *error))result
并直接提供数据。但是,我认为如果需要所有缩放级别,即使是 9 平方英里的数据也会非常大。不过,您可能有混合动力,并在您的应用中提供一些数据,然后直接下载更高的缩放级别。
关于ios - 如何在我的 mapview iOS 7 中使用 OpenLayer (OpenStreetMap) tiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173274/
我是一名优秀的程序员,十分优秀!