我试图限制用户的能力,以泛出一个定义的赏金框地图。
我为地图设置了两个vars "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);
}
});我怎样才能解决这个问题?
发布于 2014-03-20 21:54:17
设置validExtent的初始值实际上无效,因为它不包含在initExtent中。我怀疑可能发生的情况是,在validExtent变量被设置为有效之前,over正在触发,这导致它无限循环,试图设置无效的范围,检测其无效,然后一次又一次地设置它。尝试将validExtent的值设置为包含在initExtent值中。
https://stackoverflow.com/questions/22543709
复制相似问题