ThinkGeo.com    |     Documentation    |     Premium Support

How can I use MarkerOverlay with CustomeOverLay

My scenario is:


I used CustomeOverlay to load GoogleMap as a based Map.


I used MarkerOverlay to add makers with specific style.


But CustomOverlay and MarkerOverlay cannot be located at the same time :((.


@: when I used StaticOverLay to load basedMap, nothing happened!!!


Pls help me!!!


Thanks alot.



 


Duong,
 
Actually we didn’t understand the sentence “cannot be located at the same time”. Could you give us a detailed explanation? 
 
We guess maybe you were missing something in your code. Here attached is a sample for reference. 
 
Thanks,

 


James



Post8633.zip (6.63 KB)

Dear James, 
  
 InMemoryMarkerOverlay is an answer for my question. 
 But when I used InMemoryMarkerOverlay, there are some problems with picture display. Some vessel viewed ok, someone is viewed a small part, someone cannot view. 
  
 My code: 
  
 Code for add MarkerOverlay: 
  
 InMemoryMarkerOverlay vesselMarker = new InMemoryMarkerOverlay("VesselMarker"); 
         vesselMarker.ZoomLevelSet.ZoomLevel01.CustomMarkerStyle = new ValueMarkerStyle("MMSI"); 
         vesselMarker.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
         vesselMarker.Click += new EventHandler<MarkerOverlayClickEventArgs>(markerOverlay_Click); 
         vesselMarker.FeatureSource.Open(); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("MMSI")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("IMO")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("DisplayName")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("COG")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("ROT")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("SOG")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("TypeId")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("TypeDesc")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("StatusId")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("StatusDesc")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("Draugth")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("Destination")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("ETA")); 
         vesselMarker.Columns.Add(new FeatureSourceColumn("LastReceived")); 
         vesselMarker.FeatureSource.Close(); 
         vesselMarker.IsBaseOverlay = false; 
         //vesselMarker.Opacity = 1; 
         Map1.CustomOverlays.Add(vesselMarker); 
  
 Code for add Marker: 
  
 private void addMarkers(Collection<Feature> features) { 
         InMemoryMarkerOverlay vesselMarker = (InMemoryMarkerOverlay)Map1.CustomOverlays["VesselMarker"]; 
         vesselMarker.Features.Clear(); 
         ValueMarkerStyle markerStyle = (ValueMarkerStyle)vesselMarker.ZoomLevelSet.ZoomLevel01.CustomMarkerStyle; 
         markerStyle.ValueItems.Clear(); 
  
         foreach (Feature feature in features) 
         { 
             Feature targetFeature = convertProjection(feature); 
             vesselMarker.Features.Add(targetFeature.Id, targetFeature); 
             MarkerValueItem vessel = new MarkerValueItem(targetFeature.Id); 
  
             int statusId = int.Parse(targetFeature.ColumnValues["StatusId"]); 
             int vesselTypeId = int.Parse(targetFeature.ColumnValues["TypeId"]); 
             vessel.DefaultMarkerStyle.WebImage = new WebImage(getPathIcon(statusId, vesselTypeId), 18, 18, -9, -9); 
             vessel.DefaultMarkerStyle.WebImage.RotationAngle = -float.Parse(targetFeature.ColumnValues["Cog"]); 
             StringBuilder contentHtml = new StringBuilder(); 
             contentHtml.Append("") 
                 .Append(feature.ColumnValues["DisplayName"]); 
             vessel.DefaultMarkerStyle.Popup.ContentHtml = contentHtml.ToString(); 
             vessel.DefaultMarkerStyle.Popup.Width = 100; 
             vessel.DefaultMarkerStyle.Popup.Height = 20; 
             markerStyle.ValueItems.Add(vessel); 
         } 
          
     }

Duong, 
  
 Thanks for your sample code, we will try it. And I will let you know if we find anything. 
  
 James

 


Duong,
 
Sorry, we can’t run your code directly. So I commented some code and ran it successfully. But the result is different from yours. We didn’t see any markers on the map. In another word, we didn’t recreate your problem. Maybe the result is under the influence of code commented by me.
 
And there is something wrong with your code. The marker style should not be setting up while adding markers. The correct usage is to set up the marker style and then add the markers. You may attach a sample which can recreate your problem if it still doesn’t work.
 
Thanks,

 


James



Hi James,



"And there is something wrong with your code. The marker style should not be setting up while adding markers. The correct usage is to set up the marker style and then add the markers" is not my problem.



Problem happens when markers are too near to each others. The same problem happens with SimpleMarkerOverlay.


Please view file attacked.



File Attacked.<a href="javascript:amaf_insertHTML('<img%20src=&quot;/Portals/1/activeforums_Attach/001_pic.png&quot;%20border=&quot;0&quot;%20></a>');amaf_toggleInline(3063,40845,0);">



Duong, 
  
 I am afraid I can’t figure out what happened in your application according to this picture. Maybe there is something wrong with your marker style. The best way to make us understand you is to send us a simple sample.  
  
 Thanks, 
 James

Dear James,


This my simple code.


I used ver4.5.


@Note: I 've removed .dll file


<a href="javascript:amaf_addAttach(3075,40845);">



Exam4Check.zip (141 KB)

Duong, 
  
 Thanks for your sample. I have recreated your problem with WebEdition version4.5.0.0. We have fixed it. It runs well with WebEdition version 4.5.78.0. So you can get the latest daily build and update your application. 
  
 Let me know if you have more questions. 
  
 James 


Oh, how can I get update version? I am now using trial version.

Duong, 
  
 You can login the custom portal helpdesk.thinkgeo.com, and then you can easily find the donwload link under Evaluation Daily Builds tab. 
  
 Thanks, 
 James