From a4de81aaf6b79d64e1c17d98f9aa1729eee80f0c Mon Sep 17 00:00:00 2001 From: daplugg23 Date: Thu, 5 Feb 2026 16:52:41 -0600 Subject: [PATCH] fix(location): correct Google Maps tile source implementation Replace XYTileSource with OnlineTileSourceBase anonymous object to correctly handle Google Maps query parameter format (&x=...&y=...&z=...) instead of path-based format (/z/x/y.png). - Use correct tile servers (mt0-mt3) - Override getTileURLString to construct valid Google Maps URLs --- .../me/eternal/purrfectsnap/ui/util/AlertDialogs.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/me/eternal/purrfectsnap/ui/util/AlertDialogs.kt b/app/src/main/kotlin/me/eternal/purrfectsnap/ui/util/AlertDialogs.kt index 07797b89..94f30650 100644 --- a/app/src/main/kotlin/me/eternal/purrfectsnap/ui/util/AlertDialogs.kt +++ b/app/src/main/kotlin/me/eternal/purrfectsnap/ui/util/AlertDialogs.kt @@ -57,9 +57,10 @@ import me.eternal.purrfectsnap.ui.manager.theme.PurrfectPalette import okhttp3.OkHttpClient import okhttp3.Request import org.osmdroid.config.Configuration +import org.osmdroid.tileprovider.tilesource.OnlineTileSourceBase import org.osmdroid.tileprovider.tilesource.TileSourceFactory -import org.osmdroid.tileprovider.tilesource.XYTileSource import org.osmdroid.util.GeoPoint +import org.osmdroid.util.MapTileIndex import org.osmdroid.views.CustomZoomButtonsController import org.osmdroid.views.MapView import org.osmdroid.views.overlay.Marker @@ -614,11 +615,15 @@ class AlertDialogs( setMultiTouchControls(true) zoomController.setVisibility(CustomZoomButtonsController.Visibility.NEVER) val tileSource = if (locationSearchProvider == "google_maps") { - XYTileSource( + object : OnlineTileSourceBase( "GoogleMaps", 0, 19, 256, ".png", - arrayOf("https://mt0.google.com/vt/lyrs=m&x=", "https://mt1.google.com/vt/lyrs=m&x=") - ) + arrayOf("https://mt0.google.com/vt/lyrs=m", "https://mt1.google.com/vt/lyrs=m", "https://mt2.google.com/vt/lyrs=m", "https://mt3.google.com/vt/lyrs=m") + ) { + override fun getTileURLString(pMapTileIndex: Long): String { + return baseUrl + "&x=" + MapTileIndex.getX(pMapTileIndex) + "&y=" + MapTileIndex.getY(pMapTileIndex) + "&z=" + MapTileIndex.getZoom(pMapTileIndex) + } + } } else { TileSourceFactory.MAPNIK }