fixing restrictedExtent check in moveByPx. r=bartvde (closes #3138)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@11607 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
<script src="../lib/OpenLayers.js"></script>
|
<script src="../lib/OpenLayers.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var map = null;
|
var map = null;
|
||||||
var extent = new OpenLayers.Bounds(-180, -90, 180, 90);
|
var extent = new OpenLayers.Bounds(8, 44.5, 19, 50);
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
var options = {
|
var options = {
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
map.addLayers([wms]);
|
map.addLayers([wms]);
|
||||||
map.setCenter(extent, 1);
|
map.zoomToExtent(extent);
|
||||||
document.getElementById("toggle").checked = true;
|
document.getElementById("toggle").checked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,8 +68,8 @@
|
|||||||
<input type="checkbox" id="toggle" checked="checked"
|
<input type="checkbox" id="toggle" checked="checked"
|
||||||
onclick="toggleRestrictedExtent();" />
|
onclick="toggleRestrictedExtent();" />
|
||||||
<label for="toggle">
|
<label for="toggle">
|
||||||
Toggle restricted extent (to [-180, -90, 180, 90]).
|
Toggle restricted extent (to [8, 44.5, 19, 50]).
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1215,7 +1215,7 @@ OpenLayers.Layer = OpenLayers.Class({
|
|||||||
var map = this.map;
|
var map = this.map;
|
||||||
if (viewPortPx != null && map.minPx) {
|
if (viewPortPx != null && map.minPx) {
|
||||||
var res = map.getResolution();
|
var res = map.getResolution();
|
||||||
var maxExtent = map.getMaxExtent();
|
var maxExtent = map.getMaxExtent({restricted: true});
|
||||||
var lon = (viewPortPx.x - map.minPx.x) * res + maxExtent.left;
|
var lon = (viewPortPx.x - map.minPx.x) * res + maxExtent.left;
|
||||||
var lat = (map.minPx.y - viewPortPx.y) * res + maxExtent.top;
|
var lat = (map.minPx.y - viewPortPx.y) * res + maxExtent.top;
|
||||||
lonlat = new OpenLayers.LonLat(lon, lat);
|
lonlat = new OpenLayers.LonLat(lon, lat);
|
||||||
|
|||||||
+15
-15
@@ -1671,21 +1671,21 @@ OpenLayers.Map = OpenLayers.Class({
|
|||||||
var hh = this.size.h / 2;
|
var hh = this.size.h / 2;
|
||||||
var x = hw + dx;
|
var x = hw + dx;
|
||||||
var y = hh + dy;
|
var y = hh + dy;
|
||||||
var valid = y <= this.maxPx.y &&
|
var wrapDateLine = this.baseLayer.wrapDateLine;
|
||||||
y >= this.minPx.y;
|
var xRestriction = yRestriction = 0;
|
||||||
var minX, maxX;
|
if (this.restrictedExtent) {
|
||||||
if (this.baseLayer.wrapDateLine === true) {
|
xRestriction = hw;
|
||||||
minX = this.minPx.x, maxX = this.maxPx.x;
|
yRestriction = hh;
|
||||||
} else {
|
// wrapping the date line makes no sense for restricted extents
|
||||||
valid = valid &&
|
wrapDateLine = false;
|
||||||
x <= this.maxPx.x &&
|
|
||||||
x >= this.minPx.x;
|
|
||||||
}
|
}
|
||||||
if (this.restrictedExtent && valid) {
|
var valid = y <= this.maxPx.y - yRestriction &&
|
||||||
valid = !(this.maxPx.x - x < hw ||
|
y >= this.minPx.y + yRestriction;
|
||||||
x - this.minPx.x < hw ||
|
var minX = this.minPx.x, maxX = this.maxPx.x;
|
||||||
this.maxPx.y - y < hh ||
|
if (!wrapDateLine) {
|
||||||
y - this.minPx.y < hh);
|
valid = valid &&
|
||||||
|
x <= this.maxPx.x - xRestriction &&
|
||||||
|
x >= this.minPx.x + xRestriction;
|
||||||
}
|
}
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.center = null;
|
this.center = null;
|
||||||
@@ -1694,7 +1694,7 @@ OpenLayers.Map = OpenLayers.Class({
|
|||||||
parseInt(this.layerContainerDiv.style.left) - dx + "px";
|
parseInt(this.layerContainerDiv.style.left) - dx + "px";
|
||||||
this.minPx.x -= dx;
|
this.minPx.x -= dx;
|
||||||
this.maxPx.x -= dx;
|
this.maxPx.x -= dx;
|
||||||
if (this.baseLayer.wrapDateLine === true) {
|
if (wrapDateLine) {
|
||||||
if (this.maxPx.x > maxX) {
|
if (this.maxPx.x > maxX) {
|
||||||
this.maxPx.x -= (maxX - minX);
|
this.maxPx.x -= (maxX - minX);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user