1

當用戶點擊某個標記的infowindow時,如何獲取位置的placeID?我創建了一個搜索附近地點(例如醫院)的應用程序。我想要做的是通過點擊infowindow來獲得某個位置的地點,以便我能夠獲取某個地點的詳細信息。任何幫助,將不勝感激。謝謝!獲取infowindow上某個位置的placeid點擊

+0

發現是否有返回效應初探從谷歌Places API的地方ID? – Mrinmoy

+0

看到這個http://www.androidtrainee.com/showing-nearby-places-and-place-details-using-google-places-api-and-google-maps-android-api-v2/它有一個詳細的方法解析附近的地方數據 – rafsanahmad007

+0

@ rafsanahmad007我試圖遵循該代碼。請檢查我的這個其他職位,我真的無法顯示的機構的電話號碼 – Gelly

回答

2

雖然添加標記存放處ID(如果有的話,你在JSON/XML響應越來越),在這樣的標記snipet,

marker.setSnippet(placeId); 

然後在信息窗口中點擊從Marker對象得到它

onInfowindowClick(Marker marker){ 
int placeId = marker.getSnippet(); 
//now you can use it to call anyother service call 
} 

但我的問題是,你得到的地方標識,因爲它不是從你的問題

enter image description here

012明朗

看到它有它看,如果你可以使用它的突出部分,不能肯定,對不起

,如果它是ussable,你需要分析JSON響應得到的id值

+0

我怎樣才能從JSON文件獲取placeid? – Gelly

0

你必須創建一個標記是這樣的:

Marker marker = mMap.addMarker(new MarkerOptions() 
         .position(new LatLng(40.714224, -73.961452)) 
         .title("Title") 
         .snippet("Description") 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon))); 
       marker.setTag("PlaceId"); 

然後:

Marker markerClicked; 
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
        @Override 
        public boolean onMarkerClick(Marker marker) { 
         // Retrieve the data from the marker. 
         String clickTag = (String) marker.getTag(); 


         if (clickTag != null) { 
         // do something 
          Toast.makeText(MainActivity.this, marker.getTitle() + " è stato cliccato. Tag: " + clickTag + ".", Toast.LENGTH_SHORT).show(); 
          markerClicked= marker; 
         } 
         return false; 
        } 
       }); 

googleMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { 
        @Override 
        public void onInfoWindowClick(Marker marker) { 
         Double lat= marker.getPosition().latitude; // 40.714224 
         Double longit= marker.getPosition().longitude; // -73.961452 
// and then call this url: 
// "http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452" 
        } 
       }); 

PS:private GoogleMap googleMap;是活動的領域,設置像GoogleMap mMap,你可以在

MapView mMapView.getMapAsync(new OnMapReadyCallback() { 
      @Override 
      public void onMapReady(GoogleMap mMap) { 
       googleMap = mMap; 
       ... 
       } 
+0

這與問題有什麼關係?先閱讀問題... – rafsanahmad007

相關問題