来自以下文档MKRoadWidthAtZoomScale:
您不应该使用此功能来检索iOS 6及更高版本中的道路宽度.
是否有其他功能可以替代使用,或者这只是iOS 6中缺少的功能?
奇怪的是,如果你不应该使用它,那么该函数不会被弃用.
我大胆猜测它并没有被弃用,因为该功能将在某个时候重新添加。该函数在 iOS 6 中仍然有效,因为即使输出没有用,它在调用时也不会导致崩溃。
如果您查看(Apple)地图应用程序,您会发现当您放大方向路径时,路径的宽度会在最高缩放级别上增加。在高缩放级别下,道路的宽度也会增加。显然,苹果有一种内部方法可以知道缩放时道路的宽度。也许它还没有经过全面的发布测试。
以防万一有人认为您仍然可以使用此功能,这里是从完全放大 (MKZoomScale = 1) 到缩小的建议道路宽度。
代码:
for (float zoomScale=1; zoomScale>0.00001; zoomScale /= 2) {
NSLog(@"zoomScale: %f Road Width: %f", zoomScale, MKRoadWidthAtZoomScale(zoomScale));
}
Run Code Online (Sandbox Code Playgroud)
结果:
zoomScale: 1.000000 Road Width: 21.000000
zoomScale: 0.500000 Road Width: 32.000000
zoomScale: 0.250000 Road Width: 60.000000
zoomScale: 0.125000 Road Width: 96.000000
zoomScale: 0.062500 Road Width: 176.000000
zoomScale: 0.031250 Road Width: 288.000000
zoomScale: 0.015625 Road Width: 448.000000
zoomScale: 0.007812 Road Width: 768.000000
zoomScale: 0.003906 Road Width: 1536.000000
zoomScale: 0.001953 Road Width: 2048.000000
...
Run Code Online (Sandbox Code Playgroud)
至于替换函数,我建议只创建一些适用于最高 2 或 3 个缩放级别的值,并使用低于该值的常量值。
这是低变焦和高变焦时的苹果地图路线叠加图。您可以看到替代路线没有考虑较大的道路宽度,但主要路线的宽度是正确的。更改路线不会影响替代路线宽度。

| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |