Comment ajouter un titre, extrait de l'icône et de ClusterItem?
J'ai eu cette activité:
public class MapViewer extends Activity {
private GoogleMap map;
private Database db = new Database(this);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapviewer);
try {
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
if (map != null) {
map.setMyLocationEnabled(true);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.getUiSettings().setRotateGesturesEnabled(false);
this.addMerchantMarkers(new MarkerOptions());
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
public void addMerchantMarkers(MarkerOptions mo) {
SQLiteDatabase dbRead = db.getReadableDatabase();
Cursor result = dbRead.rawQuery("SELECT title, addr, lat, lon FROM users", null);
while(result.moveToNext()) {
map.addMarker(mo.position(new LatLng(result.getFloat(2), result.getFloat(3)))
.title(result.getString(0))
.snippet(result.getString(1))
);;
}
}
}
que j'ai changé de la façon suivante pour utiliser des marqueurs de clustering:
public class MapViewer extends Activity {
private GoogleMap map;
private Database db = new Database(this);
private ClusterManager<MyItem> mClusterManager;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapviewer);
try {
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
if (map != null) {
map.setMyLocationEnabled(true);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.getUiSettings().setRotateGesturesEnabled(false);
setUpClusterer();
}
} catch (NullPointerException e) {
e.printStackTrace();
}
}
private void setUpClusterer() {
mClusterManager = new ClusterManager<MyItem>(this, map);
map.setOnCameraChangeListener(mClusterManager);
map.setOnMarkerClickListener(mClusterManager);
addItems();
}
private void addItems() {
SQLiteDatabase dbRead = db.getReadableDatabase();
Cursor result = dbRead.rawQuery("SELECT lat, lon, title, addr FROM users", null);
while(result.moveToNext()) {
MyItem offsetItem = new MyItem(result.getFloat(0), result.getFloat(1));
mClusterManager.addItem(offsetItem);
}
}
}
Maintenant, je ne sais pas comment faire pour ajouter un titre, extrait et une icône pour chaque marqueur comme le précédent code.
Maintenant, si je clique sur un seul marqueur rien ne se passe...
Comment obtenir que?
OriginalL'auteur smartmouse | 2015-01-02
Vous devez vous connecter pour publier un commentaire.
Ici, vous devez travailler avec ClusterManager lui-même.
Par exemple, la création sur cluster élément, cliquez sur:
Et il y a d'autres méthodes différentes dans ClusterManager classe.
Vous aurez besoin d'un moins évident de code pour affecter fenêtre d'informations de marqueur ou d'un cluster, vous devez utiliser ce code:
Il MarkerInfoWindowAdapter et ClusterWindowAdapter est vos classes, qui met en œuvre GoogleMap.InfoWindowAdapter.
Avec les icônes, il est un peu plus difficile, parce que le clustering des changements d'icônes par défaut. Vous devez utiliser la méthode:
Vous pourriez votre propre classe de rendu et de redéfinir certaines méthodes. Par exemple, pour définir des icônes personnalisées utilisation de cette classe:
Et de l'utiliser de cette manière:
Vous pouvez ajouter un titre et l'extrait de la même manière que l'icône de la méthode, onBeforeClusterRendered (voir réponse) utiliser des méthodes title(String titre) et l'extrait(String extrait) de markerOptions objet.
Travaillé, je vous remercie.
Merci fonctionne, mais c'est "SI" lent 🙁
la deuxième option fonctionne parfaitement et facile à mettre en œuvre. merci 😉
OriginalL'auteur Vasilov Artur