私はMapbox SDKを使用しており、地図を現在の場所に移動してズームしたいと考えています。ロケーションレイヤを有効にすると、正しい場所にドットが表示されます。しかし私のロケーションエンジンのリスナーは呼び出されていないので、私はカメラを動かすことができません。Mabox Android - 位置情報の更新がありません
onCreateView
GoogleApiClient
で接続を開始します。それが接続されると、私は場所の設定をチェックして(場所の許可を確認した後に)電源が入っているかどうかを確認します。それが成功した場合、私はこれを行う:
if (locationEngine == null) {
locationEngine = new LocationSource(getActivity());
locationEngine.requestLocationUpdates();
}
Location location = locationEngine.getLastLocation(); // This returns null
onLocationChanged(location); // This moves the camera if a location is passed in
locationEngine.addLocationEngineListener(locationEngineListener);
// This works, the location layer functions properly
getMap(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
mapboxMap.setMyLocationEnabled(true);
}
});
はここlocationEngineListener
が何をするかです:
private class Listener implements LocationEngineListener {
@Override
public void onConnected() {
// No action needed here.
}
@Override
public void onLocationChanged(Location location) {
CurrentLocationMap.this.onLocationChanged(location);
}
}
問題がonLocationChanged
で呼び出されることはありません。
ありがとう、私はこれを代替位置として実行しますが、Mapbox API(私が使用しているもの)ははるかに単純なように見えます。しかし、それはGoogle APIの大きな答えです。 – nasch
ここで提供したコードスニペットは、Google Playストアの自分のアプリの1つに使用したコードです。それは100%作業コードです。アイデアは同じです。 https://play.google.com/store/apps/details?id=com.LiveEarthquakesAlerts –
私はそれがうまくいかないとは言わなかった、それはちょうど私が使用しているものとは異なるAPIを使用している。 – nasch