- globalmapper.SpatialConvexHull(GM_LayerHandle_t32 aLayer, GM_SpatialOps_Params_t aParams, GM_FeatureGrouping_t8 aGrouping, str aStr) GM_Error_t32
-
The Convex Hull spatial transform creates a new layer with a polygon that encloses a set of points, lines, and/or areas. The polygon will be the smallest possible convex polygon that contains the features in the input layer; the shape of a convex hull is analogous to wrapping the features with a rubber band.
The aGrouping parameter controls how many polygons are created: with GM_GroupingNone, a polygon is created for each individual feature; with GM_GroupingPartition, one polygon will be created for each attribute group; and with GM_GroupingAll, all the features on the layer will be enclosed by one polygon.
For an even tighter fit hull, see SpatialConcaveHull.
- Parameters:
-
aLayer (GM_LayerHandle_t32) – Input layer
aParams (GM_SpatialOps_Params_t) – Parameters
aGrouping (GM_FeatureGrouping_t8) – Grouping type
aStr (str) – The attribute list string; may be an empty string
- Returns:
-
Error Code
- Return type:
-
GM_Error_t32
BEFORE |
AFTER |
|---|---|
|
|
|
Example
The following is an example of SpatialConvexHull.
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, "points.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 = "ConvexHull_Result"
err_SpatialConvexHull = gm.SpatialConvexHull(
layers_list[0], spatial_params, gm.GM_GroupingAll, ""
)
### 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_SpatialConvexHull
), f"SpatialConvexHull: Expected {gm.GM_Error_None}, got {err_SpatialConvexHull}"
assert os.path.isdir(import_dir), f"Import directory doesn't exist: {import_dir}"
assert os.path.exists(
os.path.join(import_dir, "points.shp")
), "Sample data doesn't exist"