サーバーから事前にレンダリングされたタイルを使用する代わりに、OpenStreetMap データを使用して、iOS で 2D トップ ビュー ベクターベースのマップをレンダリングできるようにするソリューションを検討しています。iOS6+ の Apple や Google Maps に似ています。
私はこの件について大規模な調査を行いましたが、あまり多くの情報は見つかりませんでした。
これを行う iOS アプリは多数ありますが、その実装方法に関する情報はありません。これらのアプリのいくつかは次のとおりです。
最初の 2 つのアプリは、Apple および Google マップと同様に機能します。地図は、ズームが変わるたびにリアルタイムで描画されます。
最後のものは、わずかに異なるアプローチを使用しているようです。特定のズーム レベルでベクター データをレンダリングし、タイル サーバーからダウンロードされた通常のタイルとして使用されるタイルを作成します。そのため、レンダリング エンジンは実際には Route-Me ライブラリのタイル ソースになる可能性がありますが、タイルをダウンロードする代わりに、オンザフライでレンダリングします。
最初の方法をお勧めします。
[Q] OpenGL ES レンダラーが整ったら、かなり簡単に方法を切り替えることができると思います。レンダラーを Route-Me のソースとして使用してタイルを作成したり、ゲームのようにリアルタイムのドロワーとして使用したりできます。私は正しいですか?
私が見つけた最も近い解決策はOpenStreetPadです。ただし、OpenGL ES の代わりに Core Graphics を使用しているため、レンダリングはハードウェア アクセラレーションされません。
Mapbox は、ベクター タイルに取り組んでおり、おそらくレンダリング用の iOS ソリューションを提供すると述べていますが、Mapnik を使用する可能性があるため、それがどれほど効率的かはわかりません。また、2013 年半ば以降、ETA はありません。
[Q] 他のライブラリ、論文、ガイド、例、またはこれにアプローチする方法に関するその他の有用な情報を知っていますか? 基本的にOSMデータの扱い方と、実際にOpenGL ES/GLKitを使ってそのデータをデバイス上に描画する方法。たぶん、それをやった人の何人かは、いくつかのことを共有できますか?