0

私はMapViewを持っています。この MapView 内に MapOverlays があります。MapOverlays には、マップ上にプロットされた 2 つのアイコンがあります。GREEN と RED がそれぞれ 1 つずつあります。これらをOPENとCLOSEDの指標にしたい。

設定した「時間」(たとえば myTime) を読み取り、それを SystemTime でチェックして、それが開いているか閉じているかを確認したいと考えています。

擬似コード: IF myTime == SystemTime {ショップ インジケーターが緑のマーカーに変わります} ELSE {ショップ インジケーターが赤のマーケットに変わります}.

MapView に追加したい 2 つのショップのタイミングがわかりました。

これをどのように書きますか?

明確にするための画像を次に示します。

ここに画像の説明を入力

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();
}

お時間をいただきありがとうございます。

4

1 に答える 1

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」ステートメントで囲みます。お役に立てれば。

于 2012-04-22T02:48:11.987 に答える