iOS:在 MapKit 中的 MKOverlay 中使用矢量数据

发布于 2024-10-19 02:00:34 字数 278 浏览 2 评论 0原文

我想使用 MapKit 覆盖自定义地图。我目前已经实现了 WWDC10 中的 TileMap 示例。然而,我的叠加地图是矢量形式 (pdf),将其栅格化并将其转换为图块似乎是一种可怕的浪费(也占用大约 10meg,而不是 300KB)。

有没有办法:

a) 使用 MKOverlay 覆盖 pdf,或者
b) 轻松地将矢量图形转换为 MKPolygons、线条等,以便我可以在 MapKit 中重新创建叠加地图?

注意:我尝试叠加的地图非常简单,但地理范围却很大。它确实需要离线工作。

I'd like to overlay a custom map using MapKit. I've currently implemented the TileMap sample from WWDC10. However, my overlay map is in vector form (pdf) and it seems like a terrible waste to rasterise it and convert it to tiles (also takes up about 10megs as opposed to 300KB).

Is there a way to either:

a) overlay a pdf using MKOverlay, or
b) easily convert a vector graphic into MKPolygons, lines etc., so I can recreate my overlay map in MapKit?

Notes: The map I'm trying to overlay is pretty simple but geographically huge. It does need to work offline.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

娇纵 2024-10-26 02:00:34

您可以使用 MKOverlay 覆盖 PDF。在 MKOverlayView 的 drawMapRect:zoomScale:inContext: 方法中,只需使用标准 PDF 绘图函数。您可以找到这些函数此处

这种方法的问题在于,对于发送到该绘图方法的每个映射矩形,您每次都必须绘制整个 PDF。这会非常慢。我认为通过光栅化 PDF 并将其转换为图块,您会看到最佳性能。对于 iOS 应用程序来说,10 MB 的数据集并不算太大。

You can overlay a PDF using MKOverlay. In the drawMapRect:zoomScale:inContext: method of your MKOverlayView just use standard PDF drawing functions. You can find those functions here.

The problem with this approach is that for each maprect that is sent to that drawing method you will have to draw the entire PDF each time. This will be really slow. I think you will see the best performance by rasterizing the PDF and converting it to tiles. 10 MB is not too large of a dataset to ship with an iOS app.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文