diff --git a/lib/dev_config.dart b/lib/dev_config.dart index 18adfd8..70d53b1 100644 --- a/lib/dev_config.dart +++ b/lib/dev_config.dart @@ -6,6 +6,11 @@ import 'package:flutter/material.dart'; // Fallback tile storage estimate (KB per tile), used when no preview tile data is available const double kFallbackTileEstimateKb = 25.0; +// Preview tile coordinates for tile provider previews and size estimates +const int kPreviewTileZoom = 18; +const int kPreviewTileY = 101300; +const int kPreviewTileX = 41904; + // Direction cone for map view const double kDirectionConeHalfAngle = 30.0; // degrees const double kDirectionConeBaseLength = 0.001; // multiplier diff --git a/lib/screens/tile_provider_editor_screen.dart b/lib/screens/tile_provider_editor_screen.dart index dbaa03c..a3fb243 100644 --- a/lib/screens/tile_provider_editor_screen.dart +++ b/lib/screens/tile_provider_editor_screen.dart @@ -7,6 +7,7 @@ import 'package:collection/collection.dart'; import '../app_state.dart'; import '../models/tile_provider.dart'; import '../services/localization_service.dart'; +import '../dev_config.dart'; class TileProviderEditorScreen extends StatefulWidget { final TileProvider? provider; // null for adding new provider @@ -378,11 +379,11 @@ class _TileTypeDialogState extends State<_TileTypeDialog> { }); try { - // Use a sample tile (zoom 10, somewhere in the world) + // Use a sample tile from configured preview location final url = _urlController.text - .replaceAll('{z}', '10') - .replaceAll('{x}', '512') - .replaceAll('{y}', '384'); + .replaceAll('{z}', kPreviewTileZoom.toString()) + .replaceAll('{x}', kPreviewTileX.toString()) + .replaceAll('{y}', kPreviewTileY.toString()); final response = await http.get(Uri.parse(url)); diff --git a/lib/services/tile_preview_service.dart b/lib/services/tile_preview_service.dart index 5260c3f..91d3b68 100644 --- a/lib/services/tile_preview_service.dart +++ b/lib/services/tile_preview_service.dart @@ -4,12 +4,10 @@ import 'package:http/http.dart' as http; import '../models/tile_provider.dart'; import '../state/settings_state.dart'; +import '../dev_config.dart'; /// Service for fetching missing tile preview images class TilePreviewService { - static const int _previewZoom = 10; - static const int _previewX = 512; - static const int _previewY = 384; static const Duration _timeout = Duration(seconds: 10); /// Attempt to fetch missing preview tiles for tile types that don't already have preview data @@ -63,7 +61,7 @@ class TilePreviewService { static Future _fetchPreviewForTileType(TileType tileType, String? apiKey) async { try { - final url = tileType.getTileUrl(_previewZoom, _previewX, _previewY, apiKey: apiKey); + final url = tileType.getTileUrl(kPreviewTileZoom, kPreviewTileX, kPreviewTileY, apiKey: apiKey); final response = await http.get(Uri.parse(url)).timeout(_timeout);