6

私はマップ上にポリゴンを描画したアプリケーションを開発していますが、使用したマップはGoogleではありません.そのMapsforgeオープンソースのオフラインマップライブラリ.ジオポイントをピクセルポイントに変換することで、マップ上にポリゴンを簡単に描画できます.しかし、ここで私はしたい見つけたのはその不規則な多角形であり、そのために私は多くのことを試みましたが、失敗しました..基本的な数学で面積を計算しようとしましたが、ズームレベルを変更しながらピクセルが適切に変更される場合、この場合は機能しません。これが数学ロジックです: 数学計算

 for(int miAreainc = 0;miAreainc  < x.length-1; miAreainc++)
                 {
                     sumX += x[miAreainc] * y[miAreainc + 1];
                     sumY += y[miAreainc] * x[miAreainc + 1];
                 }
                 int unit = ((sumX - (sumY)) / 2);
                 AppLog.showLogE(TAG,"UNIT >> " + unit);

ジオポイント配列から領域を取得する機能がサーバー側にとどまっていることがわかりましたが、ここではオフラインにしたいと考えています。これまで試してみましたが、手がかりや結果が得られません..これを手伝ってください..ありがとう

4

2 に答える 2

2

面積を計算するには、緯度、経度を単位メートルのデカルト座標に変換する必要があります。(ピクセルではありません) 変換モジュールを調べます

于 2013-05-24T12:49:25.300 に答える
2

:私の答えがどれほどばかげているかはよくわかりません。意味をなさない場合はお知らせください。削除します。

マップはデカルト座標系ではないため、計算では正確な結果が得られません。自明ではない球面ポリゴンには球面三角法が必要です。

地球表面上の任意の多角形で囲まれた面積の計算 に良い議論があります。見てください。

しかし、これらすべてとは別に、特定のズームレベルで世界地図上の絶対ピクセル座標を見つける方法があることを発見Projection.javaしました。mapsforgeGeoPoint

指定された {@link GeoPoint} を世界地図上の絶対ピクセル座標に変換します。

Point toPoint(GeoPoint in, Point out, byte zoomLevel);

私はあまり知識がありませんがGeoPoint、投影された地図上の絶対座標が得られるので、デカルト計算を使用できると思います。

于 2013-05-24T12:20:47.787 に答える