我在地图上显示标记。我不知道如何为不同的标记指定不同的可绘制资源?如何在地图上显示不同的标记?
我想显示一个绿色的针,如果位置距离< 50,等等,等等
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,有关扩展ItemizedOverlay什么?你会不会因为任何原因而推荐这条路线? – McStretch 2010-11-15 21:52:52
@McStretch:你可以重载'onDraw()'。然而,恕我直言,它似乎更有意义的一个'OverlayItem'具有业务逻辑的图标使用,而不是'ItemizedOverlay'必须有所有这些规则。但是,这是基于有限的设计信息,所以在这种情况下,我的直觉本能可能是错误的。 – CommonsWare 2010-11-15 22:09:34
为什么我不能调用overlayItem.setMarker(drawable)? //不工作顺便说一句 – 2010-11-15 23:18:10