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 type="text/javascript">
|
||||
var map = null;
|
||||
var extent = new OpenLayers.Bounds(-180, -90, 180, 90);
|
||||
var extent = new OpenLayers.Bounds(8, 44.5, 19, 50);
|
||||
|
||||
function init() {
|
||||
var options = {
|
||||
@@ -24,7 +24,7 @@
|
||||
);
|
||||
|
||||
map.addLayers([wms]);
|
||||
map.setCenter(extent, 1);
|
||||
map.zoomToExtent(extent);
|
||||
document.getElementById("toggle").checked = true;
|
||||
}
|
||||
|
||||
@@ -68,8 +68,8 @@
|
||||
<input type="checkbox" id="toggle" checked="checked"
|
||||
onclick="toggleRestrictedExtent();" />
|
||||
<label for="toggle">
|
||||
Toggle restricted extent (to [-180, -90, 180, 90]).
|
||||
Toggle restricted extent (to [8, 44.5, 19, 50]).
|
||||
</label>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -1215,7 +1215,7 @@ OpenLayers.Layer = OpenLayers.Class({
|
||||
var map = this.map;
|
||||
if (viewPortPx != null && map.minPx) {
|
||||
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 lat = (map.minPx.y - viewPortPx.y) * res + maxExtent.top;
|
||||
lonlat = new OpenLayers.LonLat(lon, lat);
|
||||
|
||||
@@ -1671,21 +1671,21 @@ OpenLayers.Map = OpenLayers.Class({
|
||||
var hh = this.size.h / 2;
|
||||
var x = hw + dx;
|
||||
var y = hh + dy;
|
||||
var valid = y <= this.maxPx.y &&
|
||||
y >= this.minPx.y;
|
||||
var minX, maxX;
|
||||
if (this.baseLayer.wrapDateLine === true) {
|
||||
minX = this.minPx.x, maxX = this.maxPx.x;
|
||||
} else {
|
||||
valid = valid &&
|
||||
x <= this.maxPx.x &&
|
||||
x >= this.minPx.x;
|
||||
var wrapDateLine = this.baseLayer.wrapDateLine;
|
||||
var xRestriction = yRestriction = 0;
|
||||
if (this.restrictedExtent) {
|
||||
xRestriction = hw;
|
||||
yRestriction = hh;
|
||||
// wrapping the date line makes no sense for restricted extents
|
||||
wrapDateLine = false;
|
||||
}
|
||||
if (this.restrictedExtent && valid) {
|
||||
valid = !(this.maxPx.x - x < hw ||
|
||||
x - this.minPx.x < hw ||
|
||||
this.maxPx.y - y < hh ||
|
||||
y - this.minPx.y < hh);
|
||||
var valid = y <= this.maxPx.y - yRestriction &&
|
||||
y >= this.minPx.y + yRestriction;
|
||||
var minX = this.minPx.x, maxX = this.maxPx.x;
|
||||
if (!wrapDateLine) {
|
||||
valid = valid &&
|
||||
x <= this.maxPx.x - xRestriction &&
|
||||
x >= this.minPx.x + xRestriction;
|
||||
}
|
||||
if (valid) {
|
||||
this.center = null;
|
||||
@@ -1694,7 +1694,7 @@ OpenLayers.Map = OpenLayers.Class({
|
||||
parseInt(this.layerContainerDiv.style.left) - dx + "px";
|
||||
this.minPx.x -= dx;
|
||||
this.maxPx.x -= dx;
|
||||
if (this.baseLayer.wrapDateLine === true) {
|
||||
if (wrapDateLine) {
|
||||
if (this.maxPx.x > maxX) {
|
||||
this.maxPx.x -= (maxX - minX);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user