die Bewegung einer OSM-Karte möchte ich auf einen bestimmten Längen- und Breitengrad-Bereich begrenzen. Mein Problem: ich habe eine Offline-Anwendung und möchte nicht alle Tiles für alle Zoomstufe in meine Anwendung packen. Ansonsten benötige ich ein haufen Tiles. Ich habe es erst durch Pfeilbutton gelöst, jeweils einen Button für eine Richtung. Die Variante finde ich aber nicht besonders elegant. Wie könnte ich es besser realisieren? Habt Ihr eine Idee? Vielen Dank vorab!
var le=5.6; var ue=47.2; var re=15.3; var oe=55; // brd
var projfrom = new OpenLayers.Projection("EPSG:4326");
var projto = new OpenLayers.Projection("EPSG:3857");
var extent = new OpenLayers.Bounds(le,ue,re,oe).transform(projfrom,projto);
...
map = new OpenLayers.Map("map_div" ,{
restrictedExtent : extent, // <--------------------------
zoomOffset: 10,
fractionalZoom: false,
controls: [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.LayerSwitcher({'ascending':true}),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MousePosition({
"numDigits": 5,
div: document.getElementById('mouse_div'),
displayProjection: new OpenLayers.Projection(projfrom)
}),
new OpenLayers.Control.Permalink({
div: document.getElementById('permalink_div'),
displayProjection: new OpenLayers.Projection(projfrom)
})
]}
);
Schnipsel aus der uralten HKTS-Karte, deren sichtbaren Bereich ich auf Deutschland beschränkt hatte.