2016-03-19 9 views
1

Ich habe meiner Karte ein Bild hinzugefügt (Bildüberlagerung). Kann ich die Zoomstufen aufgrund des Bildes "anpassen"?Broschüre: Bildüberlagerung und Zoomstufen

Bei Zoomlevel 17 ist die Auflösung der Rasterkarte im Vergleich zur Bildschirmauflösung zu niedrig. Bei Zoomlevel 16 ist die Rasterkarte nicht mehr lesbar.

Ist es möglich, etwas wie "Zoomlevel 17: 1px des Bildes = 1px des Bildschirms" zu definieren?

Bitte entschuldigen Sie meine holprigen Englisch. Vielen Dank!

var map = L.map('image-map', { 
 
\t \t minZoom: 16, 
 
\t \t maxZoom: 18, 
 
\t \t }).setView([46.975768, 7.436308], 17); 
 

 

 
var imageUrl = '../Bilder/Karten/Normalansicht.png', 
 
    imageBounds = [[46.966635, 7.415942], [46.998849, 7.470108]]; 
 

 
L.imageOverlay(imageUrl, imageBounds).addTo(map); 
 

 
map.setMaxBounds(imageBounds);

+0

Ist Ihr Bild online zugänglich einigen Test-Code überprüfen? Wenn es nicht möglich ist, wie hoch ist die Auflösung (Breite und Höhe)? – YaFred

+0

Breite: 4740px, Höhe: 3636px –

Antwort

1

Ist es möglich, so etwas wie "Zoomstufe 17: 1px des image = 1px des Bildschirms" zu definieren?

Nr

Was Sie können tun, ist jedoch CRS.Simple verwenden. In diesem Koordinatensystem ist 1 Karteneinheit = 1 Pixel bei Zoomstufe 0. Sie müssen die Bildüberlagerungskoordinaten anpassen, um das gewünschte Bildschirmauflösungs-/Bildauflösungsverhältnis zu erreichen.

Überprüfen Sie das Tutorial auf CRS.Simple bei http://leafletjs.com/examples/crs-simple/crs-simple.html

Eine weitere Option ist fraktionierte Zoom-Steuerelemente zu verwenden (nur in Leaflet 1.0.0-beta, nicht in der 0.7.x-Serie). Durch Einstellen der Optionen zoomSnap und zoomDelta kann der Benutzer Zoomstufen, z. 16.25, 16.5 und 16.75.

Es gibt keine Anleitung dafür, aber man kann bei https://github.com/Leaflet/Leaflet/blob/master/debug/map/zoom-delta.html

Verwandte Themen