J'affiche des marqueurs sur une carte. Je ne suis pas sûr comment je peux spécifier une ressource drawable différente pour différents marqueurs?Comment afficher différents marqueurs sur une carte?
Je voudrais montrer une épingle verte si les emplacements la distance < 50, etc., etc.
pin = getResources().getDrawable(R.drawable.pushpin);
itemizedOverlay = new MyItemizedOverlay(pin, mapView);
for (Record element : list) {
GeoPoint point;
OverlayItem overlayItem;
double lat = Double.parseDouble(element.getLatitude());
double lng = Double.parseDouble(element.getLongitude());
double locationDistance = Double.parseDouble(element.getLocationDist());
geoPoint.add(new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)));
listOfOverlays = mapView.getOverlays();
point = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
Log.i("deep", "deep " + point);
overlayItem = new OverlayItem(point, "", element.getTitle());
if(locationDistance < 50){
//green
}
else if(locationDistance > 50 && locationDistance < 100){
//yellow
}
else if(locationDistance > 100 && locationDistance < 150){
//blue
}
@CommonsWare, qu'en étendant ItemizedOverlay? Ne recommanderiez-vous pas d'emprunter cette route pour quelque raison que ce soit? – McStretch
@McStretch: Vous pouvez remplacer 'onDraw()'. Cependant, à mon humble avis, il semblerait plus logique pour un 'OverlayItem' d'avoir la logique métier pour quelle icône il utilise, plutôt que d'avoir' ItemizedOverlay' doivent avoir toutes ces règles. Mais, cela est basé sur des informations de conception limitées, et donc mon instinct peut-être tort dans ce cas. – CommonsWare
Pourquoi ne puis-je pas appeler overlayItem.setMarker (drawable)? // ne fonctionne pas btw –