Ejemplo n.º 1
0
        protected override Task OnActivateAsync(bool active)
        {
            if (active == true)
            {
                var          targetLayers = MappingModule.ActiveTOC.SelectedLayers;
                FeatureLayer targetLayer  = targetLayers.First() as FeatureLayer;

                _linearDisplayUnit = DisplayUnitEnvironment.GetEnvironment.DefaultMapLinearUnit;

                List <Layer> layersToKeep = new List <Layer>(targetLayers.Count);

                foreach (var item in targetLayers)
                {
                    layersToKeep.Add(item);
                }

                if (GeometryExercisesSolutionModule.Current.HasBeenAdded == false)
                {
                    string        layerTemplatesLocation = String.Empty;
                    DirectoryInfo arcgisProDirectoryInfo = new DirectoryInfo(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName));
                    layerTemplatesLocation = Path.Combine(arcgisProDirectoryInfo.Parent.FullName, "Resources", "LayerTemplates", "en-US");

                    IEnumerable <FileInfo> fileInfos = new DirectoryInfo(layerTemplatesLocation).EnumerateFiles();
                    QueuingTaskFactory.StartNew(async() =>
                    {
                        foreach (var templateFileInfo in fileInfos)
                        {
                            ItemInfoValue?packageItemInfo = await ItemInfoHelper.GetItemInfoValueAsync(templateFileInfo.FullName);
                            PackageItem layerPackage      = new PackageItem(packageItemInfo.Value);
                            await layerPackage.AddToCurrentMapAsync(null);
                            GeometryExercisesSolutionModule.Current.HasBeenAdded = true;
                            break;
                        }

                        MappingModule.ActiveTOC.ClearSelection();
                        MappingModule.ActiveTOC.SelectLayers(layersToKeep);
                    });
                }
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("");
            }

            return(base.OnActivateAsync(active));
        }
Ejemplo n.º 2
0
            public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
            {
                string doubleAsString = String.Empty;

                double distance = 0.0;

                if (values[0] is ArcGIS.Core.Geometry.GeometryEngine.ProximityResult)
                {
                    distance = ((ArcGIS.Core.Geometry.GeometryEngine.ProximityResult)values[0]).Distance;
                }

                if (values[1] is LinearDisplayUnit)
                {
                    LinearDisplayUnit linearDisplayUnit = values[1] as LinearDisplayUnit;

                    if (linearDisplayUnit.NumericFormat != null)
                    {
                        string numberFormatting = "{0:G}";

                        switch (linearDisplayUnit.NumericFormat.RoundingOption)
                        {
                        case esriRoundingOptionEnum.esriRoundNumberOfDecimals:
                            numberFormatting = "{0:F" + linearDisplayUnit.NumericFormat.RoundingValue.ToString() + "}";
                            break;

                        case esriRoundingOptionEnum.esriRoundNumberOfSignificantDigits:
                            numberFormatting = "{0:G" + linearDisplayUnit.NumericFormat.RoundingValue.ToString() + "}";
                            break;

                        default:
                            break;
                        }

                        doubleAsString = String.Format(numberFormatting + " {1}", distance, linearDisplayUnit.DisplayNamePlural);
                    }
                }

                return(doubleAsString);
            }