ThinkGeo.com    |     Documentation    |     Premium Support

Question about change popup for marker

hi again,


i have one question about markers, i need to add different popups for each marker i will have, there is no need to change the image but i found this property so i try to use




[code]


Marker m = new Marker();

                    m.WebImage = dataField[5];

                    m.Position=new PointShape(Convert.ToDouble(dataField[2]), Convert.ToDouble(dataField[1]));

                    CustomPopup cpop = new CustomPopup(dataField[0], m.Position, dataField[4]);

                    m.Popup = cpop;


 


                    // this is the line

                    Map1.CustomOverlays.Add(m);


 


 


i am asked about the last line, what it should be? 


thanks.



can anybody give some support in this point, what i need only is to have different text for different marker, i want to show point name for each marker in the pop-up. 
  
 thanks.

ok, i solve the problem, it add all using custom layer not static. 
 is there any problem of loading all shape files using this way?

Ahmed,



Sorry for delaying your questions.



First of all, marker is not added by your attached code. It should be maintained in an MarkerOverlay. General speaking, Map maintains several overlays such as MarkerOverlay, WmsOverlay, LayerOverlay and the 3rd part overlays. Then Overlay maintains the concrete objects such as ShapeFileFeatureLayers, Markers etc.



If you want to add a marker, you need to add the marker into an overlay then add the overlay to the map as well as adding all shape files. Please see the code below.

ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/world/cntry02.shp"));
worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 243, 239, 228), GeoColor.FromArgb(255, 218, 193, 163), 1);
worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

ShapeFileFeatureLayer citiesLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/USA/cities_a.shp"));
citiesLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.City3;
citiesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
citiesLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = new TextStyle("AREANAME", new GeoFont("Verdana", 9), new GeoSolidBrush(GeoColor.StandardColors.Black));
citiesLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.HaloPen = new GeoPen(GeoColor.StandardColors.White, 2);
citiesLayer.DrawingMarginPercentage = 50;

LayerOverlay layerOverlay = new LayerOverlay();
layerOverlay.Layers.Add(worldLayer);
layerOverlay.Layers.Add(citiesLayer);



Hope it makes sense. Any questions please let me know.



Thanks,

Howard



yes thanks, that is what I did, but i have error that i cant use (static) so i change it to the same code that you sent. 
  
 my question now is: is there is any difference between adding shape files to (custom) insted of (static)? that is becouse most of your samples which load shape files using static.

Ahmed, 
  
 StaticOverlay is a shotcut for adding layers which is a LayerOverlay type acutally. It’s the same as you new a LayerOverlay and insert into the CustomOverlays collection. For example: if your app has only one or two LayerOverlays, it’s much simpler to write Map1.StaticOverlay.Layers.Add(…; Hope it makes sense. 
  
 The StaticOverlay is a LayerOverlay with multi-tile type and base overlay properties while DynamicOverlay is a LayerOverlay with single-tile type and none-base overlay properties. 
  
 Let’s turn on the OverlaySwitcher to see what’s the difference of StaticOverlay and DynamicOverlay; we can easily see the radio button in front of the StaticOverlay name and checkbox in front of the DynamicOverlay name. 
  
 The important thing is that, we don’t allow you to use StaticOverlay and CustomOverlay together which will throws exceptions. 
  
 Please let me know if you have more questions. 
  
 Thanks 
 Howard

thanks very well, you are great. 
 see you my next question :)

Ahmed, 
  
 You are welcome. Let me know if you have any queries. 
  
 Thanks, 
 Howard