Hybrid Developer
Hybrid Developer

Reputation: 2340

Google places retrieves same value in all the execution

I was working with a Google map v2 oriented android project. In my program i retrieves the name,vicinity,latitude&longitude from the places api while touching on the info boxes of the markers.But it every time retrieves the same value.But it shows the correct result in the info boxes.How to solve this bug .Someone please solve this.

Code

            for(final 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;

             //final String REFERENCE = place.reference;
                final String slat = String.valueOf(latitude);
                   final String slon = String.valueOf(longitude);

               LatLng latLng = new LatLng(latitude, longitude);

                // Setting the position for the marker
                markerOptions.position(latLng);


                // Setting the title for the marker. 
                //This will be displayed on taping the marker
                markerOptions.title(NAME + " : " + VICINITY);    

                markerOptions.icon(bitmapDescriptor);

                // Placing a marker on the touched position
             mGoogleMap.addMarker(markerOptions); 

                mGoogleMap.setOnInfoWindowClickListener(
                          new OnInfoWindowClickListener(){
                            @Override
                            public void onInfoWindowClick(Marker arg0) {
                                // TODO Auto-generated method stub
                                arg0.hideInfoWindow();
                            alert.showpickAlertDialog2(PlacesMapActivity.this, slat, slon, place.reference,KEY_TAG);    
                            }
                          }
                        );
            }
               LatLng mylatLng = new LatLng(mylatitude, mylongitude);

             // Creating CameraUpdate object for position
                CameraUpdate updatePosition = CameraUpdateFactory.newLatLng(mylatLng);

                // Creating CameraUpdate object for zoom
                CameraUpdate updateZoom = CameraUpdateFactory.zoomBy(10);

                // Updating the camera position to the user input latitude and longitude
                mGoogleMap.moveCamera(updatePosition);

                // Applying zoom to the marker position
                mGoogleMap.animateCamera(updateZoom);

Upvotes: 1

Views: 142

Answers (2)

MaciejGórski
MaciejGórski

Reputation: 22232

What you are doing wrong is setting OnInfoWindowClickListener in a loop.

Take that code outside and retrieve slat and slon from Marker arg0 by using getPosition.

Upvotes: 1

HalR
HalR

Reputation: 11083

There are other people who are struggling with this issue as well.

You are assuming that the slat and slong values are going to carry through to the onInfoWindowClick() method, but you are always getting the same values there.

Here is a discussion some other folks were having on this topic.

Upvotes: 0

Related Questions