Получение мест в соответствии с положением камеры на Google Map в Android Studio - PullRequest
0 голосов
/ 28 сентября 2018

В настоящее время я разрабатываю приложение, которое требует размещения в соответствии с текущим положением камеры на карте Google в Android Studio.

Я провел два дня в поисках в Интернете, но большинство из них указывают на использование PlaceDetectionClient.getCurrentPlace () метод, который предоставляет мне только места, окружающие текущее местоположение пользователя или устройства.

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

FetchAddressIntentService.kt

    val geocoder = Geocoder(this, Locale.getDefault())

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

    } catch (ioException: IOException) {
        // Catch network or other I/O problems.
        errorMessage = ioException.message!!
        Log.e("_LOCA", errorMessage, ioException)
    } catch (illegalArgumentException: IllegalArgumentException) {
        // Catch invalid latitude or longitude values.
        errorMessage = illegalArgumentException.message!!
        Log.e("_LOCA", "$errorMessage. Latitude = $location.latitude , " +
                "Longitude =  $location.longitude", illegalArgumentException)
    }

    if (addresses.isEmpty()){
        if (errorMessage.isEmpty()){
            errorMessage = "No address found"
            Log.e("_LOCA", "No address found")
        }
        deliverResultToReceiver(Constants.FAILURE_RESULT, errorMessage)
    }
    else {
        val address = addresses[0]
        val addressFragments = with(address) {
            (0..maxAddressLineIndex).map { getAddressLine(it) }
        }

        deliverResultToReceiver(Constants.SUCCESS_RESULT,
                addressFragments.joinToString(separator = "\n"))
    }

Но он дает мне только адрес всей области, однако я хочу получить результаты, поскольку mPlaceDetection.getCurrentPlace(null) обеспечивает этоНазвание места вокруг местоположения пользователя.

Я также пытался PlaceAutoCompleteApi , но для этого требуется строка запроса , тогда как я хочу получить Places , выполнив следующие действия:

 mMap.setOnCameraIdleListener(object : GoogleMap.OnCameraIdleListener {
        override fun onCameraIdle() {

            var cameraPosition = mMap.cameraPosition
            var latLng = cameraPosition.target

            var location = Location("")
            location.latitude = latLng.latitude
            location.longitude = latLng.longitude
            mCurrentPinLocation = location

            this@LocationTracker.fetchAddressFor(mCurrentPinLocation)

            // Here I want to retrieve Places based on camera
            // position's target location
            this@LocationTracker.showPlacesFor(mCurrentPinLocation)

        }
    })
...