Google会将Marker映射为标题中的位置名称

时间:2016-12-05 05:18:50

标签: android mkreversegeocoder

我是android开发的新手,试图在这里学习。我试图让标记显示在地图上,触摸或点击有效,它还显示纬度和经度。我想将纬度和经度转换为它的相应位置名称,我知道可以使用反向地理编码器,但我只是不知道如何正确编码。

这是我的代码。

    public void onMapReady(final GoogleMap googleMap) {
    mMap = googleMap;

    LatLng sydney = new LatLng(-34, 151);
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));

    mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

        @Override
        public void onMapClick(LatLng point) {

            String address;
            String city;
            mMap.clear();


            Geocoder geocoder;
            List<Address> addresses;

            geocoder = new Geocoder(MapsActivity.this, Locale.getDefault());

            try {
                addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1);

                address = addresses.get(0).getAddressLine(0);
                city = addresses.get(0).getLocality();

                MarkerOptions markerOptions = new MarkerOptions()
                        .position(point)
                        .title(city);

                Marker marker = mMap.addMarker(markerOptions);
                marker.showInfoWindow();

            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    });}

1 个答案:

答案 0 :(得分:0)

如果您想构建像uber或swiggy这样的自定义地方选择器,您必须将服务调用写入Google Places API以检索位置详细信息。您必须进行异步服务调用才能获取放置标记的位置。

如果您想使用Google的帮助,那么您可以选择Google PlacePicker。这在性能和应用程序权重方面都很简单,快速且有效。