Android OSM mapView.zoomToBoundingBoxAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android OSM mapView.zoomToBoundingBox

Сообщение Anonymous »

У меня есть приложение, которое анализирует файлы gpx и отображает маршруты в MapView. Для карты я использую OpenStreetMap.

Код: Выделить всё

private fun setBoundingBox(points: List) = with(binding){
val latitudes = points.map { it.latitude }
val longitudes = points.map { it.longitude }

val boundingBox = BoundingBox(latitudes.max(), longitudes.max(), latitudes.min(), longitudes.min())
mapView.zoomToBoundingBox(boundingBox, true)
mapView.controller.setZoom(mapView.zoomLevelDouble - 0.5)
mapView.invalidate()
}
Мне нужно отодвинуть карту на масштаб BoundingBox - 0,5 (например X-0,5). Метод ZoomToBoundingBox не позволяет этого сделать, потому что он устанавливает для Zoom значение X. Если использовать mapView.zoomLevelDouble — 0.5, то ничего не меняется, Zoom устанавливается в значение X. Если отключить анимацию, все работает, но мне нужна анимация. Я так понимаю, это потому, что ZoomToBoundingBox не завершил анимацию. Если вы дождетесь его завершения и установите mapView.controller.setZoom(mapView.zoomLevelDouble - 0.5), тогда масштаб перескочит (например, 15->14.5->15)

Подробнее здесь: https://stackoverflow.com/questions/791 ... oundingbox
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»