道路網を構成するインデックス付きノードとインデックスを提供できる Android 用の Map API が必要です。主なアイデアは、2 つの GPS デバイスが同じ道路上にあるかどうかを判断することです。前もって感謝します
2 に答える
OpenStreetMapは、この種のプロジェクトにとって間違いなく優れたデータソースです。グーグルマップとは異なり、それは開発者にマップの基礎となるベクターデータへのアクセスを提供します(完全に開いています)。これにより、グーグルマップでは不可能な興味深い新しいユースケースが可能になり、このような幾何学的計算を伴うものは間違いなくそのカテゴリに当てはまります。OpenStreetMapまたはその他の「ベクトル」マップデータのソースが必要ですが、OpenStreetMapを超えると、コストがかかる可能性があります。
残念ながら、それはあなたの質問に対する完全な答えではありません。意図した方法でデータを使用するには、まだやるべきことがたくさんあります。2つのポイント(2つのデバイスからのGPS読み取り値?)の近くの道路への近さを計算し、ポイントが最も近い道路を特定する必要があります。これは、QGISなどのGISパッケージまたは地理認識データベースシステムPostGISの機能を使用して実行できる強力な地理計算の一種です。
しかし、デバイスでこれらの計算を行う必要があるため、それはあなたの質問に対する答えではありません。私はAndroidでこれを行うための既製のライブラリを知りません。私はあなたがあなた自身を転がさなければならないと思います。
しかし、もう1つの課題は、最初に適切な形式でベクトルデータをデバイスに取り込むことであり、これが最初に解決することです。ベクターデータは、国全体の大規模なダウンロードとして、またはおそらくこのアプリ内のオンザフライダウンロード機能を備えたより小さな領域として必要になります。ベクトル形式のマップを操作する場合、国全体が実行不可能ではありませんが(すばらしいMayDroydアプリを試したことはありますか?)、コンパクトなフォーマットが必要です。幸いなことに、これらの問題のいくつかは、オープンソースの既製のライブラリで解決され始めています。たとえば、 MapsForgeの上に構築を試みることができます。
それで、あなたはこのデータをいじくり回してあなたがしたい計算をするためにデバイス上のコードを書くという挑戦に戻ります。MapsForgeのようなプロジェクトにこれを簡単にするための一般的なPostGISスタイルのジオ関数が含まれていれば、かなり良いと思います。おそらくmapsforge開発者に尋ねる何か。
Map API 自体には、その情報はありません。とにかく、 OpenStreetMapから自由に入手できます。ここからダウンロードできます。
結果を地図上に表示するつもりかどうか、あなたの質問からはわかりません。もしそうで、素敵で無料のマップ API が必要な場合は、Leafletをお勧めします。OpenLayersほど成熟していませんが、この投稿に「android」のタグを付けたように、Leaflet はモバイル部門でお尻を蹴ります。