ThinkGeo.com    |     Documentation    |     Premium Support

OverlaySwitcher BaseOverlayTitle Property

Hi,


I'm using Map Suite 3.1.299.0 and trying to set the "BaseOverlayTitle" property of the OverlaySwitcher object, expecting this to change the "BaseOverlays" text that appears on the Overlay Switcher. Nothing seems to be happening though.


I can't see the BaseOverlayTitle property described in the API documentation, so is this something that hasn't been fully implemented? If so, is there another way I can change the "BaseOverlays" text?


Thanks in advance,


Gary



Gary, 



Sorry for the inconvenience; as we tested this issue only happens when we run in runtime. It's fixed currently in our latest version. Here is a workaround for you temporary; please have a try. 



var OnMapCreated = function(map) {
var overlaySwitcher = map.getControlsByClass("OpenLayers.Control.LayerSwitcher")[0];
if (overlaySwitcher) {
// Set the base overlay tittle.
overlaySwitcher.baseLbl.innerHTML = OpenLayers.i18n("CustomBaseOverlay");

// set the dynamic overlays tittle.
overlaySwitcher.dataLbl.innerHTML = OpenLayers.i18n("CustomDynamicOverlays");
}



Thanks for reporting this issue and let us know if you have more queries. 



Thanks, 

Howard



Hi Howard, 
  
 Thanks for the quick reply. Your workaround has fixed it. 
  
 Best regards, 
  
 Gary

Gary, 
  
 Great; please let me know if you have more queries. 
  
 Thanks, 
 Howard

Hi Howard, 
  
 I have a related query. I have two base overlays in my map control - one shows vector maps derived from shape files, the other is a Virtual Earth overlay. The overlay switcher works great and allows me to switch between the two seamlessly. 
  
 The problem I have is that the labels for the vector maps are a separate dynamic overlay (as suggested in the “Label Nice Looking Roads” sample). Is there a way I can synchronise the display of the dynamic labels overlay with the shape file base overlay, so that the labels aren’t shown when the Virtual Earth base overlay is selected? 
  
 Best regards, 
  
 Gary

Gary, 
  
 On the OverlaySwitcher, we have a client API "OnClientBaseOverlayChanged" which may help you implement this. Please refer to our installed sample "Samples/Overlays/UseGoogleYahooWms.aspx" for how to use it. 
  
 This is the exactly code for using the API and please see its implementation on the client side. 
 Map1.MapTools.OverlaySwitcher.OnClientBaseOverlayChanged = "onLayerChanged"; 
  
 Please let me know if you have any more queries. 
  
 Thanks, 
 Howard

Hi Howard, 
  
 Many thanks for pointing me in the right direction. I’d looked in the Client-side API post in this forum and on the OpenLayers site - I never thought to look in the server-side API documentation! I now have the map doing what I want. 
  
 Thanks once again for your help - it’s much appreciated. 
  
 Best regards, 
  
 Gary

Hi Howard, 
  
 Sorry, I just have one final query related to this area of functionality. Is there a way (ideally server-side before the page renders) that I can set the visible state of the overlay switcher? I know I can turn it on or off via the Enabled property, but I can’t see a way of setting the visibility. 
  
 By default it’s showing in its maximised state (i.e. listing the different overlays), but I’d rather it was initially minimised (i.e. just showing the << arrows). It’s probably something obvious that I’ve overlooked, but if you can point me in the right direction it would be much appreciated. 
  
 Best regards, 
  
 Gary

Gary,






As for OverlaySwitcher, you could set it in minimizeControl state after map has been created on the client side. The code likes below:






    [script removed]
        var OnMapCreated = function(map) {
            var controls = map.getControlsBy("id", "LayerSwitcher");
            controls[0].minimizeControl();
        }
    [script removed]




Any more questions please let me know.






Thanks,




Johnny



Hi Johhny, 
  
 Once again, thanks for the quick response. That’s just what I was looking for. 
  
 Just out of interest, where is the minimizeControl() function documented? I couldn’t find it in any of the ThinkGeo or OpenLayers documentation. 
  
 Best regards, 
  
 Gary

Gary, 
  
 The minimizeControl() function you could find in the developer library natural docs through the url below: 
 dev.openlayers.org/releases/OpenLayers-2.8/doc/devdocs/files/OpenLayers/Control/LayerSwitcher-js.html
  
 Any more questions please let me know. 
  
 Thanks, 
 Johnny 


Hi Johnny, 
  
 Many thanks. I’d been following the “Class Documentation” link on the OpenLayers home page, but that seems to go to different set of the documentation which isn’t as comprehensive as the one you’ve linked to above. I’ll hopefully be able to answer more of my own questions now ;-) 
  
 Best regards, 
  
 Gary

Gary, 
  
 Good idea; just let us know if you have more questions.  
  
 Thanks, 
  
 Johnny