Получить список почтовых индексов из видимого региона в Google Map Android - PullRequest
0 голосов
/ 03 октября 2018

Надеюсь, у вас все хорошо в вашей области.

Нужна помощь в получении списка почтовых индексов из видимой области пользователя на карте Google, для которой у меня есть видимая область. ссылка для получения видимой области

Сейчас я пытаюсь получить адрес, используя геокодер и значение видимой области, но я получаю исключение.

Здесь я покажу свой код. [Работает в Котлине]

MainActivity.kt

import android.Manifest
import android.annotation.SuppressLint
import android.content.pm.PackageManager
import android.location.Geocoder
import android.os.Bundle
import android.support.v4.app.ActivityCompat
import android.support.v4.content.ContextCompat
import android.support.v7.app.AppCompatActivity
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng


class MapActivity : AppCompatActivity(), OnMapReadyCallback {

    var map: SupportMapFragment? = null
    var googleMap: GoogleMap? = null
    var MY_LOCATION_REQUEST_CODE: Int = 201

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_map)
    }


    override fun onResume() {
        super.onResume()
        if (map == null) {
            map = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
            map!!.getMapAsync(this)
        }
    }

    override fun onMapReady(googleMap: GoogleMap?) {
        this.googleMap = googleMap

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {

            googleMap!!.isMyLocationEnabled = true

            this.googleMap!!.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(37.422, -122.084), 14.0f))

            getAddressListfromVisibleRegion()

        } else {
            ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), MY_LOCATION_REQUEST_CODE)
        }
    }

    private fun getAddressListfromVisibleRegion() {
        var vregion = googleMap!!.projection.visibleRegion.latLngBounds

        var addressList = Geocoder(this).getFromLocationName("", 100,
                vregion.southwest.latitude, vregion.southwest.longitude,
                vregion.northeast.latitude, vregion.northeast.longitude)

        /*

        val ne = vregion.northeast // LatLng of the north-east corner
        val sw = vregion.southwest // LatLng of the south-west corner
        val nw = LatLng(ne.latitude, sw.longitude)
        val se = LatLng(sw.latitude, ne.longitude)

        var addressList1 = Geocoder(this).getFromLocationName("", 100,
                nw.latitude, nw.longitude, se.latitude, se.longitude)

         */
    }


    @SuppressLint("MissingPermission")
    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        if (requestCode == MY_LOCATION_REQUEST_CODE) {
            if (permissions.size == 1 &&
                    permissions[0] == Manifest.permission.ACCESS_FINE_LOCATION &&
                    grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                googleMap!!.isMyLocationEnabled = true
                this.googleMap!!.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(37.422, -122.084), 14.0f))
            }
        }
    }
}

Получено исключение при реализации геокодера

enter image description here

Мне дали ссылку на эту ссылку для вышеуказанной проблемы, а также проверили с реальным устройством, но все еще сталкиваются с той же проблемой при выполнении оператора Geocoder.

Anyoneхочу поделиться со мной знаниями, которые будут мне полезны

Заранее спасибо.

...