在谷歌地图的Marker上显示当前位置/地址/区域名称



我创建了一个基本应用程序,它显示谷歌地图和标记。标记出现在地图上,清除我单击的前一个位置。现在,无论我在谷歌地图上点击哪里,我都试图在标记上显示位置名称/地址/区域名称。但不幸的是,我的申请被关闭了。我用了一个临时的祝酒词来确认展示。我使用的监听器是:

Temporary.java文件

googleMap.setOnMarkerClickListener(new OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                 List<Address> address = null;
                 Geocoder geocode;
                // TODO Auto-generated method stub
                geocode = new Geocoder(Temporary.this,Locale.getDefault());
                try {
                    address=geocode.getFromLocation(currentGPS.latitude, currentGPS.longitude, 1);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                String address1=address.get(0).getCountryName();
                Toast.makeText(Temporary.this,address1, Toast.LENGTH_LONG).show();
                return false;
            }
        });

我又尝试了一个Listener,如下所示:

        googleMap.setOnMapClickListener(new OnMapClickListener() {
        @Override
        public void onMapClick(LatLng point) {
            List<Address> address = null;
             Geocoder geocode;
            // TODO Auto-generated method stub
            geocode = new Geocoder(Temporary.this,Locale.getDefault());
            try {
                address=geocode.getFromLocation(point.latitude, point.longitude, 1);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             MarkerOptions markerOptions = new MarkerOptions();
             markerOptions.position(point);
             markerOptions.title("Area Name :"+address.get(0).getLocality());
             googleMap.clear();
             googleMap.addMarker(markerOptions);
        }
    });

它仍然不起作用。我哪里搞错了?

我希望这个链接能帮助你http://wptrafficanalyzer.in/blog/android-reverse-geocoding-at-touched-location-in-google-map-android-api-v2/

您可以在地图上设置一个InfoWindow,并根据当前选择进行自定义。

        map.setInfoWindowAdapter(new InfoWindowAdapter() {
                    @Override
                    public View getInfoWindow(Marker arg0) {
                        return null;
                    }
                    @Override
                    public View getInfoContents(Marker arg0) {
                        currentInfo = getLayoutInflater().inflate(R.layout.info_layout, null);
                        //Do what you want with the view
                        return currentInfo;
                    }
        }

记住标记有自己的位置、标题、颜色等。

最新更新