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

时间:2016-08-09 19:08:25

标签: android google-maps google-maps-api-3

我在我的应用程序中添加了谷歌地图。我在谷歌地图上显示当前位置。我现在在我的当前位置显示一个红色标记,我想在弹出窗口上显示标记,我们通常会看到在apps.I尝试了一些方法,但没有一个为我工作。在这里共享代码。

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");



    }

2.我试过的第二种方式

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

                return true;
            }
        });

请告诉我在哪里弄错了。谢谢

4 个答案:

答案 0 :(得分:3)

使用地理编码器

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;
        }
    });

答案 1 :(得分:0)

您可能需要查看Geocoding and Reverse Geocoding

  

地理编码是将地址(例如“1600 Amphitheatre Parkway,Mountain View,CA”)转换为地理坐标(如北纬37.423021和经度-122.083739)的过程,您可以使用它来放置标记在地图上,或定位地图。

     

Reverse Geocoding (Address Lookup) - 术语地理编码通常是指将人类可读地址转换为地图上的某个位置。相反的过程,将地图上的位置转换为人类可读的地址,称为反向地理编码。

尝试

同时检查此tutorial about Google Maps on android

希望这有帮助!

答案 2 :(得分:0)

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

                return true;
            }
        });

答案 3 :(得分:0)

非常简单

只需添加一个标题......

mMap.addMarker(new MarkerOptions().position(
            new LatLng(12.9969284, 80.25792380000007)).title("A2B Car Parking").icon(
            BitmapDescriptorFactory.fromBitmap(BitmapFactory
                    .decodeResource(getResources(),
                            R.drawable.red_icon))).anchor(0.5f, 1f));

希望这有效!