内部に GoogleMap を含む FragmentActivity があります。onLocationChanged でユーザーの位置を正しく受け取ります。ここでは、ユーザーの位置を使用してマップを中央に配置しようとしています。
@Override
public void onLocationChanged(Location loc)
{
if (centerMap && mMap != null)
{
LatLng location = new LatLng(loc.getLatitude(), loc.getLongitude());
CameraPosition pos = new CameraPosition.Builder().target(location).zoom(12).build();
CameraUpdate cu = CameraUpdateFactory.newCameraPosition(pos);
mMap.animateCamera(cu);
// centerMap = false;
Log.e(getClass().getSimpleName(), "lat = " + location.latitude + " long = " + location.longitude);
}
}
このコードは実際にはときどき (おそらく 1 回だけ) 機能し、if ステートメント内にブレークポイントを配置したデバッグ セッション中にのみ機能しました。何が悪いのかわかりません。onLocationChanged メソッドは定期的に呼び出され、受信した位置をログに記録します。つまり、if 条件に入ったことが示されますが、マップは lat=0,long=0 の初期位置 (アフリカ) から 1 インチも移動しません。
手がかりはありますか?
編集:コードに何かひどく壊れたものが必要です:マーカーでさえ表示されません。マップにマーカーを追加する方法は次のとおりです
mMap.addMarker(new MarkerOptions()
.position(new LatLng(lat, lng))
.title("title")
.draggable(false)
.visible(true));
電話をかけても、「現在地」アイコンも表示されません
mMap.setMyLocationEnabled(true);
onCreate() で。火星人などを除外しようとして、Eclipse、ADT、その他すべてを利用可能な最新バージョンに更新しました。