Я не могу отображать фрагменты карты, кроме MAPNIK, с помощью osmdroid, мне нужна более простая картаAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Я не могу отображать фрагменты карты, кроме MAPNIK, с помощью osmdroid, мне нужна более простая карта

Сообщение Anonymous »

Я здесь новичок, я работаю над небольшой GPS-игрой, отображающей простую карту.
Я использую Kotlin с osmdroid 6.1.18
Мне удалось отобразить карту с MAPNIK в качестве источника фрагментов:

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

MapView.setTileSource(TileSourceFactory.MAPNIK)
Карта MAPNIK
Однако на этой карте отображается слишком много информации, с которой люди могут играть.
Я хочу отобразить карта только с дорогами и тропами (может быть, их названиями, но это все!).
Поэтому я попытался отобразить другие карты из тайлов: HIKEBIKEMAP, OPEN_SEAMAP, PUBLIC_TRANSPORT и т. д.
Но все они пустые:
Пустая карта
Я поискал в небольшом FAQ на GitHub и попробовал все решения, связанные с моей проблемой:
  • установка «пользовательского агента»
    создание "network_security_config.xml"
  • проверка разрешений в "AndroidManifest.xml"
Но это ничего не изменило.
Поэтому я попытался использовать режим отладки[/b] из Configuration.getInstance().isDebugMode = true, но я тону от объема информации, которую я получаю в Logcat. Я не знаю, какая ошибка связана с моей проблемой с картой.
Я прекратил поиск в режиме отладки и сосредоточился на настройке TileSource через URL-адреса. вот так. Но карта по-прежнему пуста, даже если я пробовал разные URL-адреса, рекомендованные в других решениях stackoverflow.
Я сомневаюсь, что ссылки на URL-адреса не работают.
У меня нет выбора, и я как бы заблудился. , поэтому я прошу помощи, чтобы просто отобразить более простую карту!
Вот моя основная активность:

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

class MainActivity : ComponentActivity() {
private val REQUEST_PERMISSIONS_REQUEST_CODE = 1
private lateinit var map : MapView
private lateinit var text : TextView
private lateinit var mapController : IMapController

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Configuration.getInstance().apply {
userAgentValue = applicationContext.packageName
load( applicationContext, PreferenceManager.getDefaultSharedPreferences(applicationContext))
// isDebugMode = true  // DEBUG
}

setContentView(R.layout.activity_main)

// DEBUG TextView
//text = findViewById(R.id.debugText)
//Configuration.getInstance().apply {
//    text.append("cacheMapTileCount : $cacheMapTileCount\n" +
//                "cacheMapTileOvershoot : $cacheMapTileOvershoot\n")
//}

// TILES
val tileSource: ITileSource = XYTileSource(
"HOT", 1, 20, 256, ".png", arrayOf(
"http://a.tile.openstreetmap.fr/",
"http://b.tile.openstreetmap.fr/",
"http://c.tile.openstreetmap.fr/"
), "© OpenStreetMap contributors"
)

// Map creation from Tiles
map = findViewById(R.id.map)
map.apply {
setTileSource(tileSource)
setBuiltInZoomControls(true)
overlayManager
}

// Start from this point
val startPoint = GeoPoint(47.9, 1.9)
mapController = map.controller
mapController.setZoom(18.0)
mapController.setCenter(startPoint)

// Display my location
// val mLocationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(applicationContext), map)
// mLocationOverlay.enableMyLocation()
// map.overlays.add(mLocationOverlay)

// Display a compass
// val compassOverlay = CompassOverlay(applicationContext, InternalCompassOrientationProvider(applicationContext), map)
// compassOverlay.enableCompass()
// map.overlays.add(compassOverlay)

// Display lonlat grid
//val overlay = LatLonGridlineOverlay2()
//map.overlays.add(overlay)

// Add map rotation
// val rotationGestureOverlay = RotationGestureOverlay(map)
// rotationGestureOverlay.isEnabled
// map.setMultiTouchControls(true)
// map.overlays.add(rotationGestureOverlay)

// Interest point creation
// var items = mutableListOf()
// var origin = OverlayItem("Statue de Jeanne d'Arc","Héroïne d'Orléans", GeoPoint(47.8,2.0))
//var draw : Drawable = origin.getMarker(0)
// items.add(origin)
// items.add(OverlayItem("3030","Random", GeoPoint(0.1,0.1)))

// Map listener
// val listener = object : OnItemGestureListener  {
//     override fun onItemSingleTapUp(index : Int, item : OverlayItem): Boolean {
//         println("MAP : onItemSingleTapUp")  // DEBUG
//         return true
//     }

//     override fun onItemLongPress(index : Int, item : OverlayItem): Boolean {
//         println("MAP : onItemLongPress")    // DEBUG
//         return false
//     }
// }
// var mOverlay = ItemizedOverlayWithFocus(applicationContext, items, listener)
// mOverlay.setFocusItemsOnTap(true)
// map.overlays.add(mOverlay)

// Inside your activity
/*if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
// Permission is not granted, request it
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
MY_PERMISSIONS_REQUEST_LOCATION
)
}*/

}

override fun onPause() {
super.onPause()
map.onPause()
println("MAP : onPause")  // DEBUG
}

override fun onResume() {
super.onResume()
map.onResume()
println("MAP : onResume") // DEBUG
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
val permissionsToRequest = ArrayList()
var i = 0
while (i < grantResults.size) {
permissionsToRequest.add(permissions[i])
i++
}
if (permissionsToRequest.size > 0) {
ActivityCompat.requestPermissions(
this,
permissionsToRequest.toTypedArray(),
REQUEST_PERMISSIONS_REQUEST_CODE)
}
}

}
Мои разрешения из «AndroidManifest»: Заранее спасибо всем за прочтение и ответы, если вам нужна дополнительная информация, не стесняйтесь.

Подробнее здесь: https://stackoverflow.com/questions/785 ... mplier-map
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Я не могу отображать фрагменты карты, кроме MAPNIK, с помощью osmdroid, мне нужна более простая карта
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Android osmdroid векторные карты
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Android osmdroid векторные карты
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Python-Mapnik на Ubuntu 22.04
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Python-Mapnik на Ubuntu 22.04
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

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