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."); } }
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); }