Exemplo n.º 1
0
 private void AddLayerToEarth(LayerEventsArgs args)
 {
     try
     {
         // Get list of added layer.
         List <Layer> layerList = args.Layers as List <Layer>;
         if (layerList?.Count != 0 && !IsCreateNewGroupLayer(layerList))
         {
             foreach (var layer in layerList)
             {
                 QueuedTask.Run(async() =>
                 {
                     // GetDataConnection method must be called within the lambda passed to QueuedTask.Run.
                     CIMDataConnection dataConnection = layer.GetDataConnection();
                     // Get layer url.
                     string url = ToolHelper.GetDataSource(dataConnection);
                     if (!string.IsNullOrWhiteSpace(url))
                     {
                         JObject addLayerJson = new JObject
                         {
                             ["URI"] = url
                         };
                         if (dataConnection is CIMWMSServiceConnection)
                         {
                             // Specify layer type for wms service. API is limited to automatically recognized wms service.
                             addLayerJson["type"] = "WMS";
                         }
                         if (layer.MapLayerType == MapLayerType.Operational)
                         {
                             addLayerJson["target"] = "operationalLayers";
                         }
                         if (layer.MapLayerType == MapLayerType.BasemapBackground)
                         {
                             addLayerJson["target"] = "baseMaps";
                         }
                         string currentJson   = addLayerJson.ToString();
                         string[] nameAndType = new string[3]
                         {
                             layer.Name,
                             layer.MapLayerType.ToString(),
                             null
                         };
                         // Add layer to ArcGIS Earth.
                         // Return layer id when use adding layer, whether it's succeed or failed.
                         string id = await AutomationAPIHelper.AddLayer(currentJson);
                         if (!ToolHelper.IdInfoDictionary.Keys.Contains(id))
                         {
                             // Use IdInfoDictionary to save layer id and layer information.
                             ToolHelper.IdInfoDictionary.Add(id, nameAndType);
                         }
                     }
                     else
                     {
                         ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Failed to add layer to ArcGIS Earth" + " : " + layer.Name);
                     }
                 });
             }
         }
     }
     catch
     {
         ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show("Failed to add layer to ArcGIS Earth.");
     }
 }
Exemplo n.º 2
0
        private async Task <string> SendMessage(FunctionType sendType, string inputStr)
        {
            string outputStr = null;

            switch (sendType)
            {
            case FunctionType.GetCamera:
                outputStr = await AutomationAPIHelper.GetCamera();

                break;

            case FunctionType.SetCamera:
                outputStr = await AutomationAPIHelper.SetCamera(inputStr);

                break;

            case FunctionType.SetFlight:
                outputStr = await AutomationAPIHelper.SetFlight(inputStr);

                break;

            case FunctionType.AddLayer:
                outputStr = await AutomationAPIHelper.AddLayer(inputStr);

                break;

            case FunctionType.GetLayer:
                outputStr = await AutomationAPIHelper.GetLayer(inputStr);

                break;

            case FunctionType.RemoveLayer:
                outputStr = await AutomationAPIHelper.RemoveLayer(inputStr);

                break;

            case FunctionType.ClearLayers:
                outputStr = await AutomationAPIHelper.ClearLayers(inputStr);

                break;

            case FunctionType.AddGraphic:
                outputStr = await AutomationAPIHelper.AddGraphic(inputStr);

                break;

            case FunctionType.GetGraphic:
                outputStr = await AutomationAPIHelper.GetGraphic(inputStr);

                break;

            case FunctionType.UpdateGraphic:
                outputStr = await AutomationAPIHelper.UpdateGraphic(inputStr);

                break;

            case FunctionType.RemoveGraphic:
                outputStr = await AutomationAPIHelper.RemoveGraphic(inputStr);

                break;

            case FunctionType.GetWorkspace:
                outputStr = await AutomationAPIHelper.GetWorkspace();

                break;

            case FunctionType.ImportWorkspace:
                outputStr = await AutomationAPIHelper.ImportWorkspace(inputStr);

                break;

            case FunctionType.ClearWorkspace:
                outputStr = await AutomationAPIHelper.ClearWorkspace();

                break;
            }

            return(outputStr);
        }