Symbol coordinate transformation and Symbol space

Feb 27, 2012 at 8:42 AM
Edited Feb 27, 2012 at 10:01 AM

Your MilGraphic class calls a Transform using the milsymFactory.Location factory method

internal static ILocation FullTransformation(
// Transform the point at which to locate the graphic using the "origin" point.
// X and Y are reversed since Location uses (Latitude, Longitude)
return baseM33.Transform(milsymFactory.Location(Order.LatLon, origin.Y, origin.X));

and uses the factory Result of an ILocation.

The values are taken from the corresponding string for the symbol in the resource dictionary, e.g.

  <sys:String x:Key="G_TPY_1">Bypass 355,-110 355,110 0,0 355,0 0,-110 0,110</sys:String>

for G_TPY control template. Within this approach might be the fact that the values of origin.Y and origin.X contains values like e.g. 355. Are these values really symbol unit related or map unit related? Because defining a value exceeding lat/lon max/min values might result into a failure using the location factory... what should happen if valid values are between -180 to 180 instead of 0 to 360 etc.? Are these values meant to be used in metric systems only? If these values are symbol unit related an own class for symbol x and y values might be a cleaner way.

Otherwise if the string is meant to be used for a relation to the min/max lat/lon how do they reflect onto symbol size definitions?

What is the "common" symbol size definition for your project? Some other programs/libs use -0.5 to +0.5 on each axis for a symbol coordinate space.