私はGoogle Mapsから幾つかのジオロケーションデータをデータベースに入れようとしています。しかし、GeoPointオブジェクトの周りを回って、私は1トンの精度を失っているようです。Googleマップの精度を失うGeoPointクラス
私はテントで、onActivityResult応答の結果として意図取得がgeopointのための余分なデータです:
logcatで@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG,String.format("doMark returns with %d", resultCode));
int lat = data.getIntExtra("MARK_LAT", 0);
int lng = data.getIntExtra("MARK_LNG", 0);
Log.d(TAG, String.format("Orig lat/lng %d:%d", lat, lng));
OverlayItem oi = new OverlayItem(new GeoPoint(lat,lng), "ID", "");
Log.d(TAG, String.format("GeoPoint lat/lng %d:%d",
oi.getPoint().getLatitudeE6(),
oi.getPoint().getLongitudeE6()));
m_data.addMarker(m_gp, data.getIntExtra("MARK_ID", R.drawable.tile5));
super.onActivityResult(requestCode, resultCode, data);
}
私が取得:
3月8日10時28分: 16.164:D/TREASUREACTIVITY(1653):ORIG緯度/経度42234412:-70999749 3月8日10:28:16.164:D/TREASUREACTIVITY(1653):GeoPoint緯度/経度42234412:-70999749
良いですね! GeoPoint lat/lngは入力値と同じです。
m_data.addMarker()関数は、このようになる:
public void addMarker(GeoPoint p, int id) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("TIME", System.currentTimeMillis());
values.put("LAT", p.getLatitudeE6());
values.put("LNG", p.getLongitudeE6());
values.put("MARK_ID", id);
db.insert("MARKER", null, values);
Log.d(TAG,String.format("INSERT MARKER %d %d",p.getLatitudeE6(),
p.getLongitudeE6()));
db.close();
}
addMarker(からlogcat)である:
3月8日10:28:16.194:D/DDATA(1653):INSERT MARKER 42234000 -71000000
舞台裏で何らかのコンバージョン/プロモーションが行われていると推測していますが、コードはかなり単純です。
精度がどこに行くのかは推測できますか?
をm_gp、どこでそれが作成されますが何ですか? – njzk2