如何创建“打开”和“关闭”指示器?

时间:2012-04-22 02:37:17

标签: java android

我有一个MapView。在这个MapView中我有MapOverlays。 MapOverlay在地图上绘制了两个图标。有一个绿色和一个红色。我想把它们变成OPEN和CLOSED指标。

我想读一下我已设置的“时间”(例如myTime),并使用SystemTime检查它是否打开或关闭。

Pseudocode:IF myTime == SystemTime {商店指标变成绿色标记} ELSE {商店指标转入RED市场}。

我有两个商店的时间要添加到MapView。

我怎么写这个?

这是一张澄清的图片:

enter image description here

public void mapOverlayItems() {

    // Creates a marker based on lat/long values on MapView

            // DIVIDER markerGREEN
    MapView mapView = (MapView) findViewById(R.id.mapView);
    mapOverlays = mapView.getOverlays();
    Drawable drawableBar = getResources().getDrawable(
            R.drawable.markergreen);
    mapOverlayBar = new MapOverlayActivity(drawableBar, mapView);


    GeoPoint sirius = new GeoPoint((int) (52.63274 * 1E6),
            (int) (-1.13145 * 1E6));
    OverlayItem siriusbaricon = new OverlayItem(sirius, "Sirius", "Bar");
    mapOverlayBar.addOverlay(siriusbaricon);

    mapOverlays.add(mapOverlayBar);
    mapView.invalidate();

  //DIVIDER markerRed

Drawable drawableBank = getResources()
            .getDrawable(R.drawable.markerred);
    mapOverlayBanks = new MapOverlayActivity(drawableBank, mapView);
    GeoPoint natwest = new GeoPoint((int) (52.63440 * 1E6),
            (int) (-1.1314 * 1E6));
    OverlayItem natwesticon = new OverlayItem(natwest, "Natwest", "Bank");
    mapOverlayBanks.addOverlay(natwesticon);
    mapOverlays.add(mapOverlayBanks);
    mapView.invalidate();
}

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码为地图上的任何点设置标记。

int lat = some number;
int lng = some number;

GeoPoint point = new GeoPoint(lat, lng);

MapView map = (MapView) findViewById(R.id.mapView);
List<Overlay> overlays = map.getOverlays();
overlays.add(new DrawableMapOverlay(this, point, R.drawable.mapmarker));

最后一行实际上将标记放在地图上。我会将最后一行包装在“if / else”语句中,以便您可以选择自定义drawable。希望这会有所帮助。