Logistics.Clustering

Constructor

Logistics.Clustering

Initializes a new instance of the class with default settings.

Properties

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

Methods

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

Example

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,},)
Assignment_table = Opentable("Assignment", "FFB",{data.ClusterTable,},)
// Join the assignment table to the Cities & Towns layer
joined_view = JoinViews("cluster_Assignments" , layer_name + ".ID", Assignment_table + ".ID", )
a = GetFields(joined_view , "All")
// Create a theme, one category for each seed
SetView(joined_view )
theme_field = "[" + joined_view + "].[" +Assignment_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:

AddLayerDB

AddTables

Calculate Tables

Caliper.Charts

CC.ModifyTableOperations

CC.Table

Clustering

Data.Finder

Data.Geocoder

PostgreSQL Connect

PostgreSQL Command

Routing.Bands

Routing.Path

Routing.Router

Table

Utilities.Mail