-6

私はここで学ぼうとしているアンドロイド開発の初心者です。タッチまたはタップでマーカーをマップに表示しようとしていますが、緯度と経度も表示されます。これらの緯度と経度をそれぞれの場所の名前に変換したいのですが、Reverse Geocoder で可能であることはわかっていますが、正しくコーディングする方法がわかりません。

これが私のコードです。

    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

uber や swiggy などのカスタム プレイス ピッカーを作成する場合は、場所の詳細を取得するために Google Places API へのサービス呼び出しを記述する必要があります。配置されたマーカーの位置を取得するには、非同期サービス呼び出しを行う必要があります。

Google のヘルプを使用する場合は、Google PlacePickerを使用できます。これは、パフォーマンスとアプリの重量の点で、簡単、高速、効率的です。

于 2016-12-05T05:56:08.233 に答える