1

У меня есть карта, и у меня есть база данных с json-запросом. Я пытаюсь создать карту, где у вас есть маркеры (название и т. Д.). Поскольку их так много, я думал о кластеризации, поэтому я их реализовал. Но проблема в том, что она не работает, как я этого хочу. Когда приложение запускается, оно отображает карту, масштабируется в вашем местоположении, но не показывает вам никаких маркеров или кластеров. Но на данный момент вы уменьшаете масштаб, кластеры показывают, с маркерами и т. Д. Любые идеи, что не так?Кластеры не отображаются, когда я запускаю приложение на googlemapsv2

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    context = getApplicationContext(); 
    if (getSharedPreferencesRadius() == null) { 
     SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE).edit(); 
     editor.putInt("radius", 2000); 
     editor.commit(); 
    } 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 



    setUpMapIfNeeded(); 

} 




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

} 


@Override 
protected void onResume() { 
    super.onResume(); 
    setUpMapIfNeeded(); 
} 


private void setUpMapIfNeeded() { 

    if (mMap == null) { 

     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
     Log.d("MAP", " "+mMap); 
     // Check if we were successful in obtaining the map. 
     if (mMap != null) { 
      setUpMap(); 
     } 
    } 
} 

private void setUpMap() { 
    mMap.setMyLocationEnabled(true); 
    setMyLocationLatLng(); 
    kompasEnabled(); 
    radiusEnable(latLng); 
    ZoomIN(latLng); 


    mClusterManager = new ClusterManager<Marker>(this, mMap); 

    mClusterManager.clearItems(); 

    mMap.setOnCameraChangeListener(mClusterManager); 
    mMap.setOnMarkerClickListener(mClusterManager); 

    mClusterManager.cluster(); 

    jsonRequest(latitude, longitude); 



} 

protected GoogleMap getMap() { 
    setUpMapIfNeeded(); 
    return mMap; 
} 

И это activity_main

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:id="@+id/container_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar"></include> 
    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/clayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/map" 
       tools:context=".MainActivity" 
     android:name="com.google.android.gms.maps.SupportMapFragment" /> 

    </android.support.design.widget.CoordinatorLayout> 

    </LinearLayout> 

Если вам нужно больше информации, пожалуйста, обращайтесь.

UPDATE 1: Я узнал, что без mMap.setOnCameraChangeListener (mClusterManager); Это не работает (даже не покажет их). Есть идеи?

ответ

0

Я нашел решение, после нескольких часов и часов, глядя на мой код, и поиск в интернете я нашел, что вам нужно, когда вы создаете все товары, вам необходимо позвонить:

mClusterManager.cluster(); 

То есть Это.