2013-09-30 64 views
0

我正在使用Google Maps Extension Library。我有這個:未在標記infowindow上獲取數據單擊GoogleMap v2 android

int nsize = visibleMarkers.size(); 
       for (int i = 0; i < nsize; i++) { 
        String title = visibleMarkers.valueAt(i).getTitle(); 
        String desc = visibleMarkers.valueAt(i).getDesc(); 
        Float latitude = visibleMarkers.valueAt(i).getLat(); 
        Float longitude = visibleMarkers.valueAt(i).getLon(); 

        m = map.addMarker(new MarkerOptions() 
          .position(new LatLng(latitude, longitude)) 
          .title(title) 
          .icon(BitmapDescriptorFactory 
            .fromResource(R.drawable.snotel_marker))); 

       } 

和地圖得到填充罰款與所有的標記。

我試圖將數據添加到舉杯看到點擊來自打標窗口的說明和標題:

map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { 

          @Override 
          public void onInfoWindowClick(Marker marker) { 
           Toast.makeText(MainActivity.this, 
             "Title: " + visibleMarkers.valueAt(i).getTitle(), 
             Toast.LENGTH_SHORT).show(); 
          } 
         }); 

當我加入這個setOnInfoWindow監聽器,i變量需要爲final。我想從我的visibleMarkers SparseArray中獲得標記的標題,但我無法弄清楚如何從標記點擊數據中獲取數據。我知道desc有信息,因爲使用.snippet(desc)顯示標記點擊的信息。

我在這裏錯過了什麼?

編輯:::

我改變了我的onPostExecute添加標記M和我的數據到另一個陣列:

int nsize = visibleMarkers.size(); 
       for (int i = 0; i < nsize; i++) { 
        MapMarkers marks = new MapMarkers(); 
        String title = visibleMarkers.valueAt(i).getTitle(); 
        String desc = visibleMarkers.valueAt(i).getDesc(); 
        Float latitude = visibleMarkers.valueAt(i).getLat(); 
        Float longitude = visibleMarkers.valueAt(i).getLon(); 

        m = map.addMarker(new MarkerOptions() 
          .position(new LatLng(latitude, longitude)) 
          .title(title) 
          .icon(BitmapDescriptorFactory 
            .fromResource(R.drawable.snotel_marker))); 

        marks.setTitle(title); 
        marks.setDesc(desc); 

        markerInfo.put(m, marks); 

        map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() { 
         @Override 
         public void onInfoWindowClick(Marker marker) { 

          MapMarkers markInfo = markerInfo.get(marker); 

          Intent i = new Intent(MainActivity.this, 
            MarkerInformation.class); 
          i.putExtra("name", markInfo.getTitle()).putExtra(
            "description", markInfo.getDesc()); 
          i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
          startActivity(i); 

         } 

        }); 
       } 

不似乎正確的嗎?

回答

2

首先在你的setOnInfoWindowClickListener「我」已與標記你按沒有關係,與的唯一連接是在onInfoWindowClick方法通過對象。 您可以直接從其中有你所需要的,如果你不想要這個請說明您更多的問題數據本標記對象獲取數據

+0

我如何獲取此信息? visibleMarkers。???我沒有看到任何給我提供數據的東西。感謝您的迴應。 – jasonflaherty

+0

@jasonflaherty mark.getTitle()如何? –

+0

是啊,試試@MaciejGórski說'marker.getTitle()'其中標記是你從'onInfoWindowClick'方法收到的對象 –

1

試試這個

Toast.makeText(MainActivity.this, "Title: " + m.getTitle(), Toast.LENGTH_SHORT).show(); 

注意m必須在外面申報。

+0

非常感謝swati,但是我無法得到desc。現在正在......看到更新。 – jasonflaherty

相關問題