ThinkGeo.com    |     Documentation    |     Premium Support

Avoiding overlapping features

 Hi,


I am trying to draw a number of images (32x32) onto an InMemortFeatureLayer. I have done this by inheriting my own PointStyle class and overriding the DrawCore.


This works very well, however I sometime need multiple images at the same point. So here is what i want to do.


Draw small dot at the actual X,Y location (i have done this already )


Draw the images but offset them so that the do not overlap


Draw a small line from the where offset image to the small black dot.


 


Any thoughts on how this could be done ?



 


John,
I think your idea is pretty good, but a little complex if you want to draw a small line from the offset image to the black dot. Drawing Line requires the LineStyle, here are some hints:
1.       Drawing black dot is simple and can be implemented by the default PointStyle.
2.       As we have known, the PointSytle draw the points based on the features, in other words, we need to split the actual point two different points, both of them has an offset to the actual point. To determine the offset, I think we can select a proper screen distance, such as 10 Pixel, and then convert the 10 Pixel into world distance based on current extent. Here is the method that can help us: 
ExtentHelper.GetWorldDistanceBetweenTwoScreenPoints
3.       Create two offset Line Features and one LineStyle to draw the line that pointer to the black dot.
 
Hope the above is helpful to you. Thanks,
 
Johnny