我试图限制用户将地图平移出定义的边界框的能力。
我为地图设置了两个变量“initExtent”和“validExtent”(有效边界框),并且在范围更改时我检查当前范围。
但是在范围更改后地图会无限加载:
var initExtent = esri.geometry.Extent({
"xmax": -8550513.84 ,
"xmin": -10751900.25,
"ymax": 7187679.36,
"ymin": 5720088.41,
"spatialReference": {
"wkid": 102100
}
});
var validExtent = esri.geometry.Extent({
"xmax": -8350513.84 ,
"xmin": -10951900.25,
"ymax": 7387679.36,
"ymin": 5520088.41,
"spatialReference": {
"wkid": 102100
}
});
map = new Map( "map" , {
extent: initExtent,
zoom : 6,
logo: false
});
on(map, 'extent-change', function(evt) {
if ( !initExtent.contains(evt.extent) ) {
console.log('Outside bounds!');
} else {
console.log('Updated extent');
validExtent = evt.extent;
}
});
on(map, 'pan-end', function(evt) {
if ( !initExtent.contains(evt.extent) ) {
map.setExtent(validExtent);
}
});
我该如何解决这个问题?