- globalmapper.SpatialUnionSingle(GM_LayerHandle_t32 aLayer1, GM_SpatialOps_Params_t aParams) GM_Error_t32
-
The Single Union operation creates a new layer containing features that represent both overlapping and non-overlapping regions from the input layer. For each region created by overlapping features, identical features are created for each feature that participated in the overlap. Attributes for features in the new layer are copied from their original feature.
- Parameters:
-
aLayer (GM_LayerHandle_t32) – Layer in operation :param GM_SpatialOps_Params_t aParams: Parameters :returns: Error Code :rtype: GM_Error_t32
Note: If you perform a spatial union operation on a single layer with overlapping features, the overlapping area will result in two new features stacked directly on top of each other.
BEFORE |
AFTER |
|---|---|
|
|
|
Example
The following is an example of SpatialUnionSingle.
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_LoadLayerList, array_pointer, array_size_param = gm.LoadLayerList(
os.path.join(import_dir, "SingleLayerCircles.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.mResultLayerName = "UnionSingle_Result"
err_SpatialUnionSingle = gm.SpatialUnionSingle(
layers_list[0], spatial_params
)
### END SAMPLE
assert (
gm.GM_Error_None == err_LoadLayerList
), f"LoadLayerList: Expected {gm.GM_Error_None}, got {err_LoadLayerList}"
assert (
gm.GM_Error_None == err_SpatialUnionSingle
), f"SpatialUnionSingle: Expected {gm.GM_Error_None}, got {err_SpatialUnionSingle}"
assert os.path.isdir(import_dir), f"Import directory doesn't exist: {import_dir}"
assert os.path.exists(
os.path.join(import_dir, "SingleLayerCircles.shp")
), "Sample data doesn't exist"