- globalmapper.SpatialCovers(GM_LayerHandle_t32 aLayer1, GM_LayerHandle_t32 aLayer2, GM_SpatialOps_Params_t aParams) GM_Error_t32
-
The Covers predicate returns all area features in aLayer1 that have a feature in aLayer2 inside or on the border of it. This is a more general case of SpatialContains which must have at least on point inside of the outer feature. This is the reverse case of SpatialCoveredBy
- Parameters:
-
aLayer1 (GM_LayerHandle_t32) – Input layer
aLayer2 (GM_LayerHandle_t32) – Input layer
aParams (GM_SpatialOps_Params_t) – Parameters
- Returns:
-
Error Code
- Return type:
-
GM_Error_t32
BEFORE |
AFTER |
|---|---|
|
|
|
Example
The following is an example of SpatialCovers.
import os
import globalmapper as gm
import_dir = "Z:/GM-20069/spatial_operations_sample_data/"
# Close all layers that may be open
layers_are_open = gm.GetLoadedLayerList()
if layers_are_open:
arr_ptr, arr_size = layers_are_open
initial_layers = gm.GM_LayerHandle_array_frompointer(arr_ptr)
for i in range(arr_size):
gm.CloseLayer(initial_layers[i])
err_LoadLayerList1, array_pointer, array_size_param = gm.LoadLayerList(
os.path.join(import_dir, "OuterBlueCircle.shp"),
gm.GM_LoadFlags_HideAllPrompts,
)
err_LoadLayerList2, array_pointer, array_size_param = gm.LoadLayerList(
os.path.join(import_dir, "LeftInnerRedCircle.shp"),
gm.GM_LoadFlags_HideAllPrompts,
)
# Get handle for the loaded layers
arr_ptr, arr_size = gm.GetLoadedLayerList()
layers_array = gm.GM_LayerHandle_array_frompointer(arr_ptr)
layers_list = gm.carray_to_list(layers_array, arr_size)
### START SAMPLE
spatial_params = gm.GM_SpatialOps_Params_t()
spatial_params.mPredicateResultTarget = gm.GM_PredicateResult_CreateNewLayer
spatial_params.mResultLayerName = "Covers_Result"
err_SpatialCovers = gm.SpatialCovers(
layers_list[0], layers_list[1], spatial_params
)
### END SAMPLE
assert (
gm.GM_Error_None == err_LoadLayerList1
), f"LoadLayerList1: Expected {gm.GM_Error_None}, got {err_LoadLayerList1}"
assert (
gm.GM_Error_None == err_LoadLayerList2
), f"LoadLayerList2: Expected {gm.GM_Error_None}, got {err_LoadLayerList2}"
assert (
gm.GM_Error_None == err_SpatialCovers
), f"SpatialCovers: Expected {gm.GM_Error_None}, got {err_SpatialCovers}"
assert os.path.isdir(import_dir), f"Import directory doesn't exist: {import_dir}"
assert os.path.exists(
os.path.join(import_dir, "OuterBlueCircle.shp")
), "Sample data doesn't exist"
assert os.path.exists(
os.path.join(import_dir, "LeftInnerRedCircle.shp")
), "Sample data doesn't exist"