我从服务器获取三种类型的ID的纬度和经度,并在谷歌地图v2上显示制造商。我在drawalbe中有三个图标说a.png,b.png和c.png。我想要的是如果ID == A1所以选择a.png作为标记图标,如果ID == B2,那么选择b.png作为标记图标,如果ID == C3,那么对于标记图标选择c.png。我该怎么做?这是我的代码。
user = json.getJSONArray(TAG_GPS);
String Latitude, Longitude, ID;
LatLng latLngGps;
int a=user.length();
for(int i=0;i<a;i++){
JSONObject c=user.getJSONObject(i);
Latitude=c.getString(TAG_LAT);
Longitude=c.getString(TAG_LONG);
ID=c.getString(TAG_ID);
latLngGps = new LatLng(Double.parseDouble(Latitude),Double.parseDouble(Longitude));
mGoogleMap .addMarker(new MarkerOptions().position(latLngGps).
title("A").icon(BitmapDescriptorFactory.fromResource(R.drawable.a)));
}
答案 0 :(得分:2)
我可能首先声明一个静态查找表:
private static final Map<String, Integer> idTagToIcon = new HashMap<String, Integer>();
idTagToIcon.put("A1", R.drawable.a);
idTagToIcon.put("B2", R.drawable.b);
idTagToIcon.put("C3", R.drawable.c);
然后在设置标记的位置和标题时,查找要使用的图标:
BitmapDescriptor icon = null; // some default icon here?
Integer iconDrawableID = idTagToIcon.get(ID); // lookup to get assigned drawable
if(iconDrawableID != null) {
icon = BitmapDescriptorFactory.fromResource(iconDrawableID);
}
mGoogleMap.addMarker(new MarkerOptions().position(latLngGps).title("A").icon(icon));