ThinkGeo.com    |     Documentation    |     Premium Support

Having trouble with UTM zone positions

I am working on software for a system that has targets displayed on the map. Each target has its position stored in the model in both UTM coordinates and Geodetic latitude/longitude. Our map data is in UTM, so we use UTM data when plotting the targets using a SimpleMarkerOverlay. Our map's unit is GeographyUnit.Meter.


The problem is that we cannot figure out how make the format used for UTM to match properly with the format ThinkGEO uses by default with GeographyUnit.Meters. Our map is in UTM Zone 12 (between longitude 108 W and 114 W). It seems like the coordinates of markers are only set with X/Y. We pass the Easting and Northing for this, but whenever there is a target that goes in a zone outside the map's default, its position is still calculated with respect to the map's default zone.


For example, suppose there is a target with longitude -111, which is the center of zone 12. The user manually edits the longitude to -105, which is the center of zone 13 (this will be outside the range of the map file we are using, but we want to allow the user to do that). The target's position on the map will not change. The easting value has not changed, only the zone (the target's position with respect to the zone's center is still the same). How can we calculate the position of a marker so that it takes UTM zones into account instead of only the easting?



Joel, 
  
 Welcome to MapSuite world, I am James, any question please feel free to let me know. 
  
 If the MapUnit is set to Meter, the coordinates of marker should be meter as well. From your description, it seems you want to use decimal degree (longitude/latitude) unit for marker, so that you need to use our Proj4Projection to convert the coordinate from Wgs84 to UTM, we have sample in HowDoI sample which is under Projection folder. 
  
 Let me know if you have more questions. 
  
 Thanks, 
 James