ThinkGeo.com    |     Documentation    |     Premium Support

CustomOverlays key

When I add an Overlay to the Overlays collection in the desktop ediution I can add it with a key value to reference it later.  I can then use Overlay.Contains(key) to determine if an overlay is part of the collection.


When I add an Overlay to the CustomOverlays collection in web edition, I don't have the ability to specify the key value and so I can't use the Contains method to see if a particular overlay has been added.  I'm not sure how to use Contains at all since there isn't a key value.


I can work around this when checking to see if an overlay exists by looping through the overlays and checking the name, which is what I used as the key in the desktop edition; however, if I want to use the CustomOverlays.Remove method, how can I refer to the CustomOverlay I want to remove if it doesn't have a key value?  Alternatively, what is used as the key value in the Remove method?


Charles



Hi, Charles 
  
 Yes, we don’t provide users that adding overlay with a key. However, you could specify an id for overlay when initializing it. And then you could refer it using this id. Just like the code below: 
           InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay(“MarkerOverlay”); 
           ~~~~~~ 
            Map1.CustomOverlays[“MarkerOverlay”]; 
            Map1.CustomOverlays.Contains(“MarkerOverlay”); 
            Map1.CustomOverlays.Remove(“MarkerOverlay”); 
  
 Please refer to the “AddAMarker” sample in our installed samples which you could find its source code at “Samples\GettingStarted\AddAMarker.aspx”. 
  
 If you still have any problem please let me know. 
  
 Thanks 
 Khalil

Khalil, 
  
 Thanks for the reply.  I tried your suggestion and it worked.  Unfortunately, it doesn’t work in desktop edition.  The work around is to add conditional compile arguments around each call, but it seems to be such a minor difference that there is no reason for it to be there at all.  It is rather difficult to write reusable code when there are so many differences between the controls. 
  
 Charles

Charles, 
  
 We used KeyedCollection to load overlays, that’s because that it is searchable via an index or one that is keyed as a string, and also it is serializable. 
 So there are some difference between DesktopEdtion and WebEdition. Sorry for the inconvenience for you. 
   
 Thanks, 
 Khalil