ThinkGeo.com    |     Documentation    |     Premium Support

Marker class

Hi,

Am working with Marker class for my application.

I have two specific requirements with Marker class on which i have few doubts,


1. Resizing the marker dynamically.

Marker object can be given specific height and width. If not, a default marker with default dimensions appears.

I want to resize the dimensions of the marker run time(something as we do in "track and edit shapes" example but I should not be using EditOverlay). Please let me know how to do that using Marker class  and MarkerOverlay.


2.Marker Label

Currently i can bind an image to the image source property and i can add any text to the marker using content property.

But doing so, am getting the text at the centre of the marker. so other way around, i can put both image and text onto the marker using content template.

I want to know if there is any simple way wherein i can place the text of the marker at the bottom of the marker without using any content template.


Thanks.

Prasanna



Hi Prasanna, 
  
 For the first question, marker is a content control actually. You can hook any events on the marker. You can change the size of the marker or and a RenderTransform for it to get your target. For example, You can have two events. One mouse down and one mouse move event. When mouse down, a center is defined; then if the mouse button is down and moving, an offset of mouse move can be got. I think with these two factors, you can resize the marker properly. 
  
 For the second question, I think to use content property is a simplest choice. Try to set margin on the label and adjust it to the bottom of the marker. 
  
 Just let us know if you have any more queries. 
  
 Thanks, 
 Howard

Hi Howard,

Am surprised as to why we should not be using VerticalContentAlignment property of the marker for aligning the content of the marker (for the second question).

I tried to do something like this:


Marker marker = new Marker();

//marker.ContentStringFormat = "sample";

marker.Content = "sample";

marker.VerticalContentAlignment = VerticalAlignment.Bottom;

markerOverlay.Markers.Add(marker);

wpfMap1.Refresh();


Again,I have few doubts here;

1. I could not display "sample" on the marker using marker.ContentStringFormat.

2. I could not align the content using VerticalContentAlignment


Please let me know if am using marker.ContentStringFormat and marker.VerticalContentAlignment in the correct way.


Thanks and Regards,

Prasanna



Hi Prasanna, 
  
 I checked the code and found the ContentStringFormat is not applied to the marker control. I have added it and you can try with the latest version tomorrow.  
  
 For the VerticalContentAlignment issue; the marker is not a absolute ContentControl for now, some features on the ContentControl cannot be used directly for marker. For example, when you set the content as a very long string, it will be cut when displaying on the screen. But here marker needs display the entire string, so we made some changes on the content property. Hope it makes sense.  
  
 I have added this issue to our task list, I’ll focus on this issue after my higher priority tasks are finished and please try the margin temporary. Sorry for the inconvenience. 
  
 Thanks for reporting, 
 Howard