GM_CombineAreas |
Combines the given list of areas into one or more new area features and adds the new area to the given layer. Any areas that touch or overlap should be combined.
GM_Error_t32 __stdcall GM_CombineAreas ( const GM_AreaFeature_t** aAreaList, // IN: List of areas to combine uint32 aNumAreas, // IN: Number of areas in aAreaList const GM_Projection_t* aAreaProj, // IN: Projection system the area coordinates are in (use NULL for current projection) GM_LayerHandle_t32 aNewAreaLayer // IN: Layer to add new combined areas to )
Here is an example showing how to combine all of the areas in a layer into a new layer:
// Build the list of areas to combine GM_AreaFeature_t** theAreaList = new GM_AreaFeature_t*[ theLayerInfo->mNumAreas ]; uint32 i; for ( i = 0; i < theLayerInfo->mNumAreas; i++ ) { // Get the area feature theAreaList[i] = GM_GetAreaFeature( aLayerHandle, i ); } // Create a new layer and combine the areas into it GM_LayerHandle_t32 theNewAreaLayer = GM_CreateCustomVectorLayer( "CombinedAreas", &theLayerInfo->mNativeProj ); theErr = GM_CombineAreas( (const GM_AreaFeature_t**)theAreaList, theLayerInfo->mNumAreas, &theLayerInfo->mNativeProj, theNewAreaLayer ); // Free the area features that we combined for ( i = 0; i < theLayerInfo->mNumAreas; i++ ) { GM_FreeAreaFeature( theAreaList[i] ); } // Free the area list delete[] theAreaList; theAreaList = NULL;