我有一个 map View 。在这个 MapView 中我有 MapOverlays。 MapOverlays 在 map 上绘制了两个图标。有一颗绿色和一颗红色。我想将它们制作成 OPEN 和 CLOSED 指标。
我想读取我设置的“时间”(例如 myTime),并使用 SystemTime 检查它是否打开或关闭。
伪代码:IF myTime == SystemTime { 商店指示器变成绿色标记 } ELSE { 商店指示器变成红色市场 }。
我有要添加到 MapView 的两家商店的时间安排。
我该如何写这个?
这是一张用于澄清的图片:
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();
}
感谢您的宝贵时间。
最佳答案
您可以使用以下代码为 map 上的任何点设置标记。
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));
最后一行实际上将标记放置在 map 上。我会将最后一行包装在“if/else”语句中,以便您可以选择自定义可绘制对象。希望这会有所帮助。
关于java - 如何创建 "Open"和 "Closed"指标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264752/