ThinkGeo.com    |     Documentation    |     Premium Support

V14.3.0 - BaseLayer.Close - Close not Defined

ThinkGeo Team,

Transitioning to V14.3.0 and finding that the Close Method of BaseLayer is not present. It is present in V13.3.0.

Is this an oversight or is there a reason for removing it?

Thanks,
Dennis

My code is–>>

    // search for layer
    bOutCome = TheAssetsStatic.aTheLayerOverlay.Layers.Contains(TheLayerKey);

    // close FeatureLayer if Open
    if (TheAssetsStatic.aTheLayerOverlay.Layers[TheLayerKey].IsOpen == true)
    {
        TheAssetsStatic.aTheLayerOverlay.Layers[TheLayerKey].Close();
    }

    // remove layer
    TheAssetsStatic.aTheLayerOverlay.Layers.Remove(TheLayerKey);

    TheAssetsStatic.aMapView.RefreshAsync();

Hi Dennis,

We had Layer in v13, and Layer has Open(), Draw() and Close().

in v14, we added class LayerBase, made Layer inherites from LayerBase, also added class LayerAsync : LayerBase. LayerAsync has OpenAsync(), DrawAsync() and CloseAsync(), and LayerBase doesn’t have any of those methods. We made this change to introduce LayerAsync for those layers need async operations.

So in your case, you can do something like following if your layer could be a Layer or a LayerAsync:

var layerBase = TheAssetsStatic.aTheLayerOverlay.Layers[TheLayerKey];
if (layerBase is Layer layer)
    layer.Close()
else if (layerBase is LayerAsync layerAsync)
    await layerAsync.CloseAsync();

Thanks,
Ben

hi Ben,

I’ve successfully implemented the Close & CloseAsync methodology. Although I don’t have any AsyncLayer types at this time.

Thanks for your help.
Dennis

I bet it would be called sometime in the future. :slight_smile: have a good weekend!