在android中的谷歌地图中点击标记显示地址?

Tec*_*ain 1 android google-maps google-maps-api-3

我在我的应用程序中添加了谷歌地图。我在谷歌地图上显示当前位置。我现在在我的当前位置上显示一个红色标记,点击标记我想在弹出窗口中显示标记上方的地址,就像我们通常在应用程序中看到的那样。我尝试了一些方法,但没有一个对我有用。在这里分享代码。

1.我尝试的第一种方式

  @Override
    public void onLocationChanged(Location location) {

        mMap.clear();
        latitude = location.getLatitude();
        longitude = location.getLongitude();
        MarkerOptions mo=new MarkerOptions();
        LatLng latLng = new LatLng(latitude, longitude);
        marker=mMap.addMarker(mo.position(latLng));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
        mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
        mo.title("Current Location");



    }
Run Code Online (Sandbox Code Playgroud)

2.我尝试的第二种方式

   mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker arg0) {
                String title = "Any Thing You want";
                marker.setTitle(title);

                return true;
            }
        });
Run Code Online (Sandbox Code Playgroud)

请告诉我在这里错在哪里。谢谢

And*_*ini 5

使用地理编码器

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            Geocoder geocoder = new Geocoder(this,Locale.getDefault());
            addresses = geocoder.getFromLocation(marker.getPosition().latitude(), marker.getPosition().longitude(), 1); //1 num of possible location returned
            String address = addresses.get(0).getAddressLine(0); //0 to obtain first possible address 
            String city = addresses.get(0).getLocality();
            String state = addresses.get(0).getAdminArea();
            String country = addresses.get(0).getCountryName();
            String postalCode = addresses.get(0).getPostalCode();
            //create your custom title
            String title = address +"-"+city+"-"+state;
            marker.setTitle(title);
            marker.showInfoWindow();
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)