2013-06-08 22 views
17

(GoogleマップのAndroid APIのV2):の追加カスタムプロパティGoogleマップのAPI V3を使用している場合、私は次のようにカスタムプロパティを追加することができます

var marker = new google.maps.Marker({ 
    position: userLocation, 
    map: myGoogleMap, 
    animation: google.maps.Animation.DROP, 
    icon: avatar, 
    title: userName, 
    customProperty1: bla, 
    customProperty2: bla, 
    customProperty3: bla, 
    ... 

});

私はAPI V2 Androidでも同じことができるのだろうかと思っています。なぜなら、これをやりたいのは、各マーカーの情報ウィンドウがそのマーカーの情報を知る必要があるからです。そして、私は以下のrender機能でこれを達成しようとしている:それは、最終的なクラスであるため

private void render(Marker marker, View view) { 
     int badge = R.drawable.android_face; 

     if (marker.customProperty) 
     //here I need to know this property to decide which image to use   
         badge = R.drawable.bla; 

     ((ImageView) view.findViewById(R.id.badge)) 
        .setImageResource(badge); 

} 
+0

はここ http://stackoverflow.comにしてみてください/ questions/14811579/android-map-api-v2-custom-marker-with-imageview – user2725663

答えて

41

は、あなたが直接、Markerを延長することはできませんが、いくつかのオプションがあります:グーグルのとおり

0)をAndroid API v2バージョン9.4.0をマップするには、Marker::getTagMarker::setTagを使用できます。これは、最も一般的なオプションです。

1)すべての追加情報を格納するためのマップを作成します。

private Map<Marker, MyData> allMarkersMap = new HashMap<Marker, MyData>(); 

マーカーを作成する場合は、あなたのデータをこのマップに追加します。

Marker marker = map.addMarker(...); 
allMarkersMap.put(marker, myDataObj); 

後でrender機能で:

MyData myDataObj = allMarkersMap.get(marker); 
if (myDataObj.customProp) { ... 

2)もう1つの方法は、Stringとしてすべての情報を保存し、後でそれを解析するためにMarker.snippetを使用することですが、それはちょっと醜い、維持不能な解決策です。

3)プレーンGoogleマップAndroid API v2からAndroid Maps Extensionsに切り替える。

これは、1を指すように非常に似ていますが、直接

marker.setData(myDataObj); 

以降を使用して、マーカーにMyDataを保存することができます

MyData myDataObj = (MyData) marker.getData(); 
+1

thx〜私は最後に最初の方法を選びました。 v2で拡張が許可されない理由は何ですか? – Arch1tect

+0

@ Arch1tect実際の作業を行うために別々のプロセスを使用するという決定に基づいてデザインを選択します。対話するオブジェクトは、プロキシ以外何もありません。 –

+0

@ MaciejGorski Pls。私の質問を確認する方法私はpercularピンのクリックでPropertyIDを得ることができます [http://stackoverflow.com/questions/20784094/get-custom-class-data-information-on-map-v2-popupclick-event-in-android] (http://stackoverflow.com/questions/20784094/get-custom-class-data-information-on-map-v2-popupclick-event-in-android) –

関連する問題