My map has limit level at 21 level, and I limit user at level 19 that user can't zoom more on this level.this is my code.
map.on("zoom-end", function(){
if(map.getLevel() > 19 )
{
map.setZoom(19);
}
});// end map zoomEnd
The result is after map zoom over level 19 , my map will continue zoom then re-render and zoom back to level 19.But what i need is map must not zoom anymore at level 19.So, I think i must do something at "zoom-start" event for assign it to stop zoom.
map.on("zoom-start", function(){
if(map.getLevel() > 18 )
{
//do something to break, cancel zoom method
//like disableScrollWheelZoom() results that user can't not zoom anymore
// but i don't want to disable it because I still let user to zoom out.
}
});
But I don't know how. ________________________________________________________________________On other ways that I try is I set maxZoom on starting create map.
var lods = [
{"level" : 0, "resolution" : 156543.03392800014, "scale" : 5.91657527591555E8},
{"level" : 1, "resolution" : 78271.51696399994, "scale" : 2.95828763795777E8},
{"level" : 2, "resolution" : 39135.75848200009, "scale" : 1.47914381897889E8},
{"level" : 3, "resolution" : 19567.87924099992, "scale" : 7.3957190948944E7},
{"level" : 4, "resolution" : 9783.93962049996, "scale" : 3.6978595474472E7},
{"level" : 5, "resolution" : 4891.96981024998, "scale" : 1.8489297737236E7},
{"level" : 6, "resolution" : 2445.98490512499, "scale" : 9244648.868618},
{"level" : 7, "resolution" : 1222.992452562495, "scale" : 4622324.434309},
{"level" : 8, "resolution" : 611.4962262813797, "scale" : 2311162.217155},
{"level" : 9, "resolution" : 305.74811314055756, "scale" : 1155581.108577},
{"level" : 10, "resolution" : 152.87405657041106, "scale" : 577790.554289},
{"level" : 11, "resolution" : 76.43702828507324, "scale" : 288895.277144},
{"level" : 12, "resolution" : 38.21851414253662, "scale" : 144447.638572},
{"level" : 13, "resolution" : 19.10925707126831, "scale" : 72223.819286},
{"level" : 14, "resolution" : 9.554628535634155, "scale" : 36111.909643},
{"level" : 15, "resolution" : 4.77731426794937, "scale" : 18055.954822},
{"level" : 16, "resolution" : 2.388657133974685, "scale" : 9027.977411},
{"level" : 17, "resolution" : 1.1943285668550503, "scale" : 4513.988705},
{"level" : 18, "resolution" : 0.5971642835598172, "scale" : 2256.994353},
{"level" : 19, "resolution" : 0.29858214164761665, "scale" : 1128.497176},
{"level" : 20, "resolution" : 0.1492910708238083, "scale" : 564.248588},
{"level" : 21, "resolution" : 0.0746455354119042, "scale" : 282.124294}
];
map = new Map("map",{
lods: lods,
center:[100.543623,13.703039],
zoom: 18,
maxZoom: 19,
fadeOnZoom: true
});
On this way user can't zoom anymore at level 19, but My map concept is outdoor layer and indoor layer thatI will limit user to zoom at level 19 because level 0 - 19 is outdoor layer, If user need to zoom in indoor layer(level 20 - 21).User must click something like symbol or button for zoom in to indoor layer.so I need to set maxZoom again after click symbol or button. but i can't find the way to set it.I only found method like getMaxZoom(). but i don't found method setMaxZoom() or something like this.Thanks for helps.