1

地図上にマーカーを表示しています。マーカーごとに異なる描画可能リソースを指定する方法がわかりませんか?

場所の距離が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
            }
4

3 に答える 3

4

setMarker()を使用することができました。回答#3を参照してください。

GoogleAndroidマップ上の異なる名前のマーカー

于 2010-11-17T03:55:02.010 に答える
3

setMarkerメソッドが正しく機能するための解決策を見つけました。

Drawable drawable = getResources().getDrawable(R.drawable....);  
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  
overlayItem.setMarker(drawable); 
于 2012-11-09T09:15:53.863 に答える
1

ステップ1:独自のサブクラスを作成するOverlayItem

ステップ2:getMarker()必要な画像を上書きして返す

これを示すサンプルプロジェクトを次に示します。

于 2010-11-15T21:48:39.697 に答える