ThinkGeo.com    |     Documentation    |     Premium Support

Problem Setting ZoomLevel scale

I am trying to set my map's zoom level scales as follows:


                    With layerToAdd.ZoomLevelSet
                        .ZoomLevel01.Scale = 325000
                        .ZoomLevel02.Scale = 182000
                        .ZoomLevel03.Scale = 102800
                        .ZoomLevel04.Scale = 57840
                        .ZoomLevel05.Scale = 43380
                        .ZoomLevel06.Scale = 32530
                        .ZoomLevel07.Scale = 24400
                        .ZoomLevel08.Scale = 18300
                        .ZoomLevel09.Scale = 13720
                        .ZoomLevel10.Scale = 10300
                        .ZoomLevel11.Scale = 7720
                        .ZoomLevel12.Scale = 5800
                        .ZoomLevel13.Scale = 4300
                        .ZoomLevel14.Scale = 3260
                        .ZoomLevel15.Scale = 2445
                        .ZoomLevel16.Scale = 1830
                        .ZoomLevel17.Scale = 1370
                        .ZoomLevel18.Scale = 775
                        .ZoomLevel19.Scale = 435
                        .ZoomLevel20.Scale = 245
                    End With
.

 This is done to every layer on the map. However, when I load my map, my maximum ZoomLevel still reports a scale of 590591790. I have no idea why this is the case but I would to know how I can set these scales as the scales reflected in my map so that I can have the proper Zooming effects that I need.


Thanks.



I have found out how to use SyncClientZoomLevels so I have sorted out my issue with zoom levels. However, I now have the most strange bug I have run across yet... It will no doubt require a GoToMeetings and likely a Service Request Ticket.


To view my site as it was before the zoom level edits, please go to maps.plotplans.com/lynnma.


You will notice you can change maps on the fly with the box on the top right.


Please ZoomIn and out quickly and often. You will notice your browser status bar is accumulating "Items Remaining" that eventually never clear. This is odd but has always been the case with the web component I've noticed.


More so, please notice the limited amount of ZoomLevels we are actually utilizing since they have not been optimized yet.


What is happening after the SyncClientZoomLevels has been implemented is the following. When I choose my second map ('Wards') it comes up as expected. When wheel zooming in all the way and then back out all of a sudden my map has changed back to City Wide!!! If I try to toggle any of my layers, I get a "Key not found in dictionary error".


As I am troubleshooting the situation, I believe I have come close to narrowing down the problem. I will try to describe my scenario a little better. I have code in my Page_Load event and some of it is fired off if IsPostBack = True or = False depending on the expected situation.


What normally happens is EVERY SINGLE TIME you scroll zoom in or out, the IsPostBack is supposed to equal True because the map is PostingBack to the page. This has always been the case.


Now, it appears that if there are too many scroll zooms inward or outward, for some reason IsPostBack can become equal to False which causes my default page loading code to fire off. This only started after introducing the SyncClientZoomLevels into the application. Removing it removes the issue, but I am unsure if this is due to a much smaller set of ZoomLevels being available and thus not triggering this odd bug.


If this needs to be demonstrated I would be glad to do so, but for obvious reasons I can not make available my entire source code for public nor can I email it off.


Thanks.



Nelson, 
  
 The application on your web site looks great; but I have some questions for you. 
  
 1. We scroll up and down to zoomin and out quite fast and more often; but the number on the status bar always goes down to 0. But if we zoomin and out; then do a postback such as change the map type; the number will accumulate; because the requests cannot be aborted before of the postback. 
  
 2. I’m not sure the meaning by “EVERY SINGLE TIME you scroll zoom in or out, the IsPostBack is supposed to equal True because the map is PostingBack to the page”. Because we cannot notice the postback when scroll zoomin or out. 
  
 If your code is not public, we hope you can provide us a prototype application so that we can recreate your issue. 
  
 Thanks, 
 Howard

Hi Howard, 



Let me clarify a couple of points: 



1) The website you viewed is before having applied SyncClientZoomLevels. Because of this, my main issue about IsPostBack is not present in this scenario. I offered this so that you could first see how the page behaved before applying the SyncClientZoomLevels. 



2) Regardless of whether I use SyncClientZoomLevels, when zooming the map in or out, the Page_Load even is fired off. To me, this is normal and expected because the page is theoretically, loading each time. IsPostBack is supposed to be (or has always been) True during the Page_Load caused by a scroll zoom in or zoom out without SyncClientZoomLevels. 



After applying SyncClientZoomLevels, it seems when doing a large amount of continuous scroll zoom-ins or zoom-outs that IsPostBack can sometimes report False during the Page_Load event, despite the fact that nothing else has changed. If you visit maps.plotplans.com/lynnma again, you will now see the page with SyncClientZoomLevels applied. To see the errenous behavior, please go to Wards map and then scroll zoom in quickly. If you look carefully, you will notice the map has changed back to City Wide. This is because IsPostBack has reported False during that particular Page_Load and as a result, code is fired off that was not intended to be. 



Turning off SyncClientZoomLevels remedies the issue. I am unsure if it is related to SyncClientZoomLevels implementation, or if it is just now surfacing as a result of having many more ZoomLevels to trip over. 



I hope that clarified a little about what my issues are. Please take a look at the website now that I have added the problematic behavior and offer any thoughts you might have on how to go forward. I am prepared to open a support ticket if necessary. 



Thank you.



Update: It seems to only be doing this in development. On the production site I just uploaded, it seems not to arise. I’ll post again if the issue arises again but I would say there is no issue at this time. Thanks.

Hi Nelson, 
  
 I noticed there is one difference between the new one and the old one. I see you hooked the ExtentChanged event in the new web site while there is no ExtentChanged event in the old one. So I think it’s the main issue in the new application. I’m not sure why you need this event in your case; but I think SyncClientZoomLevels is not the core issue.  
  
 Any way, please check your code and keep posting if you have anymore questions. 
  
 Thanks, 
 Howard