private void UpdateCoordinateReadout(Point point)
        {
            var mp = _mapView.ScreenToLocation(point);

            if (mp == null)
            {
                return;
            }

            string coordinateReadout;

            // we can do DD, DMS, GARS, GEOREF, MGRS, USNG, UTM
            switch (_coordinateReadoutFormat)
            {
            case CoordinateReadoutFormat.DD:
                coordinateReadout = ConvertCoordinate.ToDecimalDegrees(mp, 3);
                break;

            case CoordinateReadoutFormat.DMS:
                coordinateReadout = ConvertCoordinate.ToDegreesMinutesSeconds(mp, 1);
                break;

            case CoordinateReadoutFormat.GARS:
                coordinateReadout = ConvertCoordinate.ToGars(mp);
                break;

            case CoordinateReadoutFormat.GEOREF:
                coordinateReadout = ConvertCoordinate.ToGeoref(mp, 4, true);
                break;

            case CoordinateReadoutFormat.MGRS:
                coordinateReadout = ConvertCoordinate.ToMgrs(mp, MgrsConversionMode.Automatic, 5, true, true);
                break;

            case CoordinateReadoutFormat.USNG:
                coordinateReadout = ConvertCoordinate.ToUsng(mp, 5, true, true);
                break;

            case CoordinateReadoutFormat.UTM:
                coordinateReadout = ConvertCoordinate.ToUtm(mp, UtmConversionMode.None, true);
                break;

            default:
                coordinateReadout = ConvertCoordinate.ToMgrs(mp, MgrsConversionMode.Automatic, 5, true, true);
                break;
            }

            _mapViewModel.CoordinateReadout = coordinateReadout;
        }
コード例 #2
0
        protected string LocationToString(MapPoint location, CoordinateFormat coordinateFormat)
        {
            switch (coordinateFormat)
            {
            case CoordinateFormat.DecimalDegrees:
                return(ConvertCoordinate.ToDecimalDegrees(location, 5));

            case CoordinateFormat.DegreesDecimalMinutes:
                return(ConvertCoordinate.ToDegreesDecimalMinutes(location, 3));

            case CoordinateFormat.Dms:
                return(ConvertCoordinate.ToDegreesMinutesSeconds(location, 1));

            case CoordinateFormat.Mgrs:
                return(ConvertCoordinate.ToMgrs(location, MgrsConversionMode.Automatic, 5, true, true));
            }
            return(null);
        }