web-dev-qa-db-ja.com

Android緯度/経度の値を含むGeoPoint

45.44334までに-23.4456のGeoPointを取得しようとしています

Intのみを取るため、GeoPointのコンストラクターに渡す値は何ですか。

30
Ian Vink

GeoPoint座標はマイクロ度(度* 1e6)に基づいています- ここ と書かれています

float lat = -23.4456f;
float lng = 45.44334f;
GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));
73
Itsik

アプリ全体で計算を繰り返すのではなく、LatLonPointを作成することをお勧めします。

private static final class LatLonPoint extends GeoPoint {
    public LatLonPoint(double latitude, double longitude) {
        super((int) (latitude * 1E6), (int) (longitude * 1E6));
    }
}

次に、GeoPointを作成する必要があり、緯度/経度がある場合はどこでも

GeoPoint point = new LatLonPoint(37.234569, -122.123456);

そもそも、GeoPointにはlat/longコンストラクタがあるはずです。

30
Ross M

私は このページ から緯度/経度を取得し、無意味にそれを書きました...それは非常にうまく機能しました、私の家はそこにあります、それがあるはずです;)

したがって、(上記)34.234569の代わりに34234569と書くだけです...覚えておいてください:1e6は1000000であり、それ以外は;)

6
ben0bi

私は解決策があなたを助けるかもしれないと思っています。

1)最初に、学位形式のデータ(場所)があります。 2)方程式によって、1000000を掛ける必要があります3)ここで、特定のGEO POINTの場所があります。

ここのように;私が次のような場所を持っている場合:Latitude:23.0395677 and Longitude:72.5660045°つまり、あなたのGeoPoint(23039568,72566045);

2
NovusMobile