1

Есть ли способ, как получить placeID места, когда пользователь нажимает на infowindow маркера? Я создал приложение, которое ищет близлежащие места (например, больница). Я хочу сделать это, чтобы получить место в определенном месте, нажав на infowindow, чтобы я мог получить информацию о определенном месте. Любая помощь будет оценена по достоинству. Благодаря!Получить место в месте на infowindow нажмите

+0

находится там место идентификатор, возвращаемый в réponse из API Google Адресов? – 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

При добавлении маркеров хранения место идентификатора (если вы получаете в JSon/ответ XML), в snipet маркеров, как это,

marker.setSnippet(placeId); 

затем щелчок InfoWindow получить от объекта Marker

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

Но мой вопрос вы получаете место Id, потому что это не ясно из вашего вопроса

enter image description here

см выделенный участок имеет его увидеть, если вы можете использовать его, не уверен, извините

и если это ussable, вам нужно разобрать ответ JSON, чтобы получить значение идентификатора

+0

Как я могу получить placeid из файла JSON? – 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