2016-04-25 10 views
0

をマップだから私は、データベースに保存されたマーカーを追加しようとすると、このコードを持って:の印刷複数のマーカーが

@Override 
public void onMapReady(GoogleMap googleMap) { 
    mMap = googleMap; 

    // Add a marker in Sydney and move the camera 
    control.conectar(); 
    ArrayList<Sucursal> sucursales = control.getSucursales(); 
    control.cerrar(); 
    LatLng loc; 
    for(int x=0;x<sucursales.size();x++){ 
     loc = new LatLng(sucursales.get(x).getX(), sucursales.get(x).getY()); 
     mMap.addMarker(new MarkerOptions().position(loc).title(sucursales.get(x).getNombre())); 
    } 
    mMap.moveCamera(CameraUpdateFactory.zoomTo(12)); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(20.67711737527203, -103.36349487304688))); 
} 

すべてのDBの行が正しく得得ているとcicleが動作している、しかし、最初の行のみ正しい場所に置いていないので、「働いている」ようです。

Iveはこの正確なコードをもう一度試しましたが、私は今何かを逃していると思います。

+1

複数のマーカーを追加してから別の場所にカメラを移動しています。エラーが発生した場合は、ここにlogcatを投稿してください –

+0

@AnujSharmaエラーは表示されません。カメラを「avarage」の場所に移動するだけで、他のすべてのカメラを見ることができます。 –

+0

あなたの要件は何ですか?あなたは何をあなたの結果に収めていますか? –

答えて

1

最初に気をつけるべきことは、sucursales変数に必要なすべてのデータがあることです。これを行うことで、すべてのマーカーをマップ上に配置していることを確認できます。

ここでは、すべてのマーカーがすべての場合に当てはまらないビューポートにあると仮定しているため、ここで境界を設定する必要があります。

これにより、すべてのマーカーがビューポートに保持されます。

それぞれの反復でループと更新のためにこれを前もって定義します。

@Override 
public void onMapReady(GoogleMap googleMap) { 
mMap = googleMap; 

// Add a marker in Sydney and move the camera 
control.conectar(); 
ArrayList<Sucursal> sucursales = control.getSucursales(); 
control.cerrar(); 
LatLng loc; 
LatLngBounds bounds=new LatLngBounds.Builder().build(); 
for(int x=0;x<sucursales.size();x++){ 
    bounds.including(new LatLng(sucursales.get(x).getX(), sucursales.get(x).getY())); 
} 
for(int x=0;x<sucursales.size();x++){ 
    loc = new LatLng(sucursales.get(x).getX(), sucursales.get(x).getY()); 
    mMap.addMarker(new MarkerOptions().position(loc).title(sucursales.get(x).getNombre())); 
} 
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100)); 
} 

これにより、すべてのマーカーがビューポートに表示されます。

これはあなたのために働いたかどうかを伝え、これがあなたの望むものならこれを受け入れます。

+0

はあなたのために働いたのですか? –