3

iOS 6マップのように、タイルを使用してカスタムのベクターベースのマップを作成しようとしています。ラスターベースのマップの優れたソリューションをたくさん見てきましたが、これまでのところ、ベクターベースのマップに基づくものはありません。

マップ全体を描画コードに入れていますが、残念ながら、1つのファイルで使用するには大きすぎます。私もsvgを持っています。できれば、マップ全体を別の形式で再作成する必要のないソリューションが必要ですが、iPhoneでソリューションが簡単であるか、クラッシュ/実行が遅い場合も同様です。

誰かアイデアはありますか?

親切な支援をありがとう、

4

1 に答える 1

2

SVGを[ベクター]PDFとして出力するのが最善の策だと思います。これは、SVGの作成に使用したソフトウェアを使用して自動的に実現できるものである必要があります。PDFの利点は、iOSがネイティブに理解し、少数の呼び出しでレンダリングできるベクター形式であることです。

次に、おそらくやりたいことは、PDFをレンダリングできるUIViewのサブクラスを作成することです。関連するCoreGraphicsCのものにドロップダウンする必要がありますが、それを達成するのはそれほど難しいことではありません。チュートリアルをインターネットからランダムに引き出すと、これが得られます。

そのUIViewを指定して、マップ全体layerClassCATiledLayerサイズを設定し、スクロールビュー内に配置すると、マップ、Safariなどとまったく同じタイリング動作が得られるはずです。特別なものを実装する必要はありません。ビューをトラップするdrawRect:と、小さなセクションに対してのみ呼び出されていることがわかります。

CATiledLayerスレッドの問題が発生し始める古いチュートリアルについて心配する必要はありません。QA1637では、drawRect:を通常のUIKitの方法で実装し、iOS4以降でスレッドを機能させることができます。iPhone5画面をサポートする予定であると仮定します。とにかく4.3より古いものを提出することはできません。そうでない場合でも、努力を費やすことはお勧めしません。

于 2012-10-22T23:03:49.827 に答える