我创建了一个自定义的OverlayItem类,这样我就可以拥有一种OverlayItem类型,其Drawable标记会根据我传入的某些数据的状态而设置自己。
我试图通过在OverlayItem类中使用setMarker方法来实现这一点。但是第一次尝试失败后,我尝试重写getMarker方法,并让它返回适当的标记以表示数据。
这两种尝试都以地图上没有任何东西被绘制而结束...然而,如果它们被注释掉,则标记会正常绘制(除了它们当然使用默认标记,这不是我想要的)。
以下是我的自定义OverlayItem类代码(我尝试过的已注释掉的方法并没有起作用):
有没有一种方法可以实现我试图做的事情...还是我需要为我的数据状态创建对应的唯一的OverlayItem类?(呃)
我试图通过在OverlayItem类中使用setMarker方法来实现这一点。但是第一次尝试失败后,我尝试重写getMarker方法,并让它返回适当的标记以表示数据。
这两种尝试都以地图上没有任何东西被绘制而结束...然而,如果它们被注释掉,则标记会正常绘制(除了它们当然使用默认标记,这不是我想要的)。
以下是我的自定义OverlayItem类代码(我尝试过的已注释掉的方法并没有起作用):
private class MyOverlayItem extends OverlayItem {
private Context mContext;
private MyData mData;
public MyOverlayItem(GeoPoint point, MyData data, Context context) {
super(point, data.getWhat(), data.getWhere());
this.mContext = context;
this.mData = data;
/*if(data.getTemp() > 200)
this.setMarker(res.getDrawable(R.drawable.icon_data_hot_l));
else if(data.getTemp() > 100)
this.setMarker(res.getDrawable(R.drawable.icon_data_neutral_l));
else
this.setMarker(res.getDrawable(R.drawable.icon_data_frozen_l));*/
}
/*@Override
public Drawable getMarker(int stateBitset) {
Resources res = this.mContext.getResources();
if(this.mData.getTemp() > 200)
return res.getDrawable(R.drawable.icon_data_hot_l);
else if(this.mData.getTemp() > 100)
return res.getDrawable(R.drawable.icon_data_neutral_l);
return res.getDrawable(R.drawable.icon_data_frozen_l);
}*/
}
有没有一种方法可以实现我试图做的事情...还是我需要为我的数据状态创建对应的唯一的OverlayItem类?(呃)