Und wieder einmal Hallo liebes Forum,
leider hab ich schon wieder ein Problem, bei dem ich Hilfe gebrauchen könnte. Ich hab mir mit Mapnik meine eigenen Tiles gerendert und das ganze mit OpenLayers eingebunden. Nachdem ich schon beim Einschränken der Zoomstufen Hand am OpenLayers Code angelegt habe, müssste ich nun verhindern, dass der Benutzer die Karte über einen bestimmten Bereich zieht. Zum Beispiel:
- Auf der Unterseite von Deutschland darf nur innerhalb von Deutschland gescrollt werden, auf der Unterseite von Österreich darf nicht bis rauf nach Skandinavien gescrollt werden usw. Laut OpenLayers funktioniert das mit maxExtent bzw. restrictedExtent und der maxResolution. In der Klasse XYZ.js des OpenLayers Frameworks wird die Map folgendermaßen initialisiert:
initialize: function(name, url, options) {
if (options && options.sphericalMercator || this.sphericalMercator) {
options = OpenLayers.Util.extend({
maxExtent: new OpenLayers.Bounds(
-128 * 156543.0339,
-128 * 156543.0339,
128 * 156543.0339,
128 * 156543.0339
),
maxResolution: 156543.0339,
numZoomLevels: 19,
units: "m",
projection: "EPSG:900913"
}, options);
}
url = url || this.url;
name = name || this.name;
var newArguments = [name, url, {}, options];
OpenLayers.Layer.Grid.prototype.initialize.apply(this, newArguments);
}
Mein Problem: was bedeutet dieser maxExtent. Wenn ich diesen Wert halbiere:
maxExtent: new OpenLayers.Bounds(
-64 * 156543.0339,
-64 * 156543.0339,
64 * 156543.0339,
64 * 156543.0339
),
dann bleibt meine Karte weiß. Hat jemand einen Tip für mich, wie ich den scrollbaren Bereich der Karte in OpenLayers einschränken kann. Wie gesagt Änderungen am Quellcode sind kein Problem.
Danke euch allen.
Martin