-6

我是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();
            }

        }
    });}
4

2 回答 2

0

您可以使用集合框架来映射(匹配)带有标记的地址。例如,映射«字符串,字符串»地址匹配;第一个字符串将是标记 id:每当您创建标记 getid() 并将其与地址放在集合映射对象中时。这样,您可以在单击标记时按 id 搜索

于 2016-12-05T06:03:49.677 回答
0

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

如果您想使用 Google 的帮助,那么您可以使用Google PlacePicker。这在性能和应用程序重量方面非常简单、快速且高效。

于 2016-12-05T05:56:08.233 回答