AnsweredAssumed Answered

Display layers at certain scales

Question asked by Crittermap on Jan 9, 2018

I am creating what is to be a vector tiled map and have created sublayers for different levels of detail. 

Ie

boundary_z0

boundary_z1 

...

boundary_z13plus

 

These correspond to scales in Google Maps/Arcgis Online. 

I want boundary_z0 to display at zoom level 0, boundary_z1 to display at zoom level 1, and so on. 

Where 0 is an alias to 591657527.591555E8 and 13 is an alias for 72223.819286, if you happen to think better with those kinds of numbers. 

 

This page has the answer to my question - I just don't understand it. 

 

Display layers at certain scales—ArcGIS Pro | ArcGIS Desktop 

 

"To avoid showing features from both layers when viewing your map right at these scale range boundaries, it has been common practice to set the Out Beyond scale range property of the more detailed layer to be one scale unit less than the In Beyond scale range property of the more generalized layer."

 

I definitely want to avoid that. Or my tiles would be up to twice as big. 

 

"The drawback with this approach is that you can create a situation where no data at all draws at the interim scale. This is especially problematic if you intend to create a vector tile package from the map."

 

Yeah, that would be bad if nothing draws in the in-between scales. And I *do* intend to create a vector tile package. 

 

"A better solution is to set both the In Beyond and Out Beyond scale range properties to the same scale in this situation, and set your map to draw up to and including the maximum scale in scale ranges"

 

That's what I want to do then. But it isn't clear enough to me. An actual example would help. And are they saying we can "avoid showing features from both layers" or that we should just live with that problem? This recommended setting will "draw up to including the maximum scale". But will it also "draw down to, but not including, the minimum scale"? An important piece of information I find missing. 

 

I've started with this. 

 

SublayerIn beyond(maximum scale)Out beyond(minimum scale)
boundary_z00<None>
boundary_z111
boundary_z222
....
boundary_z13plus<none>13

 

But I think this is wrong. So is the correct solution this?

 

 

SublayerIn beyond(maximum scale)Out beyond(minimum scale)
boundary_z00<None>
boundary_z110
boundary_z221
....
boundary_z13plus<none>12

 

or perhaps this?

 

SublayerIn beyond(maximum scale)Out beyond(minimum scale)
boundary_z01<None>
boundary_z121
boundary_z232
....
boundary_z13plus<none>13

 

Or do I have to get fancier, create my own scales, and do something like this?

 

 

SublayerIn beyond(maximum scale)Out beyond(minimum scale)
boundary_z01.50.5
boundary_z12.51.5
boundary_z23.52.5
....
boundary_z13plus<none>12.5

 

Thanks for any insight. I can't afford an "off by 1" error here. 

Outcomes