2017-10-06 34 views
0

私の究極の目標は、マップデータを(自分でカスタマイズするのでオフラインにする)、アプリ(Android)に表示することです。私はosmdroidをオンラインで地図を読み込むように働かせることができました。私はオフラインマップをダウンロードして表示する方法を見つけようとしていました。私はMOBAC(Mobile Atlas Creator)をダウンロードし、データをSQLite形式でエクスポートしました。それを見ると、タイルはイメージ形式(PNG)で保存されていました。osmdroidで地図データをオフラインで使用する

私は、携帯電話にデータをインポートして後で検索エンジンやルーティングアルゴリズムなどのアルゴリズムで使用するため、「ノード」と「方法」が必要ですオリジナルのOSM XML)を作成し、それらを電話機にインポートして可視化し、後で開発したいアルゴリズムでこのデータを利用できるようにします。基本的に、MAPS.MEは何をしますか?単純なスクリプトで作成できるので、XMLをSQLiteに変換するのは難しくありませんが、このカスタムSQLiteデータベースからタイルを生成するにはどうすればいいですか?あるいは、私がやろうとしていることをより適切にデータをダウンロードする方法はありますか?

ありがとうございました。

答えて

0

生のOpenstreetmapデータからアプリ内のタイルをレンダリングすると、計算が重くなり非効率になります。私はあなたが視覚的表現のためにエクスポートした画像タイルを使用することを提案します。

タイルに加えて、必要な機能のために必要なデータセットをアプリケーションにエクスポートする必要があります。 Openstreetmapのすべてのデータが必要なわけではありません。必要なものを特定し、カスタムエクスポートを構築する必要があります(Openstreetmapデータの処理とフィルタリングのためのツールとライブラリがありますが、いくつかのフィルタリングと処理にはpyosmiumを使用しました。たとえば、検索したいPOIを持つカスタムデータベースを構築することができます。

ルーティングは別の章です。自分で実装することはできますが、それは非常に複雑な作業です。 java library called Graphopperがあり、Openstreetmapからのデータ抽出とオフラインルーティングが可能です。彼らもオンラインAPIを持っていますが、完全にオフラインで動作させることは可能です(私は1つのアプリケーションでそれを行いました)。ソースコードを見てみると、トピックルーティングの複雑さが分かるからです。最終ノート:Graphopperからエクスポートされたデータには、ルートに沿ったPOIに関する情報が含まれています。 Java APIを使用していくつかのものを検索することは可能かもしれませんが、私はこれについてまだ調査していません。

+0

興味深い。私はタイルとデータベースを持つものとPOIとのものを組み合わせることは考えていません。ルーティングに関して、それはどれくらい難しいと思いますか?単にA *のようなアルゴリズムを実装するだけではないでしょうか? – kuonb

+0

@kuonb私は、openstreetmapのデータから得点をつけたグラフを作成することが課題だと思います。これは確かに可能ですが、ルーティングに影響するosmデータ構造(maily [tags](https://wiki.openstreetmap.org/wiki/Map_Features))の深い知識が必要です。スコアリング自体は難しいことがあります。これは基本的にGraphopperライブラリが行うことです。しかし、あなたが本当にそれに入っているなら、あなたはそれを試すことができると思います。私はそれが経済的に実現可能ではないと考えていますが、それはあなたの特定のプロジェクトと制約に依存します。 –

関連する問題