Get the Current Map Location Unit
//var map = MapView.Active.Map;
//Must be on the QueuedTask.Run()
//Get the current location unit
var loc_unit = map.GetLocationUnitFormat();
var line = $"{loc_unit.DisplayName}, {loc_unit.UnitCode}";
System.Diagnostics.Debug.WriteLine(line);
Get the Available List of Map Location Units
//var map = MapView.Active.Map;
//Must be on the QueuedTask.Run()
//Linear location unit formats are not included if the map sr
//is geographic.
var loc_units = map.GetAvailableLocationUnitFormats();
Format a Location Using the Current Map Location Unit
var mv = MapView.Active;
var map = mv.Map;
QueuedTask.Run(() =>
{
//Get the current view camera location
var center_pt = new Coordinate2D(mv.Camera.X, mv.Camera.Y);
//Get the current location unit
var loc_unit = map.GetLocationUnitFormat();
//Format the camera location
var str = loc_unit.FormatLocation(center_pt, map.SpatialReference);
System.Diagnostics.Debug.WriteLine($"Formatted location: {str}");
});
Set the Location Unit for the Current Map
var mv = MapView.Active;
var map = mv.Map;
QueuedTask.Run(() =>
{
//Get the list of available location unit formats
//for the current map
var loc_units = map.GetAvailableLocationUnitFormats();
//arbitrarily use the last unit in the list
map.SetLocationUnitFormat(loc_units.Last());
});
Get the Current Map Elevation Unit
//var map = MapView.Active.Map;
//Must be on the QueuedTask.Run()
//If the map is not a scene, the default Project distance
//unit will be returned
var elev_unit = map.GetElevationUnitFormat();
var line = $"{elev_unit.DisplayName}, {elev_unit.UnitCode}";
System.Diagnostics.Debug.WriteLine(line);
Get the Available List of Map Elevation Units
//var map = MapView.Active.Map;
//Must be on the QueuedTask.Run()
//If the map is not a scene, the list of current
//Project distance units will be returned
var elev_units = map.GetAvailableElevationUnitFormats();
Format an Elevation Using the Current Map Elevation Unit
var mv = MapView.Active;
var map = mv.Map;
QueuedTask.Run(() =>
{
//Get the current elevation unit. If the map is not
//a scene the default Project distance unit is returned
var elev_unit = map.GetElevationUnitFormat();
//Format the view camera elevation
var str = elev_unit.FormatValue(mv.Camera.Z);
System.Diagnostics.Debug.WriteLine($"Formatted elevation: {str}");
});
Set the Elevation Unit for the Current Map
var map = MapView.Active.Map;
QueuedTask.Run(() =>
{
//Trying to set the elevation unit on a map other than
//a scene will throw an InvalidOperationException
if (map.IsScene)
{
//Get the list of available elevation unit formats
//for the current map
var loc_units = map.GetAvailableElevationUnitFormats();
//arbitrarily use the last unit in the list
map.SetElevationUnitFormat(loc_units.Last());
}
});
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.