Надеюсь, у вас все хорошо в вашей области.
Нужна помощь в получении списка почтовых индексов из видимой области пользователя на карте 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))
}
}
}
}
Получено исключение при реализации геокодера
Мне дали ссылку на эту ссылку для вышеуказанной проблемы, а также проверили с реальным устройством, но все еще сталкиваются с той же проблемой при выполнении оператора Geocoder.
Anyoneхочу поделиться со мной знаниями, которые будут мне полезны
Заранее спасибо.