/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { //make sure to switch into dynamic mode IDynamicMap dynamicMap = m_hookHelper.FocusMap as IDynamicMap; //make sure that the current Map supports the DynamicDisplay if (null == dynamicMap) return; if (!m_bIsConnected) { //make sure to switch into dynamic mode if (!dynamicMap.DynamicMapEnabled) dynamicMap.DynamicMapEnabled = true; //do some initializations... if (m_bOnce) { //initialize the dynamic layer m_dynamicLayer = new MyDynamicLayerClass(); m_dynamicLayer.Name = "Dynamic Layer"; m_bOnce = false; } //make sure that the layer did not get added to the map bool bLayerHasBeenAdded = false; if (m_hookHelper.FocusMap.LayerCount > 0) { IEnumLayer layers = m_hookHelper.FocusMap.get_Layers(null, false); layers.Reset(); ILayer layer = layers.Next(); while (layer != null) { if (layer is MyDynamicLayerClass) { bLayerHasBeenAdded = true; break; } layer = layers.Next(); } } if (!bLayerHasBeenAdded) { //add the dynamic layer to the map m_hookHelper.FocusMap.AddLayer(m_dynamicLayer); } //connect to the synthetic data source m_dynamicLayer.Connect(); } else { //disconnect to the synthetic data source m_dynamicLayer.Disconnect(); //delete the layer from the map m_hookHelper.FocusMap.DeleteLayer(m_dynamicLayer); //disable the dynamic display if (dynamicMap.DynamicMapEnabled) dynamicMap.DynamicMapEnabled = false; } //set the connected flag m_bIsConnected = !m_bIsConnected; }
/// <summary> /// Occurs when this command is clicked /// </summary> public override void OnClick() { //make sure to switch into dynamic mode IDynamicMap dynamicMap = m_hookHelper.FocusMap as IDynamicMap; //make sure that the current Map supports the DynamicDisplay if (null == dynamicMap) { return; } if (!m_bIsConnected) { //make sure to switch into dynamic mode if (!dynamicMap.DynamicMapEnabled) { dynamicMap.DynamicMapEnabled = true; } //do some initializations... if (m_bOnce) { //initialize the dynamic layer m_dynamicLayer = new MyDynamicLayerClass(); m_dynamicLayer.Name = "Dynamic Layer"; m_bOnce = false; } //make sure that the layer did not get added to the map bool bLayerHasBeenAdded = false; if (m_hookHelper.FocusMap.LayerCount > 0) { IEnumLayer layers = m_hookHelper.FocusMap.get_Layers(null, false); layers.Reset(); ILayer layer = layers.Next(); while (layer != null) { if (layer is MyDynamicLayerClass) { bLayerHasBeenAdded = true; break; } layer = layers.Next(); } } if (!bLayerHasBeenAdded) { //add the dynamic layer to the map m_hookHelper.FocusMap.AddLayer(m_dynamicLayer); } //connect to the synthetic data source m_dynamicLayer.Connect(); } else { //disconnect to the synthetic data source m_dynamicLayer.Disconnect(); //delete the layer from the map m_hookHelper.FocusMap.DeleteLayer(m_dynamicLayer); //disable the dynamic display if (dynamicMap.DynamicMapEnabled) { dynamicMap.DynamicMapEnabled = false; } } //set the connected flag m_bIsConnected = !m_bIsConnected; }