ThinkGeo.com    |     Documentation    |     Premium Support

Showing all mouseover popups from different SimpleMarkerOverlays

Hi,


I have Added 3 overlays to Map1.CustomOverlays.  The first overlay is an instance of LayerOverlay which is set to be the baseoverlay; the second and the third overlays are each an instance of SimpleMarkerOverlay;   On the second and third overlay, I create popups over the markers triggered by mouseover event.  There's no problem for me to show all 3 overlays (overlappigng each other).  When all 3 overlays get loaded up the first time.. the popups for both second and third overlays work fine.  However, the problem I am encountering is that, after I do some operation on the Third overlay.. such as removing the markers from the third overlay.. the mouseover popups for the markers in the second overlay don't show anymore. .. that sometimes happens to the third overlay (mouseover popups not working) after I do some operation no the second overlay..


so when I operate on the second or third overlay (e.g. removing markers from each overlay)  my javascript  does this: var olMap = Map1.GetOpenLayersMap(); var tripMarkerOverlay = olMap.getLayer("...MarkerOverlay");  Is this why that's happening because the current overlay changes and the mouseover popups follow each specific overlay? 


Hope you understand what I am talking about...  Could you tell me why that's happening and how I can fix it? 


 


 


Thanks a lot!


Roson


 


 


 


 


 



Lishan, 
  
 I understand your situation. But I need to know how do you write your code. Could you provide us a simple sample with your testing data? I’ll check it out. 
  
 Looking forward your feedback. 
  
 Thanks, 
 Howard

Hi Howard, 


Shoud I send it to you by email?


and I am afraid I won't be able to send you all the necessary files and data to get it work... 


Could I just send you the files where the overlays are being created and where they are used as well as where the popups are created? 


 


Thanks!


 


Roson


 



Lishan, 
  
 Sure, please send the code with the necessary data to support@thinkgeo.com and ask them to forward to me. 
  
 Thanks, 
 Howard

Hi Howard, 
  
 I sent the email with the code.zip attachment and asked support team to forward it to you. 
  
 Look forward to your reply. 
 Thanks! 
  
 Roson

Roson, 
  
 I’ll work on it when I get your data. I’ll remind them to send me the file. 
  
 Thanks for your files. 
  
 Thanks, 
 Howard

Hi Howard, 
  
 Any news? 
  
 Thanks! 
 Roson

Lishan,



I cannot run your code because you didn't send us your project. I just can only follow your JavaScript and guess where is the issue.

In your code, I found an issue when register the marker event at the end of the code. It should be 
marker1.events.register('mouseover', {marker:marker1,markerLabel:markerLabel,popup:popup}, function(e){
    this.markerLabel.hide();
    this.popup.show();
    this.popup.updateSize(); 
    var postData = decodeURIComponent(__theFormPostData);
        var startData = postData.substr(0, postData.indexOf('&'));
        var endData = postData.substr(postData.indexOf('&'), postData.length - postData.indexOf('&'));
        __theFormPostData = startData + ',' + olMap.getScale().toString() + endData;


});

marker1.events.register('mouseout', {marker:marker1,markerLabel:markerLabel,popup:popup}, function(e){
    this.popup.hide();
    this.markerLabel.show();
    this.markerLabel.updateSize();
});
 

Please let me know how it works.



Thanks,

Howard



hi Howard, 
  
 sorry… the project is really big… it involves lots of code/logic on the backend …  
  
 I replace my code with yours above… it doesn’t solve the problem.   
  
 To explain my situation a little bit more: we have two toggle buttons to show and hide the layers of icons,labels and popups.   one toggle button show and hide (add and remove) the icons,labels and popups on the second overlay (trips).  the other toggle button show and hide (add and remove) the icons, labels and popups on the third overlay (vehicles).   
 When the map starts up (both overlays are showing/Toggle button is show by default)… it can show popups from both overlays… but after using the toggle button to hide and show again either overlays … then, it can only show the popups from the overlay which is most recently toggled. 
  
 sorry… that I can’t send you the project… but could you think of any reason why that’s happening based on my description? 
  
 Thank you a lot! 
  
 Roson

Hi Lishan,


We have done a simple sample and try to recreate the problem based on your description, but it works fine in our machine. Please get it from the attachment and have a try, then make some change if convenient so that it can recreate your problem.
Any more information is appreciated.
Thanks,
Sun

1354-Post6467.zip (7.57 KB)

Hi Sun, 
  
 Am I supposed to be able to run this app? 
  
 Error 1 The type or namespace name ‘ThinkGeo’ could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\lluo\My Documents\Downloads\Post6467\Post6467\Default.aspx.cs 7 7 Post6467 
  
 Is there configuration I need to do? 
  
 Thanks! 
 Roson

another thing is for the code below.. during the testing on my app,for the same marker, this.markerLabel.hide(); works but this.popup.show();


marker1.events.register('mouseover', {marker:marker1,markerLabel:markerLabel,popup:popup}, function(e){
this.markerLabel.hide();  
this.popup.show();  
this.popup.updateSize();  
var postData = decodeURIComponent(__theFormPostData);   
var startData = postData.substr(0, postData.indexOf('&'));   
var endData = postData.substr(postData.indexOf('&'), postData.length - postData.indexOf(''));   
__theFormPostData = startData + ',' + olMap.getScale().toString() + endData; 
});  


 


do you see any reason why that could happen?


I very much appreciate for your patience and help!


Roson



Sorry for missing the instruction about how to use the little sample. We didn’t include the WebEdition.dll, MapSuiteCore.dll and the shape file (cntry02.shp) because of the attachment size limit restriction. So could you please add the two dlls as reference to the sample project? Then you can make some change to it to recreate your problem.


Any more information please let me know.
Thanks,
Sun 

Hi Sun, 
  
 I tried to recreate the problem with your code… but I couldn’t … then I became so sure that there’s some problem with our code… 
  
 It turns out that it’s because I used the same var name for both layer’s array of popups… so … when one layer refresh (remove and add the popups) it overrides the other layers… vice versa…  sorry to have taken so much of your time on your side…  
  
 Thanks a lot! 
  
 Roson

Glad to hear that you have found the problem and fixed it, please feel free to let me know if you have any more issues. 
  
 Thanks, 
  
 Sun