2013-06-28 8 views
0

Я пытался получить списки мест из мест google и показать их в googlemap api v2. Также я хочу показать infowindow, но здесь я могу только справиться с ссылкой на место через аргумент информационного окна. И проблема в том, что инфоустановка покажет ссылку. Это неприятная вещь. Я не хочу показывать его внутри infowindow, но я хочу, чтобы ссылка внутри этого infowindow clicklistener для перехода к методу, как я это делаю? Любая помощь приветствуется ...Не хочу показывать ссылку внутри infowindow

Код

for(Place place : nearPlaces.results){ 

        // Creating a marker 
         MarkerOptions markerOptions = new MarkerOptions(); 

         // Getting latitude of the place 
         double latitude = place.geometry.location.lat;  
         double longitude = place.geometry.location.lng; 

         // Getting name 
         String NAME = place.name; 
         // Getting vicinity 
         String VICINITY = place.vicinity; 
         //Reference of a place 
         String REFERENCE = place.reference; 
         LatLng latLng = new LatLng(latitude, longitude); 
         // Setting the position for the marker 
         markerOptions.position(latLng); 
         // Setting the title for the marker. 
         markerOptions.title(NAME + " : " + VICINITY);     
         markerOptions.snippet(REFERENCE); 
         markerOptions.icon(bitmapDescriptor); 

         // Placing a marker on the touched position 
        final Marker marker = mGoogleMap.addMarker(markerOptions); 
         mGoogleMap.setOnInfoWindowClickListener(
            new OnInfoWindowClickListener(){ 
            @Override 
            public void onInfoWindowClick(Marker arg0) { 
             // TODO Auto-generated method stub 
             arg0.hideInfoWindow(); 
             double dlat=arg0.getPosition().latitude; 
             double dlon=arg0.getPosition().longitude; 
            alert.showpickAlertDialog2(PlacesMapActivity.this,dlat , dlon, arg0.getSnippet()); 
            } 
            } 
           ); 

ответ

1

Держите Map<Marker, Place> & не ставить ссылки в сниппет.

Когда информационное окно щелкнул, посмотреть на маркер на карте и получить соответствующее место

HashMap<Marker, Place> markerPlaces = new HashMap<Marker, Place>(); 
for(Place place : nearPlaces.results){ 

       // Creating a marker 
        MarkerOptions markerOptions = new MarkerOptions(); 

        // Getting latitude of the place 
        double latitude = place.geometry.location.lat;  
        double longitude = place.geometry.location.lng; 

        // Getting name 
        String NAME = place.name; 
        // Getting vicinity 
        String VICINITY = place.vicinity; 
        //Reference of a place 
        String REFERENCE = place.reference; 
        LatLng latLng = new LatLng(latitude, longitude); 
        // Setting the position for the marker 
        markerOptions.position(latLng); 
        // Setting the title for the marker. 
        markerOptions.title(NAME + " : " + VICINITY);     
        markerOptions.icon(bitmapDescriptor); 

        // Placing a marker on the touched position 
       final Marker marker = mGoogleMap.addMarker(markerOptions); 
        markerPlaces.put(marker, place); 
        mGoogleMap.setOnInfoWindowClickListener(
           new OnInfoWindowClickListener(){ 
           @Override 
           public void onInfoWindowClick(Marker arg0) { 
            // TODO Auto-generated method stub 
            arg0.hideInfoWindow(); 
            double dlat=arg0.getPosition().latitude; 
            double dlon=arg0.getPosition().longitude; 
            Place p = markerPlaces.get(marker); 
           alert.showpickAlertDialog2(PlacesMapActivity.this,dlat , dlon, p.reference); 
           } 
           } 
          ); 

Или, в данном случае, вы могли бы сделать последнюю ссылку размещать и использовать его в onInfoWindowClick :

for(Place place : nearPlaces.results){ 

       // Creating a marker 
        MarkerOptions markerOptions = new MarkerOptions(); 

        // Getting latitude of the place 
        double latitude = place.geometry.location.lat;  
        double longitude = place.geometry.location.lng; 

        // Getting name 
        String NAME = place.name; 
        // Getting vicinity 
        String VICINITY = place.vicinity; 
        //Reference of a place 
        String REFERENCE = place.reference; 
        LatLng latLng = new LatLng(latitude, longitude); 
        // Setting the position for the marker 
        markerOptions.position(latLng); 
        // Setting the title for the marker. 
        markerOptions.title(NAME + " : " + VICINITY);     
        markerOptions.icon(bitmapDescriptor); 

        // Placing a marker on the touched position 
       final Marker marker = mGoogleMap.addMarker(markerOptions); 
       final Place p = place; 
        markerPlaces.put(marker, place); 
        mGoogleMap.setOnInfoWindowClickListener(
           new OnInfoWindowClickListener(){ 
           @Override 
           public void onInfoWindowClick(Marker arg0) { 
            // TODO Auto-generated method stub 
            arg0.hideInfoWindow(); 
            double dlat=arg0.getPosition().latitude; 
            double dlon=arg0.getPosition().longitude; 
           alert.showpickAlertDialog2(PlacesMapActivity.this,dlat , dlon, p.reference); 
           } 
           } 
          ); 
+0

я не понимаю, если дать дополнительные пояснения или пример лучше –

+0

первую часть ответа по-прежнему дает тот же эффект, как я уже упоминал в моем question.And вторая часть ответа совершенно неправильно потому что мы не можем получить доступ к ссылке v в этом случае может быть загружен в информационном окне клик-прослушиватель. –