ThinkGeo.com    |     Documentation    |     Premium Support

Help with ZoomToScale

Hi,


I have been trying to use ZoomToScale to jump to a certain Zoom Level .. but I can't get it work..


My code was like


Map1.ZoomToScale(Map1.ClientZoomLevelScales[zoomLevel-1]); where zoomLevel is a variable that contains the zoom level when the map is first started:  zoomLevel=Map1.GetOpenLayersMap().getZoom() + 1;


Did I do anything wrong?


 


Thanks a lot!


 


Roson



Roson,


I guess the JavaScript code is in OnMapCreated method while the server code is in Page_Load method right? Here is the point to mess your application which because the life circle of the web control.


When the application started; Page_Load runs before the client script, and your server code use unsigned zoom level to zoom to. Hope you understand.


I recommend to set current extent property to implement your requirement. Please refer to the other post your asked:

gis.thinkgeo.com/Support/Dis...fault.aspx


Thanks,

Howard



Hi Howard, 
  
 Thanks for your reply. 
  
 Sorry that I didn’t describe my problem and situation clearly…  
  
 What I mean by Reset Zoom Level is that … 
 After I start the application… I do some ransom zoom in and zoom out on the map (it might be zoom out to the maximum level… or something different)… and I want a ResetZoomLevel function implemented to bring the map to its original state like when it first started  
  
 Yes. zoomLevel=Map1.GetOpenLayersMap().getZoom() + 1; is put in the OnMapCreated method…  
 In the same javascript, Map1.ZoomToScale(Map1.ClientZoomLevelScales[zoomLevel-1]); is put in the method that will be invoked by pressing a button after the application is started.    
  
 In a similar fashion, I tried to use PanToWorldCoordinate(…);. It works… get the initial lon lat in OnMapCreated methond and put PanToWorldCoordinate() in the function I put ZoomToScale(…)… 
  
 Would you have other recommendation? Have I not understood your answered? … 
 Btw, could you point me to the examples/samples you use GetBoundingBox and CurrentExtent to ZoomTo a certain scale? Location? 
  
 Thanks a lot Howard! 
  
 Roson

Add to my previous post...


I am trying to do this on the client side.  So no code is put in the Page_Load method..   Would there be a solution? 


Thanks, Howard!


 


Roson


 



Roson, 
  
 Sorry, I was confused now. How do you set the initialize extent in OnMapCreated method? If you set the initialize extent, why cannot you reset again by the button click? Could you provide us more for your requirement without your code? I think it’s a very simple question. 
  
 You can find a sample that use GetBoundingBox method at: 
 websamples.thinkgeo.com/webeditionsamples/Samples/GettingStarted/FindTheFeatureTheUserClicked.aspx 
  
 Looking forward your feedback. 
  
 Thanks, 
 Howard

The requirement is:


After the user zoom in and/or zoom out and drag on the map, we want to provide a function to undo all the zoom in/out and drag so the map will be back to the intial scale and center.  


Hope I have explained myself better there? ... =\


And is there anywhere I can find the description (e.g. what it does..) of the API methonds?  Have I overlooked?..


 


Thanks a lot1


 


Roson  


 


 


 



Hi Howard, 
  
 It’s working for me now.  
 I used extent in Javascript as you suggested in another post: GetCurrentExtent at the very beginning and ZoomToExtent onbutton click. 
 gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/6402/afv/topic/Default.aspx  
  
 Thanks! 
  
 Roson

Roson, 
  
 We have documentation in our installed package; also we have online documentation at: 
 gis.thinkgeo.com/mapsuite3docs/webedition/ 
  
 That’s great that you can fix your issue. 
  
 Please let me know if you have more questions. 
  
 Thanks, 
 Howard