| Maptitude GISDK Help |
Logistics.Clustering
Initializes a new instance of the class with default settings.
| Name | Type | Contents | |
|---|---|---|---|
| LayerDB | string | Cluster layer database name | |
| Filter | string | Optional. Selection set filter to select items from the LayerDB | |
| Layer | string | If layer is open, name of the cluster layer | |
| Set | string | Optional. If working with an open layer, the name of the selection set. | |
| Iterations | integer | Optional. Number of iterations when clusters are balanced | |
| NumberOfClusters | integer | The number of clusters to be built | |
| Tolerance | numeric | Optional. Stopping condition when clusters are balanced | |
| BalanceClusters | string | Optional. Name of the balancing option. Either Features, Size or Cost | |
| ClusterSummary | string | Optional. Name of the output cluster summary table. | |
| ClusterTable | string | Optional. Name of the cluster assignment output table | |
RestrictClusters(array opts)
Options to restrict cluster size by values in a field in the cluster layer
| Option | Type | Description | |
|---|---|---|---|
| opts | array | ||
| Field | string | Name of the field | |
| Value | numeric | Maximum value for each cluster | |
Run()
Creates the clusters and returns a status of the run
macro "Clustering"
on error do
ShowMessage(GetLastError())
return()
end
// Add a towns layer to the current map
folder = RunMacro("G30 Tutorial Folder")
layer_name = AddLayer(,"Cities & Towns", folder + "CTPlace.cdf","Cities & Towns", )
SetLayer(layer_name)
// Cluster points based on geography and population
obj = CreateObject("Logistics.Clustering")
obj.Layer = layer_name
obj.Set= null
obj.NumberOfClusters = 10
obj.Tolerance = 1
obj.Iterations = 20
obj.RestrictClusters({Field: "Population", Value: 50000000})
obj.CalculateCosts({ Euclidean: true })
obj.ClusterSummary = GetRandFileName("*.bin") // optional
obj.ClusterTable = GetRandFileName("*.bin") // optional
ok = obj.Run()
// get the cluster results
results = obj.GetResults()
data = results.Data
// Open the result tables
summary_table = Opentable("summary", "FFB",{data.ClusterSummary,},)
assigment_table = Opentable("Assigment", "FFB",{data.ClusterTable,},)
// Join the assignment table to the Cities & Towns layer
joined_view = JoinViews("cluster_assigments" , layer_name + ".ID", assigment_table + ".ID", )
a = GetFields(joined_view , "All")
// Create a theme, one category for each seed
SetView(joined_view )
theme_field = "[" + joined_view + "].[" +assigment_table +"].[Cluster ID]"
theme_name = CreateTheme( "Parcel Clusters", theme_field , "Categories", 10 ,)
// set theme styles
RunMacro("G30 new layer default settings", layer_name )
SetIconSize(, 8)
colors = RunMacro("G30 setup colors")
colors = SubArray(colors,3,10)
SetThemeIconColors( theme_name, colors)
ShowTheme( , theme_name )
RedrawMap()
endmacro
See Also:
| ©2025 Caliper Corporation | www.caliper.com |