0
マップをポリラインの境界に設定した後、Googleマップイメージのスナップショットを作成しようとしています。私はmoveToBounds()と個別にうまく動作するSnapshotの両方を行うためにStackExchangeで見つかった別々のコードサンプルを使用しましたが、マップが更新される前にスナップショットがマップイメージに順番に実行されます。私はOnCameraChangeListenerを挿入する必要があると仮定しますが、動作させることはできません。私は何とかコールバックを入れ子にする必要がありますか?お知らせ下さい。Android Googleマップスナップショットの前にカメラが更新されない
public void mapCapture() {
moveToBounds(gpsTrackingPolyline);
mMap.snapshot(new GoogleMap.SnapshotReadyCallback() {
public void onSnapshotReady(Bitmap bitmap) {
// Write image to disk
try {
File bmpFile = new File(getApplicationContext().getExternalFilesDir(null), DEFAULT_BMP_FILENAME);
FileOutputStream out = new FileOutputStream(bmpFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private void moveToBounds(Polyline p)
{
LatLngBounds.Builder builder = new LatLngBounds.Builder();
List<LatLng> arr = p.getPoints();
for(int i = 0; i < arr.size();i++){
builder.include(arr.get(i));
}
LatLngBounds bounds = builder.build();
int padding = 40; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.animateCamera(cu);
}