Zoom in beyond the basemap's maximum zoom level in Javascript

9916
12
07-21-2013 11:04 PM
CrisBarredo
New Contributor
Can someone help me on how to zoom in beyond the basemap's maximum zoom level in Javascript?
I'm using satellite as my basemap and I want to zoom in more than the maximum zoom level.
I'm also using ArcGIS Online to publish feature services created using ArcGIS Desktop.
0 Kudos
12 Replies
SteveCole
Frequent Contributor
I haven't personally done this but I'm thinking that you need to create a custom Level of Detail (LOD) option that you would specify when you create your new map. Look at the new map options section for LODs. This sample isn't quite what you need to do but it does illustrate some of what you will need to do.

I think you can just mimic the default LOD levels for your satellite basemap but add the additional LODs for zooming in beyond it's maximum detail.
0 Kudos
JohnGravois
Frequent Contributor
my understanding is that this is not currently possible, but something the development team is actively working on including in a future release.
0 Kudos
MStayner
New Contributor III
Any update on this?
0 Kudos
JeffPace
MVP Alum
We currently go down to level 20 with custom LODs. 

The constraint is really the basemap.  I hope they consider adding another level
0 Kudos
JohnGravois
Frequent Contributor
i haven't done any testing, but in version 3.6 of the JS API they listed the bug below as 'resolved':

[NIM093459: Resample tiledMapServiceLayer at the levels where it doesn't have data available and the service returns 404 for missing tiles.]
0 Kudos
ThomasRoussell
New Contributor III
I just tried this, and it works at version 3.7 of the javascript api.

    var c = new esri.geometry.Point(2473044, 7636297, new esri.SpatialReference({ wkid: 2953 }));

    var lods = [
    {"level" : 0, "scale" : 3000000, "resolution" : 793.75158750317507}, 
    {"level" : 1, "scale" : 2000000, "resolution" : 529.16772500211675}, 
    {"level" : 2, "scale" : 1000000, "resolution" : 264.58386250105838}, 
    {"level" : 3, "scale" :  500000, "resolution" : 132.29193125052919}, 
    {"level" : 4, "scale" :  250000, "resolution" : 66.145965625264594}, 
    {"level" : 5, "scale" :  125000, "resolution" : 33.072982812632297}, 
    {"level" : 6, "scale" :   50000, "resolution" : 13.229193125052918}, 
    {"level" : 7, "scale" :   30000, "resolution" : 7.9375158750317505}, 
    {"level" : 8, "scale" :   12500, "resolution" : 3.3072982812632294}, 
    {"level" : 9, "scale" :    5000, "resolution" : 1.3229193125052918}, 
    {"level" :10, "scale" :    2500, "resolution" : 0.66145965625264591}, 
    {"level" :11, "scale" :    1000, "resolution" : 0.26458386250105836}, 
    {"level" :12, "scale" :     500, "resolution" : 0.13229193125052918}, 
    {"level" :13, "scale" :     250, "resolution" : 0.066145965625264591}, 
    {"level" :14, "scale" :     100, "resolution" : 0.026458386250105836}, 
    ];

    map = new esri.Map("map", {
        basemap: standard_basemap_basemap,
        center: c,
        zoom: 6,
        slider: false,
        logo: false,
        spatialReference: new esri.SpatialReference({ wkid: 2953 }),
        lods: lods
    });
0 Kudos
JohnGravois
Frequent Contributor
awesome Thomas.  thanks for sharing!
0 Kudos
JeffPace
MVP Alum
not resolved.

Trying to get to level 20 of the street map returns no tiles

Would love to get to level 20 and 21

-Jeff
0 Kudos
ThomasRoussell
New Contributor III
The code above allows you to zoom in beyond the basemap's maximum zoom level, but you won't see any basemap tiles since none exist at those scales. I use the code so that I could zoom in to a Dynamic MapService Layer at larger scales than is provided by the basemap. At the larger scales the Dynamic mapservice layer is displayed without a basemap in the background.
0 Kudos