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 +"].[Seed 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 |