42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
// Map Configuration
|
|
// You can adjust these values and reload the page to test different zoom behaviors
|
|
|
|
const MapConfig = {
|
|
// Zoom level configuration
|
|
// Maps Leaflet zoom levels to database zoom levels and merge factors
|
|
zoomLevels: [
|
|
// Leaflet zoom 0 → Database zoom 0 (4x4 merged)
|
|
{ leafletZoom: -2, dbZoom: 0, mergeFactor: 4, label: "4x4 merged" },
|
|
// Leaflet zoom 1 → Database zoom 1 (2x2 merged)
|
|
{ leafletZoom: -0.5, dbZoom: 1, mergeFactor: 2, label: "2x2 merged" },
|
|
// Leaflet zoom 2+ → Database zoom 2 (original tiles)
|
|
{ leafletZoom: 1.5, dbZoom: 2, mergeFactor: 1, label: "original" },
|
|
],
|
|
|
|
// Leaflet map settings
|
|
minZoom: -2,
|
|
maxZoom: 2,
|
|
|
|
// Tile size (in pixels) - should match database tile size
|
|
tileSize: 512,
|
|
|
|
// Debug mode - shows tile boundaries and coordinates
|
|
debug: true,
|
|
|
|
// Get zoom configuration for a specific Leaflet zoom level
|
|
getZoomConfig(leafletZoom) {
|
|
// Find the appropriate config for this zoom level
|
|
// Use the highest matching config that's <= current zoom
|
|
let config = this.zoomLevels[0];
|
|
for (const zoomConfig of this.zoomLevels) {
|
|
if (leafletZoom >= zoomConfig.leafletZoom) {
|
|
config = zoomConfig;
|
|
}
|
|
}
|
|
return config;
|
|
}
|
|
};
|
|
|
|
// Make it globally available
|
|
window.MapConfig = MapConfig;
|