2

MapKitを使用してカスタムマップをオーバーレイしたいと思います。現在、WWDC10のTileMapサンプルを実装しています。ただし、私のオーバーレイマップはベクトル形式(pdf)であり、ラスタライズしてタイルに変換するのはひどい無駄のようです(300KBではなく約10メガバイトもかかります)。

次のいずれかの方法はありますか?

a)MKOverlayを使用してPDFをオーバーレイする、または
b)ベクターグラフィックをMKPolygons、線などに簡単に変換できるので、MapKitでオーバーレイマップを再作成できますか?

注:私がオーバーレイしようとしているマップは非常に単純ですが、地理的に巨大です。オフラインで動作する必要があります。

4

1 に答える 1

1

MKOverlayを使用してPDFをオーバーレイできます。drawMapRect:zoomScale:inContext:MKOverlayViewのメソッドでは、標準のPDF描画関数を使用するだけです。これらの関数はここにあります

このアプローチの問題は、その描画メソッドに送信されるmaprectごとに、毎回PDF全体を描画する必要があることです。これは本当に遅くなります。PDFをラスター化してタイルに変換すると、最高のパフォーマンスが得られると思います。10 MBのデータセットは、iOSアプリに同梱するには大きすぎません。

于 2011-03-20T03:43:40.323 に答える