在限制用户平移地图的能力之后,地图无限加载

时间:2014-03-20 19:54:37

标签: arcgis arcgis-js-api

我试图限制用户从已定义的边框框中平移地图的能力。

我设置了两个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);
            }
        });

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

您设置validExtent to的初始值实际上并不有效,因为它不包含在您的initExtent中。我怀疑可能发生的事情是,在将validExtent变量设置为有效之前,on-pan-end正在触发,这导致它无限循环尝试设置无效范围,检测其无效并因此再次设置它,并结束。尝试将validExtent的值设置为包含在initExtent的值中。