ThinkGeo.com    |     Documentation    |     Premium Support

Marks and Image

Hi,


I use FeatureSourceMarkerOverlay to display marks from database. Bur user can to set the image icon. How could I set the image of marks in one layer separately? I found the method GetMarkers for getting the marks. But no function.   




for (int i = 1; i <= _elementsToDisplay.Count; i++) 

{ Marker mark = markerOverlay.ZoomLevelSet.ZoomLevel01.GetMarkers(inMemorySource.InternalFeatures)[i - 1]; 

MapElement element = _elementsToDisplay[i - 1]; 

WebImage image = new WebImage(element.GetPicturePath(), 16, 16, 0f, -16f); 
mark.WebImage = image; mark.Popup.ContentHtml = " [#Description#] "; 

mark.Popup.AutoSize = true; 

mark.Popup.BackgroundColor = GeoColor.StandardColors.White; 
mark.Popup.BorderColor = GeoColor.StandardColors.Black; 

mark.Popup.BorderWidth = 1; 


Thanks


Ondrej



I tried this code:


string[] values = { "Image: ../../theme/default/img/marker_blue.gif" };


Map1.MarkerOverlay.Features.Add("Kansas", new Feature(-94.48242, 38.75977, "aa", values));


Map1.MarkerOverlay.Features.Add("sdfs", new Feature(-95.48242, 38.75977, "bb", values));


Map1.MarkerOverlay.Features.Add("Kansdfsdfsas", new Feature(-96.48242, 38.75977, "cc", values));


Map1.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("[#Image#]", 21, 25); 


No result. Please help me.


Thanks


Ondrej



Ondrej, 
  
 Here is the right way to use FeatureSourceMarkerOverlay, also you can find a similar sample in Markers->AddProjectedMarkers along with our product. 
  
 
  FeatureSource MyCustomFeatureSource = new ShapeFileFeatureSource();
                FeatureSourceMarkerOverlay featureSourceMarkerOverlay = new FeatureSourceMarkerOverlay();
                featureSourceMarkerOverlay.FeatureSource = MyCustomFeatureSource;

                // Set the Default Marker Style for the FeatureSource Marker Overlay
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage(element.GetPicturePath(), 16, 16, 0f, -16f);
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.ContentHtml = "[#Description#]";
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.AutoSize = true;
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BackgroundColor = GeoColor.StandardColors.White;
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderColor = GeoColor.StandardColors.Black;
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderWidth = 1;

                // Apply the same style to all the ZoomLevels
                featureSourceMarkerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
 
  
 Thanks, 
  
 Ben

Ondrej,



To render every marker differently, you can try using SimpleMarkerOverlay, you cannot bind it directly to a featureSource though. Please have a look the sample Markers->UseDraggableMarkers for detail.



To get a specification of all the 3 kinds of MarkerOverlays (FeatureSourceMarkerOverlay, SimpleMarkerOverlay and InMemoryMarkerOverlay), please have a look at the post here.



gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/5710/afv/topic/afpg/1/Default.aspx




Let me know if you have any issues,


Thanks,



Ben



Ben,


You don´t understand me. I have problem with icon of the mark. I have one layer and there are about 50 marks. Every mark has a specific icon image. But now in your product I could set the same icon for all objects in layer. How could I set the image of mark individually?


Thanks


Ondrej



OK. I try SimplyMarkerOverlay.


Thanks



Ondrej, 
  
 Let me know if you have problems on that. 
  
 Ben

Thank you Ben, it´s all right.


Ondrej



That’s great, Ondrej.