About the ArcGIS Network Analyst extension Engine application Sample
[C#]
frmNALayerProperties.cs
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using ESRI.ArcGIS.NetworkAnalyst; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.esriSystem; using System.Collections.Generic; using System.Linq; // This form allows users to change the NALayer/NAContext/NASolver properties namespace NAEngine { /// <summary> /// Summary description for frmNALayerProperties. /// </summary> public class frmNALayerProperties : System.Windows.Forms.Form { #region Windows Form Designer generated code (defining controls) /// <summary> /// Required designer variable. /// </summary> private TabControl tabPropPages; private TabPage tabGeneral; private TabPage tabRoute; private TabPage tabServiceArea; private TabPage tabClosestFacility; private TabPage tabODCostMatrix; private TabPage tabVRP; private Button btnOK; private Button btnCancel; private CheckBox chkRouteIgnoreInvalidLocations; private ComboBox cboRouteRestrictUTurns; private Label lblRouteRestrictUTurns; private Label lblRouteAccumulateAttributeNames; private CheckedListBox chklstRouteAccumulateAttributeNames; private Label lblRouteRestrictionAttributeNames; private CheckedListBox chklstRouteRestrictionAttributeNames; private ComboBox cboRouteImpedance; private Label lblRouteImpedance; private CheckBox chkRouteUseHierarchy; private Label labelRouteOutputLines; private ComboBox cboRouteOutputLines; private CheckBox chkRouteUseTimeWindows; private CheckBox chkRoutePreserveLastStop; private CheckBox chkRoutePreserveFirstStop; private CheckBox chkRouteFindBestSequence; private CheckBox chkRouteUseStartTime; private TextBox txtRouteStartTime; private TextBox txtLayerName; private Label lblLayerName; private System.ComponentModel.Container components = null; private ComboBox cboCFOutputLines; private Label lblCFOutputLines; private ComboBox cboCFTravelDirection; private Label lblCFTravelDirection; private TextBox txtCFDefaultTargetFacilityCount; private Label lblCFDefaultTargetFacilityCount; private TextBox txtCFDefaultCutoff; private Label lblCFDefaultCutoff; private CheckBox chkCFIgnoreInvalidLocations; private ComboBox cboCFRestrictUTurns; private Label lblCFRestrictUTurns; private Label lblCFAccumulateAttributeNames; private CheckedListBox chklstCFAccumulateAttributeNames; private Label lblCFRestrictionAttributeNames; private CheckedListBox chklstCFRestrictionAttributeNames; private ComboBox cboCFImpedance; private Label lblCFImpedance; private CheckBox chkCFUseHierarchy; private CheckBox chkODIgnoreInvalidLocations; private ComboBox cboODRestrictUTurns; private Label lblODRestrictUTurns; private Label lblODAccumulateAttributeNames; private CheckedListBox chklstODAccumulateAttributeNames; private Label lblODRestrictionAttributeNames; private CheckedListBox chklstODRestrictionAttributeNames; private ComboBox cboODImpedance; private Label lblODImpedance; private CheckBox chkODUseHierarchy; private ComboBox cboODOutputLines; private Label lblODOutputLines; private TextBox txtODDefaultTargetDestinationCount; private Label lblODDefaultTargetDestinationCount; private TextBox txtODDefaultCutoff; private Label lblODDefaultCutoff; private TextBox txtSADefaultBreaks; private Label lblSADefaultBreaks; private ComboBox cboSAImpedance; private Label lblSAImpedance; private Label lblSAOutputPolygons; private ComboBox cboSAOutputPolygons; private Label lblSAOutputLines; private ComboBox cboSAOutputLines; private CheckBox chkSAMergeSimilarPolygonRanges; private CheckBox chkSAIgnoreInvalidLocations; private ComboBox cboSARestrictUTurns; private Label lblSARestrictUTurns; private Label lblSAAccumulateAttributeNames; private CheckedListBox chklstSAAccumulateAttributeNames; private Label lblSARestrictionAttributeNames; private CheckedListBox chklstSARestrictionAttributeNames; private CheckBox chkSAOverlapLines; private CheckBox chkSASplitPolygonsAtBreaks; private CheckBox chkSAOverlapPolygons; private CheckBox chkSASplitLinesAtBreaks; private ComboBox cboSATrimPolygonDistanceUnits; private TextBox txtSATrimPolygonDistance; private CheckBox chkSATrimOuterPolygon; private CheckBox chkSAIncludeSourceInformationOnLines; private ComboBox cboSATravelDirection; private Label lblSATravelDirection; private Label lblMaxSearchTolerance; private ComboBox cboMaxSearchToleranceUnits; private GroupBox gbSettings; private CheckBox chkVRPUseHierarchy; private ComboBox cboVRPOutputShapeType; private ComboBox cboVRPAllowUTurns; private ComboBox cboVRPTimeFieldUnits; private TextBox txtVRPCapacityCount; private TextBox txtVRPDefaultDate; private ComboBox cboVRPDistanceAttribute; private ComboBox cboVRPTimeAttribute; private Label label7; private Label label6; private Label label5; private Label label4; private Label label3; private Label label2; private Label label1; private Label lblTimeAttribute; private GroupBox gbRestrictions; private CheckedListBox chklstVRPRestrictionAttributeNames; private ComboBox cboVRPTimeWindow; private Label label10; private Label label9; private ComboBox cboVRPTransitTime; private ComboBox cboVRPDistanceFieldUnits; private TabPage tabLocationAllocation; private Label lblTargetMarketShare; private TextBox txtLATargetMarketShare; private ComboBox cboLAImpTransformation; private Label lblImpParameter; private TextBox txtLAImpParameter; private Label lblImpTransformation; private Label lblCostAttribute; private ComboBox cboLAImpedance; private Label lblProblemType; private ComboBox cboLAProblemType; private Label lblCutOff; private TextBox txtLACutOff; private Label lblNumFacilities; private TextBox txtLAFacilitiesToLocate; private ComboBox cboLAOutputLines; private Label label11; private ComboBox cboLATravelDirection; private Label label12; private Label lblLAAccumulateAttributeNames; private CheckedListBox chklstLAAccumulateAttributeNames; private Label lblLARestrictionAttributeNames; private CheckedListBox chklstLARestrictionAttributeNames; private CheckBox chkLAUseHierarchy; private GroupBox grpLASettings; private CheckBox chkLAIgnoreInvalidLocations; private Label label8; private ComboBox cboCFTimeUsage; private TextBox txtCFUseTime; private CheckBox chkODUseTime; private TextBox txtODUseTime; private CheckBox chkSAUseTime; private TextBox txtSAUseTime; private CheckBox chkLAUseTime; private TextBox txtLAUseTime; private Label label13; private TabPage tabAttributeParameters; private DataGridView attributeParameterGrid; private DataGridViewTextBoxColumn dgvcAttribute; private DataGridViewTextBoxColumn dgvcParameter; private DataGridViewTextBoxColumn dgvcValue; private Label label14; private Button btnReset; private TextBox txtMaxSearchTolerance; #endregion #region Windows Form Designer generated code (InitializeComponent) /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.tabPropPages = new System.Windows.Forms.TabControl(); this.tabGeneral = new System.Windows.Forms.TabPage(); this.lblMaxSearchTolerance = new System.Windows.Forms.Label(); this.cboMaxSearchToleranceUnits = new System.Windows.Forms.ComboBox(); this.txtMaxSearchTolerance = new System.Windows.Forms.TextBox(); this.txtLayerName = new System.Windows.Forms.TextBox(); this.lblLayerName = new System.Windows.Forms.Label(); this.tabRoute = new System.Windows.Forms.TabPage(); this.labelRouteOutputLines = new System.Windows.Forms.Label(); this.cboRouteOutputLines = new System.Windows.Forms.ComboBox(); this.chkRouteUseTimeWindows = new System.Windows.Forms.CheckBox(); this.chkRoutePreserveLastStop = new System.Windows.Forms.CheckBox(); this.chkRoutePreserveFirstStop = new System.Windows.Forms.CheckBox(); this.chkRouteFindBestSequence = new System.Windows.Forms.CheckBox(); this.chkRouteUseStartTime = new System.Windows.Forms.CheckBox(); this.txtRouteStartTime = new System.Windows.Forms.TextBox(); this.chkRouteIgnoreInvalidLocations = new System.Windows.Forms.CheckBox(); this.cboRouteRestrictUTurns = new System.Windows.Forms.ComboBox(); this.lblRouteRestrictUTurns = new System.Windows.Forms.Label(); this.lblRouteAccumulateAttributeNames = new System.Windows.Forms.Label(); this.chklstRouteAccumulateAttributeNames = new System.Windows.Forms.CheckedListBox(); this.lblRouteRestrictionAttributeNames = new System.Windows.Forms.Label(); this.chklstRouteRestrictionAttributeNames = new System.Windows.Forms.CheckedListBox(); this.cboRouteImpedance = new System.Windows.Forms.ComboBox(); this.lblRouteImpedance = new System.Windows.Forms.Label(); this.chkRouteUseHierarchy = new System.Windows.Forms.CheckBox(); this.tabClosestFacility = new System.Windows.Forms.TabPage(); this.label13 = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); this.cboCFTimeUsage = new System.Windows.Forms.ComboBox(); this.txtCFUseTime = new System.Windows.Forms.TextBox(); this.chkCFIgnoreInvalidLocations = new System.Windows.Forms.CheckBox(); this.cboCFRestrictUTurns = new System.Windows.Forms.ComboBox(); this.lblCFRestrictUTurns = new System.Windows.Forms.Label(); this.lblCFAccumulateAttributeNames = new System.Windows.Forms.Label(); this.chklstCFAccumulateAttributeNames = new System.Windows.Forms.CheckedListBox(); this.lblCFRestrictionAttributeNames = new System.Windows.Forms.Label(); this.chklstCFRestrictionAttributeNames = new System.Windows.Forms.CheckedListBox(); this.cboCFImpedance = new System.Windows.Forms.ComboBox(); this.lblCFImpedance = new System.Windows.Forms.Label(); this.chkCFUseHierarchy = new System.Windows.Forms.CheckBox(); this.cboCFOutputLines = new System.Windows.Forms.ComboBox(); this.lblCFOutputLines = new System.Windows.Forms.Label(); this.cboCFTravelDirection = new System.Windows.Forms.ComboBox(); this.lblCFTravelDirection = new System.Windows.Forms.Label(); this.txtCFDefaultTargetFacilityCount = new System.Windows.Forms.TextBox(); this.lblCFDefaultTargetFacilityCount = new System.Windows.Forms.Label(); this.txtCFDefaultCutoff = new System.Windows.Forms.TextBox(); this.lblCFDefaultCutoff = new System.Windows.Forms.Label(); this.tabODCostMatrix = new System.Windows.Forms.TabPage(); this.chkODUseTime = new System.Windows.Forms.CheckBox(); this.txtODUseTime = new System.Windows.Forms.TextBox(); this.chkODIgnoreInvalidLocations = new System.Windows.Forms.CheckBox(); this.cboODRestrictUTurns = new System.Windows.Forms.ComboBox(); this.lblODRestrictUTurns = new System.Windows.Forms.Label(); this.lblODAccumulateAttributeNames = new System.Windows.Forms.Label(); this.chklstODAccumulateAttributeNames = new System.Windows.Forms.CheckedListBox(); this.lblODRestrictionAttributeNames = new System.Windows.Forms.Label(); this.chklstODRestrictionAttributeNames = new System.Windows.Forms.CheckedListBox(); this.cboODImpedance = new System.Windows.Forms.ComboBox(); this.lblODImpedance = new System.Windows.Forms.Label(); this.chkODUseHierarchy = new System.Windows.Forms.CheckBox(); this.cboODOutputLines = new System.Windows.Forms.ComboBox(); this.lblODOutputLines = new System.Windows.Forms.Label(); this.txtODDefaultTargetDestinationCount = new System.Windows.Forms.TextBox(); this.lblODDefaultTargetDestinationCount = new System.Windows.Forms.Label(); this.txtODDefaultCutoff = new System.Windows.Forms.TextBox(); this.lblODDefaultCutoff = new System.Windows.Forms.Label(); this.tabServiceArea = new System.Windows.Forms.TabPage(); this.chkSAUseTime = new System.Windows.Forms.CheckBox(); this.txtSAUseTime = new System.Windows.Forms.TextBox(); this.cboSATrimPolygonDistanceUnits = new System.Windows.Forms.ComboBox(); this.txtSATrimPolygonDistance = new System.Windows.Forms.TextBox(); this.chkSATrimOuterPolygon = new System.Windows.Forms.CheckBox(); this.chkSAIncludeSourceInformationOnLines = new System.Windows.Forms.CheckBox(); this.cboSATravelDirection = new System.Windows.Forms.ComboBox(); this.lblSATravelDirection = new System.Windows.Forms.Label(); this.chkSASplitPolygonsAtBreaks = new System.Windows.Forms.CheckBox(); this.chkSAOverlapPolygons = new System.Windows.Forms.CheckBox(); this.chkSASplitLinesAtBreaks = new System.Windows.Forms.CheckBox(); this.chkSAOverlapLines = new System.Windows.Forms.CheckBox(); this.chkSAIgnoreInvalidLocations = new System.Windows.Forms.CheckBox(); this.cboSARestrictUTurns = new System.Windows.Forms.ComboBox(); this.lblSARestrictUTurns = new System.Windows.Forms.Label(); this.lblSAAccumulateAttributeNames = new System.Windows.Forms.Label(); this.chklstSAAccumulateAttributeNames = new System.Windows.Forms.CheckedListBox(); this.lblSARestrictionAttributeNames = new System.Windows.Forms.Label(); this.chklstSARestrictionAttributeNames = new System.Windows.Forms.CheckedListBox(); this.lblSAOutputPolygons = new System.Windows.Forms.Label(); this.cboSAOutputPolygons = new System.Windows.Forms.ComboBox(); this.lblSAOutputLines = new System.Windows.Forms.Label(); this.cboSAOutputLines = new System.Windows.Forms.ComboBox(); this.chkSAMergeSimilarPolygonRanges = new System.Windows.Forms.CheckBox(); this.txtSADefaultBreaks = new System.Windows.Forms.TextBox(); this.lblSADefaultBreaks = new System.Windows.Forms.Label(); this.cboSAImpedance = new System.Windows.Forms.ComboBox(); this.lblSAImpedance = new System.Windows.Forms.Label(); this.tabVRP = new System.Windows.Forms.TabPage(); this.gbRestrictions = new System.Windows.Forms.GroupBox(); this.chklstVRPRestrictionAttributeNames = new System.Windows.Forms.CheckedListBox(); this.gbSettings = new System.Windows.Forms.GroupBox(); this.cboVRPDistanceFieldUnits = new System.Windows.Forms.ComboBox(); this.cboVRPTransitTime = new System.Windows.Forms.ComboBox(); this.cboVRPTimeWindow = new System.Windows.Forms.ComboBox(); this.label10 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label(); this.chkVRPUseHierarchy = new System.Windows.Forms.CheckBox(); this.cboVRPOutputShapeType = new System.Windows.Forms.ComboBox(); this.cboVRPAllowUTurns = new System.Windows.Forms.ComboBox(); this.cboVRPTimeFieldUnits = new System.Windows.Forms.ComboBox(); this.txtVRPCapacityCount = new System.Windows.Forms.TextBox(); this.txtVRPDefaultDate = new System.Windows.Forms.TextBox(); this.cboVRPDistanceAttribute = new System.Windows.Forms.ComboBox(); this.cboVRPTimeAttribute = new System.Windows.Forms.ComboBox(); this.label7 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.lblTimeAttribute = new System.Windows.Forms.Label(); this.tabLocationAllocation = new System.Windows.Forms.TabPage(); this.chkLAUseTime = new System.Windows.Forms.CheckBox(); this.txtLAUseTime = new System.Windows.Forms.TextBox(); this.chkLAIgnoreInvalidLocations = new System.Windows.Forms.CheckBox(); this.grpLASettings = new System.Windows.Forms.GroupBox(); this.lblTargetMarketShare = new System.Windows.Forms.Label(); this.txtLATargetMarketShare = new System.Windows.Forms.TextBox(); this.cboLAImpTransformation = new System.Windows.Forms.ComboBox(); this.lblImpParameter = new System.Windows.Forms.Label(); this.txtLAImpParameter = new System.Windows.Forms.TextBox(); this.lblImpTransformation = new System.Windows.Forms.Label(); this.lblProblemType = new System.Windows.Forms.Label(); this.cboLAProblemType = new System.Windows.Forms.ComboBox(); this.lblCutOff = new System.Windows.Forms.Label(); this.txtLACutOff = new System.Windows.Forms.TextBox(); this.lblNumFacilities = new System.Windows.Forms.Label(); this.txtLAFacilitiesToLocate = new System.Windows.Forms.TextBox(); this.chkLAUseHierarchy = new System.Windows.Forms.CheckBox(); this.lblLAAccumulateAttributeNames = new System.Windows.Forms.Label(); this.chklstLAAccumulateAttributeNames = new System.Windows.Forms.CheckedListBox(); this.lblLARestrictionAttributeNames = new System.Windows.Forms.Label(); this.chklstLARestrictionAttributeNames = new System.Windows.Forms.CheckedListBox(); this.cboLAOutputLines = new System.Windows.Forms.ComboBox(); this.label11 = new System.Windows.Forms.Label(); this.cboLATravelDirection = new System.Windows.Forms.ComboBox(); this.label12 = new System.Windows.Forms.Label(); this.lblCostAttribute = new System.Windows.Forms.Label(); this.cboLAImpedance = new System.Windows.Forms.ComboBox(); this.tabAttributeParameters = new System.Windows.Forms.TabPage(); this.btnReset = new System.Windows.Forms.Button(); this.attributeParameterGrid = new System.Windows.Forms.DataGridView(); this.dgvcAttribute = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvcParameter = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.dgvcValue = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.label14 = new System.Windows.Forms.Label(); this.btnOK = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.tabPropPages.SuspendLayout(); this.tabGeneral.SuspendLayout(); this.tabRoute.SuspendLayout(); this.tabClosestFacility.SuspendLayout(); this.tabODCostMatrix.SuspendLayout(); this.tabServiceArea.SuspendLayout(); this.tabVRP.SuspendLayout(); this.gbRestrictions.SuspendLayout(); this.gbSettings.SuspendLayout(); this.tabLocationAllocation.SuspendLayout(); this.grpLASettings.SuspendLayout(); this.tabAttributeParameters.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.attributeParameterGrid)).BeginInit(); this.SuspendLayout(); // // tabPropPages // this.tabPropPages.Controls.Add(this.tabGeneral); this.tabPropPages.Controls.Add(this.tabRoute); this.tabPropPages.Controls.Add(this.tabClosestFacility); this.tabPropPages.Controls.Add(this.tabODCostMatrix); this.tabPropPages.Controls.Add(this.tabServiceArea); this.tabPropPages.Controls.Add(this.tabVRP); this.tabPropPages.Controls.Add(this.tabLocationAllocation); this.tabPropPages.Controls.Add(this.tabAttributeParameters); this.tabPropPages.Location = new System.Drawing.Point(8, 8); this.tabPropPages.Name = "tabPropPages"; this.tabPropPages.SelectedIndex = 0; this.tabPropPages.Size = new System.Drawing.Size(719, 499); this.tabPropPages.TabIndex = 0; // // tabGeneral // this.tabGeneral.Controls.Add(this.lblMaxSearchTolerance); this.tabGeneral.Controls.Add(this.cboMaxSearchToleranceUnits); this.tabGeneral.Controls.Add(this.txtMaxSearchTolerance); this.tabGeneral.Controls.Add(this.txtLayerName); this.tabGeneral.Controls.Add(this.lblLayerName); this.tabGeneral.Location = new System.Drawing.Point(4, 22); this.tabGeneral.Name = "tabGeneral"; this.tabGeneral.Size = new System.Drawing.Size(711, 473); this.tabGeneral.TabIndex = 0; this.tabGeneral.Text = "General"; this.tabGeneral.UseVisualStyleBackColor = true; // // lblMaxSearchTolerance // this.lblMaxSearchTolerance.Location = new System.Drawing.Point(24, 64); this.lblMaxSearchTolerance.Name = "lblMaxSearchTolerance"; this.lblMaxSearchTolerance.Size = new System.Drawing.Size(100, 24); this.lblMaxSearchTolerance.TabIndex = 123; this.lblMaxSearchTolerance.Text = "Search Tolerance"; // // cboMaxSearchToleranceUnits // this.cboMaxSearchToleranceUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboMaxSearchToleranceUnits.ItemHeight = 13; this.cboMaxSearchToleranceUnits.Items.AddRange(new object[] { "Unknown Units", "Inches", "Points", "Feet", "Yards", "Miles", "Nautical Miles", "Millimeters", "Centimeters", "Meters", "Kilometers", "DecimalDegrees", "Decimeters"}); this.cboMaxSearchToleranceUnits.Location = new System.Drawing.Point(258, 61); this.cboMaxSearchToleranceUnits.Name = "cboMaxSearchToleranceUnits"; this.cboMaxSearchToleranceUnits.Size = new System.Drawing.Size(130, 21); this.cboMaxSearchToleranceUnits.TabIndex = 122; // // txtMaxSearchTolerance // this.txtMaxSearchTolerance.Location = new System.Drawing.Point(130, 62); this.txtMaxSearchTolerance.Name = "txtMaxSearchTolerance"; this.txtMaxSearchTolerance.Size = new System.Drawing.Size(122, 20); this.txtMaxSearchTolerance.TabIndex = 121; // // txtLayerName // this.txtLayerName.Location = new System.Drawing.Point(130, 32); this.txtLayerName.Name = "txtLayerName"; this.txtLayerName.Size = new System.Drawing.Size(258, 20); this.txtLayerName.TabIndex = 1; // // lblLayerName // this.lblLayerName.Location = new System.Drawing.Point(24, 35); this.lblLayerName.Name = "lblLayerName"; this.lblLayerName.Size = new System.Drawing.Size(88, 24); this.lblLayerName.TabIndex = 0; this.lblLayerName.Text = "Layer Name"; // // tabRoute // this.tabRoute.Controls.Add(this.labelRouteOutputLines); this.tabRoute.Controls.Add(this.cboRouteOutputLines); this.tabRoute.Controls.Add(this.chkRouteUseTimeWindows); this.tabRoute.Controls.Add(this.chkRoutePreserveLastStop); this.tabRoute.Controls.Add(this.chkRoutePreserveFirstStop); this.tabRoute.Controls.Add(this.chkRouteFindBestSequence); this.tabRoute.Controls.Add(this.chkRouteUseStartTime); this.tabRoute.Controls.Add(this.txtRouteStartTime); this.tabRoute.Controls.Add(this.chkRouteIgnoreInvalidLocations); this.tabRoute.Controls.Add(this.cboRouteRestrictUTurns); this.tabRoute.Controls.Add(this.lblRouteRestrictUTurns); this.tabRoute.Controls.Add(this.lblRouteAccumulateAttributeNames); this.tabRoute.Controls.Add(this.chklstRouteAccumulateAttributeNames); this.tabRoute.Controls.Add(this.lblRouteRestrictionAttributeNames); this.tabRoute.Controls.Add(this.chklstRouteRestrictionAttributeNames); this.tabRoute.Controls.Add(this.cboRouteImpedance); this.tabRoute.Controls.Add(this.lblRouteImpedance); this.tabRoute.Controls.Add(this.chkRouteUseHierarchy); this.tabRoute.Location = new System.Drawing.Point(4, 22); this.tabRoute.Name = "tabRoute"; this.tabRoute.Size = new System.Drawing.Size(711, 473); this.tabRoute.TabIndex = 1; this.tabRoute.Text = "Route"; this.tabRoute.UseVisualStyleBackColor = true; // // labelRouteOutputLines // this.labelRouteOutputLines.Location = new System.Drawing.Point(20, 209); this.labelRouteOutputLines.Name = "labelRouteOutputLines"; this.labelRouteOutputLines.Size = new System.Drawing.Size(40, 16); this.labelRouteOutputLines.TabIndex = 96; this.labelRouteOutputLines.Text = "Shape"; // // cboRouteOutputLines // this.cboRouteOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboRouteOutputLines.ItemHeight = 13; this.cboRouteOutputLines.Items.AddRange(new object[] { "No Lines", "Straight Lines", "True Shape", "True Shape With Measures"}); this.cboRouteOutputLines.Location = new System.Drawing.Point(148, 204); this.cboRouteOutputLines.Name = "cboRouteOutputLines"; this.cboRouteOutputLines.Size = new System.Drawing.Size(200, 21); this.cboRouteOutputLines.TabIndex = 95; // // chkRouteUseTimeWindows // this.chkRouteUseTimeWindows.Location = new System.Drawing.Point(20, 76); this.chkRouteUseTimeWindows.Name = "chkRouteUseTimeWindows"; this.chkRouteUseTimeWindows.Size = new System.Drawing.Size(128, 16); this.chkRouteUseTimeWindows.TabIndex = 92; this.chkRouteUseTimeWindows.Text = "Use Time Windows"; // // chkRoutePreserveLastStop // this.chkRoutePreserveLastStop.Location = new System.Drawing.Point(39, 151); this.chkRoutePreserveLastStop.Name = "chkRoutePreserveLastStop"; this.chkRoutePreserveLastStop.Size = new System.Drawing.Size(331, 23); this.chkRoutePreserveLastStop.TabIndex = 91; this.chkRoutePreserveLastStop.Text = "Preserve Last Stop"; // // chkRoutePreserveFirstStop // this.chkRoutePreserveFirstStop.Location = new System.Drawing.Point(39, 123); this.chkRoutePreserveFirstStop.Name = "chkRoutePreserveFirstStop"; this.chkRoutePreserveFirstStop.Size = new System.Drawing.Size(331, 28); this.chkRoutePreserveFirstStop.TabIndex = 90; this.chkRoutePreserveFirstStop.Text = "Preserve First Stop"; // // chkRouteFindBestSequence // this.chkRouteFindBestSequence.Checked = true; this.chkRouteFindBestSequence.CheckState = System.Windows.Forms.CheckState.Checked; this.chkRouteFindBestSequence.Location = new System.Drawing.Point(20, 98); this.chkRouteFindBestSequence.Name = "chkRouteFindBestSequence"; this.chkRouteFindBestSequence.Size = new System.Drawing.Size(336, 32); this.chkRouteFindBestSequence.TabIndex = 89; this.chkRouteFindBestSequence.Text = "Find Best Sequence"; this.chkRouteFindBestSequence.CheckedChanged += new System.EventHandler(this.chkRouteFindBestSequence_CheckedChanged); // // chkRouteUseStartTime // this.chkRouteUseStartTime.Checked = true; this.chkRouteUseStartTime.CheckState = System.Windows.Forms.CheckState.Checked; this.chkRouteUseStartTime.Location = new System.Drawing.Point(20, 54); this.chkRouteUseStartTime.Name = "chkRouteUseStartTime"; this.chkRouteUseStartTime.Size = new System.Drawing.Size(104, 16); this.chkRouteUseStartTime.TabIndex = 93; this.chkRouteUseStartTime.Text = "Use Start Time"; this.chkRouteUseStartTime.CheckedChanged += new System.EventHandler(this.chkRouteUseStartTime_CheckedChanged); // // txtRouteStartTime // this.txtRouteStartTime.Location = new System.Drawing.Point(151, 50); this.txtRouteStartTime.Name = "txtRouteStartTime"; this.txtRouteStartTime.Size = new System.Drawing.Size(200, 20); this.txtRouteStartTime.TabIndex = 94; // // chkRouteIgnoreInvalidLocations // this.chkRouteIgnoreInvalidLocations.Location = new System.Drawing.Point(20, 252); this.chkRouteIgnoreInvalidLocations.Name = "chkRouteIgnoreInvalidLocations"; this.chkRouteIgnoreInvalidLocations.Size = new System.Drawing.Size(144, 29); this.chkRouteIgnoreInvalidLocations.TabIndex = 81; this.chkRouteIgnoreInvalidLocations.Text = "Ignore Invalid Locations"; // // cboRouteRestrictUTurns // this.cboRouteRestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboRouteRestrictUTurns.ItemHeight = 13; this.cboRouteRestrictUTurns.Items.AddRange(new object[] { "No U-Turns", "Allow U-Turns", "Only At Dead Ends"}); this.cboRouteRestrictUTurns.Location = new System.Drawing.Point(148, 177); this.cboRouteRestrictUTurns.Name = "cboRouteRestrictUTurns"; this.cboRouteRestrictUTurns.Size = new System.Drawing.Size(200, 21); this.cboRouteRestrictUTurns.TabIndex = 80; // // lblRouteRestrictUTurns // this.lblRouteRestrictUTurns.Location = new System.Drawing.Point(20, 182); this.lblRouteRestrictUTurns.Name = "lblRouteRestrictUTurns"; this.lblRouteRestrictUTurns.Size = new System.Drawing.Size(88, 16); this.lblRouteRestrictUTurns.TabIndex = 88; this.lblRouteRestrictUTurns.Text = "UTurn Policy"; // // lblRouteAccumulateAttributeNames // this.lblRouteAccumulateAttributeNames.Location = new System.Drawing.Point(236, 284); this.lblRouteAccumulateAttributeNames.Name = "lblRouteAccumulateAttributeNames"; this.lblRouteAccumulateAttributeNames.Size = new System.Drawing.Size(120, 16); this.lblRouteAccumulateAttributeNames.TabIndex = 87; this.lblRouteAccumulateAttributeNames.Text = "Accumulate Attributes"; // // chklstRouteAccumulateAttributeNames // this.chklstRouteAccumulateAttributeNames.CheckOnClick = true; this.chklstRouteAccumulateAttributeNames.Location = new System.Drawing.Point(236, 300); this.chklstRouteAccumulateAttributeNames.Name = "chklstRouteAccumulateAttributeNames"; this.chklstRouteAccumulateAttributeNames.ScrollAlwaysVisible = true; this.chklstRouteAccumulateAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstRouteAccumulateAttributeNames.TabIndex = 84; // // lblRouteRestrictionAttributeNames // this.lblRouteRestrictionAttributeNames.Location = new System.Drawing.Point(20, 284); this.lblRouteRestrictionAttributeNames.Name = "lblRouteRestrictionAttributeNames"; this.lblRouteRestrictionAttributeNames.Size = new System.Drawing.Size(72, 16); this.lblRouteRestrictionAttributeNames.TabIndex = 86; this.lblRouteRestrictionAttributeNames.Text = "Restrictions"; // // chklstRouteRestrictionAttributeNames // this.chklstRouteRestrictionAttributeNames.CheckOnClick = true; this.chklstRouteRestrictionAttributeNames.Location = new System.Drawing.Point(20, 300); this.chklstRouteRestrictionAttributeNames.Name = "chklstRouteRestrictionAttributeNames"; this.chklstRouteRestrictionAttributeNames.ScrollAlwaysVisible = true; this.chklstRouteRestrictionAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstRouteRestrictionAttributeNames.TabIndex = 83; // // cboRouteImpedance // this.cboRouteImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboRouteImpedance.ItemHeight = 13; this.cboRouteImpedance.Location = new System.Drawing.Point(151, 23); this.cboRouteImpedance.Name = "cboRouteImpedance"; this.cboRouteImpedance.Size = new System.Drawing.Size(200, 21); this.cboRouteImpedance.TabIndex = 79; // // lblRouteImpedance // this.lblRouteImpedance.Location = new System.Drawing.Point(20, 28); this.lblRouteImpedance.Name = "lblRouteImpedance"; this.lblRouteImpedance.Size = new System.Drawing.Size(64, 16); this.lblRouteImpedance.TabIndex = 85; this.lblRouteImpedance.Text = "Impedance"; // // chkRouteUseHierarchy // this.chkRouteUseHierarchy.Location = new System.Drawing.Point(20, 228); this.chkRouteUseHierarchy.Name = "chkRouteUseHierarchy"; this.chkRouteUseHierarchy.Size = new System.Drawing.Size(96, 26); this.chkRouteUseHierarchy.TabIndex = 82; this.chkRouteUseHierarchy.Text = "Use Hierarchy"; // // tabClosestFacility // this.tabClosestFacility.Controls.Add(this.label13); this.tabClosestFacility.Controls.Add(this.label8); this.tabClosestFacility.Controls.Add(this.cboCFTimeUsage); this.tabClosestFacility.Controls.Add(this.txtCFUseTime); this.tabClosestFacility.Controls.Add(this.chkCFIgnoreInvalidLocations); this.tabClosestFacility.Controls.Add(this.cboCFRestrictUTurns); this.tabClosestFacility.Controls.Add(this.lblCFRestrictUTurns); this.tabClosestFacility.Controls.Add(this.lblCFAccumulateAttributeNames); this.tabClosestFacility.Controls.Add(this.chklstCFAccumulateAttributeNames); this.tabClosestFacility.Controls.Add(this.lblCFRestrictionAttributeNames); this.tabClosestFacility.Controls.Add(this.chklstCFRestrictionAttributeNames); this.tabClosestFacility.Controls.Add(this.cboCFImpedance); this.tabClosestFacility.Controls.Add(this.lblCFImpedance); this.tabClosestFacility.Controls.Add(this.chkCFUseHierarchy); this.tabClosestFacility.Controls.Add(this.cboCFOutputLines); this.tabClosestFacility.Controls.Add(this.lblCFOutputLines); this.tabClosestFacility.Controls.Add(this.cboCFTravelDirection); this.tabClosestFacility.Controls.Add(this.lblCFTravelDirection); this.tabClosestFacility.Controls.Add(this.txtCFDefaultTargetFacilityCount); this.tabClosestFacility.Controls.Add(this.lblCFDefaultTargetFacilityCount); this.tabClosestFacility.Controls.Add(this.txtCFDefaultCutoff); this.tabClosestFacility.Controls.Add(this.lblCFDefaultCutoff); this.tabClosestFacility.Location = new System.Drawing.Point(4, 22); this.tabClosestFacility.Name = "tabClosestFacility"; this.tabClosestFacility.Size = new System.Drawing.Size(711, 473); this.tabClosestFacility.TabIndex = 3; this.tabClosestFacility.Text = "Closest Facility"; this.tabClosestFacility.UseVisualStyleBackColor = true; // // label13 // this.label13.Location = new System.Drawing.Point(20, 78); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(114, 16); this.label13.TabIndex = 117; this.label13.Text = "Time"; // // label8 // this.label8.Location = new System.Drawing.Point(20, 52); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(114, 16); this.label8.TabIndex = 116; this.label8.Text = "Time Usage"; // // cboCFTimeUsage // this.cboCFTimeUsage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboCFTimeUsage.ItemHeight = 13; this.cboCFTimeUsage.Items.AddRange(new object[] { "Not used", "End time", "Start time"}); this.cboCFTimeUsage.Location = new System.Drawing.Point(151, 49); this.cboCFTimeUsage.Name = "cboCFTimeUsage"; this.cboCFTimeUsage.Size = new System.Drawing.Size(200, 21); this.cboCFTimeUsage.TabIndex = 115; // // txtCFUseTime // this.txtCFUseTime.Location = new System.Drawing.Point(151, 75); this.txtCFUseTime.Name = "txtCFUseTime"; this.txtCFUseTime.Size = new System.Drawing.Size(200, 20); this.txtCFUseTime.TabIndex = 114; // // chkCFIgnoreInvalidLocations // this.chkCFIgnoreInvalidLocations.Location = new System.Drawing.Point(20, 270); this.chkCFIgnoreInvalidLocations.Name = "chkCFIgnoreInvalidLocations"; this.chkCFIgnoreInvalidLocations.Size = new System.Drawing.Size(144, 29); this.chkCFIgnoreInvalidLocations.TabIndex = 105; this.chkCFIgnoreInvalidLocations.Text = "Ignore Invalid Locations"; // // cboCFRestrictUTurns // this.cboCFRestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboCFRestrictUTurns.ItemHeight = 13; this.cboCFRestrictUTurns.Items.AddRange(new object[] { "No U-Turns", "Allow U-Turns", "Only At Dead Ends"}); this.cboCFRestrictUTurns.Location = new System.Drawing.Point(151, 179); this.cboCFRestrictUTurns.Name = "cboCFRestrictUTurns"; this.cboCFRestrictUTurns.Size = new System.Drawing.Size(200, 21); this.cboCFRestrictUTurns.TabIndex = 104; // // lblCFRestrictUTurns // this.lblCFRestrictUTurns.Location = new System.Drawing.Point(20, 184); this.lblCFRestrictUTurns.Name = "lblCFRestrictUTurns"; this.lblCFRestrictUTurns.Size = new System.Drawing.Size(88, 16); this.lblCFRestrictUTurns.TabIndex = 112; this.lblCFRestrictUTurns.Text = "UTurn Policy"; // // lblCFAccumulateAttributeNames // this.lblCFAccumulateAttributeNames.Location = new System.Drawing.Point(236, 302); this.lblCFAccumulateAttributeNames.Name = "lblCFAccumulateAttributeNames"; this.lblCFAccumulateAttributeNames.Size = new System.Drawing.Size(120, 16); this.lblCFAccumulateAttributeNames.TabIndex = 111; this.lblCFAccumulateAttributeNames.Text = "Accumulate Attributes"; // // chklstCFAccumulateAttributeNames // this.chklstCFAccumulateAttributeNames.CheckOnClick = true; this.chklstCFAccumulateAttributeNames.Location = new System.Drawing.Point(236, 318); this.chklstCFAccumulateAttributeNames.Name = "chklstCFAccumulateAttributeNames"; this.chklstCFAccumulateAttributeNames.ScrollAlwaysVisible = true; this.chklstCFAccumulateAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstCFAccumulateAttributeNames.TabIndex = 108; // // lblCFRestrictionAttributeNames // this.lblCFRestrictionAttributeNames.Location = new System.Drawing.Point(20, 302); this.lblCFRestrictionAttributeNames.Name = "lblCFRestrictionAttributeNames"; this.lblCFRestrictionAttributeNames.Size = new System.Drawing.Size(72, 16); this.lblCFRestrictionAttributeNames.TabIndex = 110; this.lblCFRestrictionAttributeNames.Text = "Restrictions"; // // chklstCFRestrictionAttributeNames // this.chklstCFRestrictionAttributeNames.CheckOnClick = true; this.chklstCFRestrictionAttributeNames.Location = new System.Drawing.Point(20, 318); this.chklstCFRestrictionAttributeNames.Name = "chklstCFRestrictionAttributeNames"; this.chklstCFRestrictionAttributeNames.ScrollAlwaysVisible = true; this.chklstCFRestrictionAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstCFRestrictionAttributeNames.TabIndex = 107; // // cboCFImpedance // this.cboCFImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboCFImpedance.ItemHeight = 13; this.cboCFImpedance.Location = new System.Drawing.Point(151, 23); this.cboCFImpedance.Name = "cboCFImpedance"; this.cboCFImpedance.Size = new System.Drawing.Size(200, 21); this.cboCFImpedance.TabIndex = 103; // // lblCFImpedance // this.lblCFImpedance.Location = new System.Drawing.Point(20, 28); this.lblCFImpedance.Name = "lblCFImpedance"; this.lblCFImpedance.Size = new System.Drawing.Size(64, 16); this.lblCFImpedance.TabIndex = 109; this.lblCFImpedance.Text = "Impedance"; // // chkCFUseHierarchy // this.chkCFUseHierarchy.Location = new System.Drawing.Point(20, 238); this.chkCFUseHierarchy.Name = "chkCFUseHierarchy"; this.chkCFUseHierarchy.Size = new System.Drawing.Size(96, 26); this.chkCFUseHierarchy.TabIndex = 106; this.chkCFUseHierarchy.Text = "Use Hierarchy"; // // cboCFOutputLines // this.cboCFOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboCFOutputLines.ItemHeight = 13; this.cboCFOutputLines.Items.AddRange(new object[] { "No Lines", "Straight Lines", "True Shape", "True Shape With Measures"}); this.cboCFOutputLines.Location = new System.Drawing.Point(151, 206); this.cboCFOutputLines.Name = "cboCFOutputLines"; this.cboCFOutputLines.Size = new System.Drawing.Size(200, 21); this.cboCFOutputLines.TabIndex = 101; // // lblCFOutputLines // this.lblCFOutputLines.Location = new System.Drawing.Point(20, 211); this.lblCFOutputLines.Name = "lblCFOutputLines"; this.lblCFOutputLines.Size = new System.Drawing.Size(114, 16); this.lblCFOutputLines.TabIndex = 102; this.lblCFOutputLines.Text = "Shape"; // // cboCFTravelDirection // this.cboCFTravelDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboCFTravelDirection.ItemHeight = 13; this.cboCFTravelDirection.Items.AddRange(new object[] { "From Facility", "To Facility"}); this.cboCFTravelDirection.Location = new System.Drawing.Point(151, 152); this.cboCFTravelDirection.Name = "cboCFTravelDirection"; this.cboCFTravelDirection.Size = new System.Drawing.Size(200, 21); this.cboCFTravelDirection.TabIndex = 99; // // lblCFTravelDirection // this.lblCFTravelDirection.Location = new System.Drawing.Point(20, 157); this.lblCFTravelDirection.Name = "lblCFTravelDirection"; this.lblCFTravelDirection.Size = new System.Drawing.Size(114, 16); this.lblCFTravelDirection.TabIndex = 100; this.lblCFTravelDirection.Text = "Travel Direction"; // // txtCFDefaultTargetFacilityCount // this.txtCFDefaultTargetFacilityCount.Location = new System.Drawing.Point(151, 126); this.txtCFDefaultTargetFacilityCount.Name = "txtCFDefaultTargetFacilityCount"; this.txtCFDefaultTargetFacilityCount.Size = new System.Drawing.Size(200, 20); this.txtCFDefaultTargetFacilityCount.TabIndex = 98; // // lblCFDefaultTargetFacilityCount // this.lblCFDefaultTargetFacilityCount.Location = new System.Drawing.Point(20, 130); this.lblCFDefaultTargetFacilityCount.Name = "lblCFDefaultTargetFacilityCount"; this.lblCFDefaultTargetFacilityCount.Size = new System.Drawing.Size(114, 16); this.lblCFDefaultTargetFacilityCount.TabIndex = 97; this.lblCFDefaultTargetFacilityCount.Text = "Number of Facilities"; // // txtCFDefaultCutoff // this.txtCFDefaultCutoff.Location = new System.Drawing.Point(151, 100); this.txtCFDefaultCutoff.Name = "txtCFDefaultCutoff"; this.txtCFDefaultCutoff.Size = new System.Drawing.Size(200, 20); this.txtCFDefaultCutoff.TabIndex = 96; // // lblCFDefaultCutoff // this.lblCFDefaultCutoff.Location = new System.Drawing.Point(20, 104); this.lblCFDefaultCutoff.Name = "lblCFDefaultCutoff"; this.lblCFDefaultCutoff.Size = new System.Drawing.Size(114, 16); this.lblCFDefaultCutoff.TabIndex = 95; this.lblCFDefaultCutoff.Text = "Default Cutoff"; // // tabODCostMatrix // this.tabODCostMatrix.Controls.Add(this.chkODUseTime); this.tabODCostMatrix.Controls.Add(this.txtODUseTime); this.tabODCostMatrix.Controls.Add(this.chkODIgnoreInvalidLocations); this.tabODCostMatrix.Controls.Add(this.cboODRestrictUTurns); this.tabODCostMatrix.Controls.Add(this.lblODRestrictUTurns); this.tabODCostMatrix.Controls.Add(this.lblODAccumulateAttributeNames); this.tabODCostMatrix.Controls.Add(this.chklstODAccumulateAttributeNames); this.tabODCostMatrix.Controls.Add(this.lblODRestrictionAttributeNames); this.tabODCostMatrix.Controls.Add(this.chklstODRestrictionAttributeNames); this.tabODCostMatrix.Controls.Add(this.cboODImpedance); this.tabODCostMatrix.Controls.Add(this.lblODImpedance); this.tabODCostMatrix.Controls.Add(this.chkODUseHierarchy); this.tabODCostMatrix.Controls.Add(this.cboODOutputLines); this.tabODCostMatrix.Controls.Add(this.lblODOutputLines); this.tabODCostMatrix.Controls.Add(this.txtODDefaultTargetDestinationCount); this.tabODCostMatrix.Controls.Add(this.lblODDefaultTargetDestinationCount); this.tabODCostMatrix.Controls.Add(this.txtODDefaultCutoff); this.tabODCostMatrix.Controls.Add(this.lblODDefaultCutoff); this.tabODCostMatrix.Location = new System.Drawing.Point(4, 22); this.tabODCostMatrix.Name = "tabODCostMatrix"; this.tabODCostMatrix.Size = new System.Drawing.Size(711, 473); this.tabODCostMatrix.TabIndex = 4; this.tabODCostMatrix.Text = "Origin-Destination Cost Matrix"; this.tabODCostMatrix.UseVisualStyleBackColor = true; // // chkODUseTime // this.chkODUseTime.Location = new System.Drawing.Point(20, 54); this.chkODUseTime.Name = "chkODUseTime"; this.chkODUseTime.Size = new System.Drawing.Size(104, 16); this.chkODUseTime.TabIndex = 131; this.chkODUseTime.Text = "Use Time"; // // txtODUseTime // this.txtODUseTime.Location = new System.Drawing.Point(151, 50); this.txtODUseTime.Name = "txtODUseTime"; this.txtODUseTime.Size = new System.Drawing.Size(200, 20); this.txtODUseTime.TabIndex = 132; // // chkODIgnoreInvalidLocations // this.chkODIgnoreInvalidLocations.Location = new System.Drawing.Point(20, 223); this.chkODIgnoreInvalidLocations.Name = "chkODIgnoreInvalidLocations"; this.chkODIgnoreInvalidLocations.Size = new System.Drawing.Size(144, 29); this.chkODIgnoreInvalidLocations.TabIndex = 123; this.chkODIgnoreInvalidLocations.Text = "Ignore Invalid Locations"; // // cboODRestrictUTurns // this.cboODRestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboODRestrictUTurns.ItemHeight = 13; this.cboODRestrictUTurns.Items.AddRange(new object[] { "No U-Turns", "Allow U-Turns", "Only At Dead Ends"}); this.cboODRestrictUTurns.Location = new System.Drawing.Point(151, 132); this.cboODRestrictUTurns.Name = "cboODRestrictUTurns"; this.cboODRestrictUTurns.Size = new System.Drawing.Size(200, 21); this.cboODRestrictUTurns.TabIndex = 122; // // lblODRestrictUTurns // this.lblODRestrictUTurns.Location = new System.Drawing.Point(20, 137); this.lblODRestrictUTurns.Name = "lblODRestrictUTurns"; this.lblODRestrictUTurns.Size = new System.Drawing.Size(88, 16); this.lblODRestrictUTurns.TabIndex = 130; this.lblODRestrictUTurns.Text = "UTurn Policy"; // // lblODAccumulateAttributeNames // this.lblODAccumulateAttributeNames.Location = new System.Drawing.Point(236, 255); this.lblODAccumulateAttributeNames.Name = "lblODAccumulateAttributeNames"; this.lblODAccumulateAttributeNames.Size = new System.Drawing.Size(120, 16); this.lblODAccumulateAttributeNames.TabIndex = 129; this.lblODAccumulateAttributeNames.Text = "Accumulate Attributes"; // // chklstODAccumulateAttributeNames // this.chklstODAccumulateAttributeNames.CheckOnClick = true; this.chklstODAccumulateAttributeNames.Location = new System.Drawing.Point(236, 271); this.chklstODAccumulateAttributeNames.Name = "chklstODAccumulateAttributeNames"; this.chklstODAccumulateAttributeNames.ScrollAlwaysVisible = true; this.chklstODAccumulateAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstODAccumulateAttributeNames.TabIndex = 126; // // lblODRestrictionAttributeNames // this.lblODRestrictionAttributeNames.Location = new System.Drawing.Point(20, 255); this.lblODRestrictionAttributeNames.Name = "lblODRestrictionAttributeNames"; this.lblODRestrictionAttributeNames.Size = new System.Drawing.Size(72, 16); this.lblODRestrictionAttributeNames.TabIndex = 128; this.lblODRestrictionAttributeNames.Text = "Restrictions"; // // chklstODRestrictionAttributeNames // this.chklstODRestrictionAttributeNames.CheckOnClick = true; this.chklstODRestrictionAttributeNames.Location = new System.Drawing.Point(20, 271); this.chklstODRestrictionAttributeNames.Name = "chklstODRestrictionAttributeNames"; this.chklstODRestrictionAttributeNames.ScrollAlwaysVisible = true; this.chklstODRestrictionAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstODRestrictionAttributeNames.TabIndex = 125; // // cboODImpedance // this.cboODImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboODImpedance.ItemHeight = 13; this.cboODImpedance.Location = new System.Drawing.Point(151, 23); this.cboODImpedance.Name = "cboODImpedance"; this.cboODImpedance.Size = new System.Drawing.Size(200, 21); this.cboODImpedance.TabIndex = 121; // // lblODImpedance // this.lblODImpedance.Location = new System.Drawing.Point(20, 28); this.lblODImpedance.Name = "lblODImpedance"; this.lblODImpedance.Size = new System.Drawing.Size(64, 16); this.lblODImpedance.TabIndex = 127; this.lblODImpedance.Text = "Impedance"; // // chkODUseHierarchy // this.chkODUseHierarchy.Location = new System.Drawing.Point(20, 191); this.chkODUseHierarchy.Name = "chkODUseHierarchy"; this.chkODUseHierarchy.Size = new System.Drawing.Size(96, 26); this.chkODUseHierarchy.TabIndex = 124; this.chkODUseHierarchy.Text = "Use Hierarchy"; // // cboODOutputLines // this.cboODOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboODOutputLines.ItemHeight = 13; this.cboODOutputLines.Items.AddRange(new object[] { "No Lines", "Straight Lines"}); this.cboODOutputLines.Location = new System.Drawing.Point(151, 159); this.cboODOutputLines.Name = "cboODOutputLines"; this.cboODOutputLines.Size = new System.Drawing.Size(200, 21); this.cboODOutputLines.TabIndex = 119; // // lblODOutputLines // this.lblODOutputLines.Location = new System.Drawing.Point(20, 164); this.lblODOutputLines.Name = "lblODOutputLines"; this.lblODOutputLines.Size = new System.Drawing.Size(114, 16); this.lblODOutputLines.TabIndex = 120; this.lblODOutputLines.Text = "Shape"; // // txtODDefaultTargetDestinationCount // this.txtODDefaultTargetDestinationCount.Location = new System.Drawing.Point(151, 103); this.txtODDefaultTargetDestinationCount.Name = "txtODDefaultTargetDestinationCount"; this.txtODDefaultTargetDestinationCount.Size = new System.Drawing.Size(200, 20); this.txtODDefaultTargetDestinationCount.TabIndex = 116; // // lblODDefaultTargetDestinationCount // this.lblODDefaultTargetDestinationCount.Location = new System.Drawing.Point(20, 107); this.lblODDefaultTargetDestinationCount.Name = "lblODDefaultTargetDestinationCount"; this.lblODDefaultTargetDestinationCount.Size = new System.Drawing.Size(125, 16); this.lblODDefaultTargetDestinationCount.TabIndex = 115; this.lblODDefaultTargetDestinationCount.Text = "Number of Destinations"; // // txtODDefaultCutoff // this.txtODDefaultCutoff.Location = new System.Drawing.Point(151, 77); this.txtODDefaultCutoff.Name = "txtODDefaultCutoff"; this.txtODDefaultCutoff.Size = new System.Drawing.Size(200, 20); this.txtODDefaultCutoff.TabIndex = 114; // // lblODDefaultCutoff // this.lblODDefaultCutoff.Location = new System.Drawing.Point(20, 81); this.lblODDefaultCutoff.Name = "lblODDefaultCutoff"; this.lblODDefaultCutoff.Size = new System.Drawing.Size(114, 16); this.lblODDefaultCutoff.TabIndex = 113; this.lblODDefaultCutoff.Text = "Default Cutoff"; // // tabServiceArea // this.tabServiceArea.Controls.Add(this.chkSAUseTime); this.tabServiceArea.Controls.Add(this.txtSAUseTime); this.tabServiceArea.Controls.Add(this.cboSATrimPolygonDistanceUnits); this.tabServiceArea.Controls.Add(this.txtSATrimPolygonDistance); this.tabServiceArea.Controls.Add(this.chkSATrimOuterPolygon); this.tabServiceArea.Controls.Add(this.chkSAIncludeSourceInformationOnLines); this.tabServiceArea.Controls.Add(this.cboSATravelDirection); this.tabServiceArea.Controls.Add(this.lblSATravelDirection); this.tabServiceArea.Controls.Add(this.chkSASplitPolygonsAtBreaks); this.tabServiceArea.Controls.Add(this.chkSAOverlapPolygons); this.tabServiceArea.Controls.Add(this.chkSASplitLinesAtBreaks); this.tabServiceArea.Controls.Add(this.chkSAOverlapLines); this.tabServiceArea.Controls.Add(this.chkSAIgnoreInvalidLocations); this.tabServiceArea.Controls.Add(this.cboSARestrictUTurns); this.tabServiceArea.Controls.Add(this.lblSARestrictUTurns); this.tabServiceArea.Controls.Add(this.lblSAAccumulateAttributeNames); this.tabServiceArea.Controls.Add(this.chklstSAAccumulateAttributeNames); this.tabServiceArea.Controls.Add(this.lblSARestrictionAttributeNames); this.tabServiceArea.Controls.Add(this.chklstSARestrictionAttributeNames); this.tabServiceArea.Controls.Add(this.lblSAOutputPolygons); this.tabServiceArea.Controls.Add(this.cboSAOutputPolygons); this.tabServiceArea.Controls.Add(this.lblSAOutputLines); this.tabServiceArea.Controls.Add(this.cboSAOutputLines); this.tabServiceArea.Controls.Add(this.chkSAMergeSimilarPolygonRanges); this.tabServiceArea.Controls.Add(this.txtSADefaultBreaks); this.tabServiceArea.Controls.Add(this.lblSADefaultBreaks); this.tabServiceArea.Controls.Add(this.cboSAImpedance); this.tabServiceArea.Controls.Add(this.lblSAImpedance); this.tabServiceArea.Location = new System.Drawing.Point(4, 22); this.tabServiceArea.Name = "tabServiceArea"; this.tabServiceArea.Size = new System.Drawing.Size(711, 473); this.tabServiceArea.TabIndex = 2; this.tabServiceArea.Text = "Service Area"; this.tabServiceArea.UseVisualStyleBackColor = true; // // chkSAUseTime // this.chkSAUseTime.Location = new System.Drawing.Point(20, 52); this.chkSAUseTime.Name = "chkSAUseTime"; this.chkSAUseTime.Size = new System.Drawing.Size(104, 16); this.chkSAUseTime.TabIndex = 133; this.chkSAUseTime.Text = "Use Time"; // // txtSAUseTime // this.txtSAUseTime.Location = new System.Drawing.Point(151, 48); this.txtSAUseTime.Name = "txtSAUseTime"; this.txtSAUseTime.Size = new System.Drawing.Size(200, 20); this.txtSAUseTime.TabIndex = 134; // // cboSATrimPolygonDistanceUnits // this.cboSATrimPolygonDistanceUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboSATrimPolygonDistanceUnits.ItemHeight = 13; this.cboSATrimPolygonDistanceUnits.Items.AddRange(new object[] { "Unknown Units", "Inches", "Points", "Feet", "Yards", "Miles", "Nautical Miles", "Millimeters", "Centimeters", "Meters", "Kilometers", "DecimalDegrees", "Decimeters"}); this.cboSATrimPolygonDistanceUnits.Location = new System.Drawing.Point(241, 176); this.cboSATrimPolygonDistanceUnits.Name = "cboSATrimPolygonDistanceUnits"; this.cboSATrimPolygonDistanceUnits.Size = new System.Drawing.Size(110, 21); this.cboSATrimPolygonDistanceUnits.TabIndex = 120; // // txtSATrimPolygonDistance // this.txtSATrimPolygonDistance.Location = new System.Drawing.Point(169, 177); this.txtSATrimPolygonDistance.Name = "txtSATrimPolygonDistance"; this.txtSATrimPolygonDistance.Size = new System.Drawing.Size(66, 20); this.txtSATrimPolygonDistance.TabIndex = 119; // // chkSATrimOuterPolygon // this.chkSATrimOuterPolygon.Location = new System.Drawing.Point(41, 177); this.chkSATrimOuterPolygon.Name = "chkSATrimOuterPolygon"; this.chkSATrimOuterPolygon.Size = new System.Drawing.Size(122, 22); this.chkSATrimOuterPolygon.TabIndex = 118; this.chkSATrimOuterPolygon.Text = "Trim Outer Polygon"; // // chkSAIncludeSourceInformationOnLines // this.chkSAIncludeSourceInformationOnLines.Location = new System.Drawing.Point(329, 232); this.chkSAIncludeSourceInformationOnLines.Name = "chkSAIncludeSourceInformationOnLines"; this.chkSAIncludeSourceInformationOnLines.Size = new System.Drawing.Size(215, 22); this.chkSAIncludeSourceInformationOnLines.TabIndex = 117; this.chkSAIncludeSourceInformationOnLines.Text = "Include Source Information On Lines"; // // cboSATravelDirection // this.cboSATravelDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboSATravelDirection.ItemHeight = 13; this.cboSATravelDirection.Items.AddRange(new object[] { "From Facility", "To Facility"}); this.cboSATravelDirection.Location = new System.Drawing.Point(151, 98); this.cboSATravelDirection.Name = "cboSATravelDirection"; this.cboSATravelDirection.Size = new System.Drawing.Size(200, 21); this.cboSATravelDirection.TabIndex = 115; // // lblSATravelDirection // this.lblSATravelDirection.Location = new System.Drawing.Point(20, 103); this.lblSATravelDirection.Name = "lblSATravelDirection"; this.lblSATravelDirection.Size = new System.Drawing.Size(114, 16); this.lblSATravelDirection.TabIndex = 116; this.lblSATravelDirection.Text = "Travel Direction"; // // chkSASplitPolygonsAtBreaks // this.chkSASplitPolygonsAtBreaks.Location = new System.Drawing.Point(169, 153); this.chkSASplitPolygonsAtBreaks.Name = "chkSASplitPolygonsAtBreaks"; this.chkSASplitPolygonsAtBreaks.Size = new System.Drawing.Size(154, 22); this.chkSASplitPolygonsAtBreaks.TabIndex = 114; this.chkSASplitPolygonsAtBreaks.Text = "Split Polygons At Breaks"; // // chkSAOverlapPolygons // this.chkSAOverlapPolygons.Location = new System.Drawing.Point(41, 152); this.chkSAOverlapPolygons.Name = "chkSAOverlapPolygons"; this.chkSAOverlapPolygons.Size = new System.Drawing.Size(122, 22); this.chkSAOverlapPolygons.TabIndex = 113; this.chkSAOverlapPolygons.Text = "Overlap Polygons"; // // chkSASplitLinesAtBreaks // this.chkSASplitLinesAtBreaks.Location = new System.Drawing.Point(169, 232); this.chkSASplitLinesAtBreaks.Name = "chkSASplitLinesAtBreaks"; this.chkSASplitLinesAtBreaks.Size = new System.Drawing.Size(154, 22); this.chkSASplitLinesAtBreaks.TabIndex = 112; this.chkSASplitLinesAtBreaks.Text = "Split Lines At Breaks"; // // chkSAOverlapLines // this.chkSAOverlapLines.Location = new System.Drawing.Point(41, 232); this.chkSAOverlapLines.Name = "chkSAOverlapLines"; this.chkSAOverlapLines.Size = new System.Drawing.Size(122, 22); this.chkSAOverlapLines.TabIndex = 111; this.chkSAOverlapLines.Text = "Overlap Lines"; // // chkSAIgnoreInvalidLocations // this.chkSAIgnoreInvalidLocations.Location = new System.Drawing.Point(23, 286); this.chkSAIgnoreInvalidLocations.Name = "chkSAIgnoreInvalidLocations"; this.chkSAIgnoreInvalidLocations.Size = new System.Drawing.Size(144, 29); this.chkSAIgnoreInvalidLocations.TabIndex = 105; this.chkSAIgnoreInvalidLocations.Text = "Ignore Invalid Locations"; // // cboSARestrictUTurns // this.cboSARestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboSARestrictUTurns.ItemHeight = 13; this.cboSARestrictUTurns.Items.AddRange(new object[] { "No U-Turns", "Allow U-Turns", "Only At Dead Ends"}); this.cboSARestrictUTurns.Location = new System.Drawing.Point(151, 262); this.cboSARestrictUTurns.Name = "cboSARestrictUTurns"; this.cboSARestrictUTurns.Size = new System.Drawing.Size(200, 21); this.cboSARestrictUTurns.TabIndex = 104; // // lblSARestrictUTurns // this.lblSARestrictUTurns.Location = new System.Drawing.Point(20, 267); this.lblSARestrictUTurns.Name = "lblSARestrictUTurns"; this.lblSARestrictUTurns.Size = new System.Drawing.Size(88, 16); this.lblSARestrictUTurns.TabIndex = 110; this.lblSARestrictUTurns.Text = "UTurn Policy"; // // lblSAAccumulateAttributeNames // this.lblSAAccumulateAttributeNames.Location = new System.Drawing.Point(238, 317); this.lblSAAccumulateAttributeNames.Name = "lblSAAccumulateAttributeNames"; this.lblSAAccumulateAttributeNames.Size = new System.Drawing.Size(120, 16); this.lblSAAccumulateAttributeNames.TabIndex = 109; this.lblSAAccumulateAttributeNames.Text = "Accumulate Attributes"; // // chklstSAAccumulateAttributeNames // this.chklstSAAccumulateAttributeNames.CheckOnClick = true; this.chklstSAAccumulateAttributeNames.Location = new System.Drawing.Point(238, 333); this.chklstSAAccumulateAttributeNames.Name = "chklstSAAccumulateAttributeNames"; this.chklstSAAccumulateAttributeNames.ScrollAlwaysVisible = true; this.chklstSAAccumulateAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstSAAccumulateAttributeNames.TabIndex = 107; // // lblSARestrictionAttributeNames // this.lblSARestrictionAttributeNames.Location = new System.Drawing.Point(22, 317); this.lblSARestrictionAttributeNames.Name = "lblSARestrictionAttributeNames"; this.lblSARestrictionAttributeNames.Size = new System.Drawing.Size(72, 16); this.lblSARestrictionAttributeNames.TabIndex = 108; this.lblSARestrictionAttributeNames.Text = "Restrictions"; // // chklstSARestrictionAttributeNames // this.chklstSARestrictionAttributeNames.CheckOnClick = true; this.chklstSARestrictionAttributeNames.Location = new System.Drawing.Point(22, 333); this.chklstSARestrictionAttributeNames.Name = "chklstSARestrictionAttributeNames"; this.chklstSARestrictionAttributeNames.ScrollAlwaysVisible = true; this.chklstSARestrictionAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstSARestrictionAttributeNames.TabIndex = 106; // // lblSAOutputPolygons // this.lblSAOutputPolygons.Location = new System.Drawing.Point(20, 130); this.lblSAOutputPolygons.Name = "lblSAOutputPolygons"; this.lblSAOutputPolygons.Size = new System.Drawing.Size(122, 16); this.lblSAOutputPolygons.TabIndex = 103; this.lblSAOutputPolygons.Text = "Output Polygons"; // // cboSAOutputPolygons // this.cboSAOutputPolygons.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboSAOutputPolygons.ItemHeight = 13; this.cboSAOutputPolygons.Items.AddRange(new object[] { "No Polygons", "Simplified Polygons", "Detailed Polygons"}); this.cboSAOutputPolygons.Location = new System.Drawing.Point(151, 125); this.cboSAOutputPolygons.Name = "cboSAOutputPolygons"; this.cboSAOutputPolygons.Size = new System.Drawing.Size(200, 21); this.cboSAOutputPolygons.TabIndex = 102; this.cboSAOutputPolygons.SelectedIndexChanged += new System.EventHandler(this.cboSAOutputPolygons_SelectedIndexChanged); // // lblSAOutputLines // this.lblSAOutputLines.Location = new System.Drawing.Point(20, 210); this.lblSAOutputLines.Name = "lblSAOutputLines"; this.lblSAOutputLines.Size = new System.Drawing.Size(122, 16); this.lblSAOutputLines.TabIndex = 101; this.lblSAOutputLines.Text = "Output Lines"; // // cboSAOutputLines // this.cboSAOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboSAOutputLines.ItemHeight = 13; this.cboSAOutputLines.Items.AddRange(new object[] { "No Lines", "True Shape", "True Shape With Measures"}); this.cboSAOutputLines.Location = new System.Drawing.Point(151, 205); this.cboSAOutputLines.Name = "cboSAOutputLines"; this.cboSAOutputLines.Size = new System.Drawing.Size(200, 21); this.cboSAOutputLines.TabIndex = 100; this.cboSAOutputLines.SelectedIndexChanged += new System.EventHandler(this.cboSAOutputLines_SelectedIndexChanged); // // chkSAMergeSimilarPolygonRanges // this.chkSAMergeSimilarPolygonRanges.Location = new System.Drawing.Point(329, 152); this.chkSAMergeSimilarPolygonRanges.Name = "chkSAMergeSimilarPolygonRanges"; this.chkSAMergeSimilarPolygonRanges.Size = new System.Drawing.Size(192, 22); this.chkSAMergeSimilarPolygonRanges.TabIndex = 99; this.chkSAMergeSimilarPolygonRanges.Text = "Merge Similar Polygon Ranges"; // // txtSADefaultBreaks // this.txtSADefaultBreaks.Location = new System.Drawing.Point(151, 72); this.txtSADefaultBreaks.Name = "txtSADefaultBreaks"; this.txtSADefaultBreaks.Size = new System.Drawing.Size(200, 20); this.txtSADefaultBreaks.TabIndex = 98; // // lblSADefaultBreaks // this.lblSADefaultBreaks.Location = new System.Drawing.Point(20, 76); this.lblSADefaultBreaks.Name = "lblSADefaultBreaks"; this.lblSADefaultBreaks.Size = new System.Drawing.Size(114, 16); this.lblSADefaultBreaks.TabIndex = 97; this.lblSADefaultBreaks.Text = "Default Breaks"; // // cboSAImpedance // this.cboSAImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboSAImpedance.ItemHeight = 13; this.cboSAImpedance.Location = new System.Drawing.Point(151, 23); this.cboSAImpedance.Name = "cboSAImpedance"; this.cboSAImpedance.Size = new System.Drawing.Size(200, 21); this.cboSAImpedance.TabIndex = 86; // // lblSAImpedance // this.lblSAImpedance.Location = new System.Drawing.Point(20, 28); this.lblSAImpedance.Name = "lblSAImpedance"; this.lblSAImpedance.Size = new System.Drawing.Size(64, 16); this.lblSAImpedance.TabIndex = 87; this.lblSAImpedance.Text = "Impedance"; // // tabVRP // this.tabVRP.Controls.Add(this.gbRestrictions); this.tabVRP.Controls.Add(this.gbSettings); this.tabVRP.Location = new System.Drawing.Point(4, 22); this.tabVRP.Name = "tabVRP"; this.tabVRP.Size = new System.Drawing.Size(711, 473); this.tabVRP.TabIndex = 5; this.tabVRP.Text = "VRP"; this.tabVRP.UseVisualStyleBackColor = true; // // gbRestrictions // this.gbRestrictions.Controls.Add(this.chklstVRPRestrictionAttributeNames); this.gbRestrictions.Location = new System.Drawing.Point(349, 3); this.gbRestrictions.Name = "gbRestrictions"; this.gbRestrictions.Size = new System.Drawing.Size(206, 90); this.gbRestrictions.TabIndex = 1; this.gbRestrictions.TabStop = false; this.gbRestrictions.Text = "Restrictions"; // // chklstVRPRestrictionAttributeNames // this.chklstVRPRestrictionAttributeNames.CheckOnClick = true; this.chklstVRPRestrictionAttributeNames.Location = new System.Drawing.Point(6, 14); this.chklstVRPRestrictionAttributeNames.Name = "chklstVRPRestrictionAttributeNames"; this.chklstVRPRestrictionAttributeNames.ScrollAlwaysVisible = true; this.chklstVRPRestrictionAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstVRPRestrictionAttributeNames.TabIndex = 109; // // gbSettings // this.gbSettings.Controls.Add(this.cboVRPDistanceFieldUnits); this.gbSettings.Controls.Add(this.cboVRPTransitTime); this.gbSettings.Controls.Add(this.cboVRPTimeWindow); this.gbSettings.Controls.Add(this.label10); this.gbSettings.Controls.Add(this.label9); this.gbSettings.Controls.Add(this.chkVRPUseHierarchy); this.gbSettings.Controls.Add(this.cboVRPOutputShapeType); this.gbSettings.Controls.Add(this.cboVRPAllowUTurns); this.gbSettings.Controls.Add(this.cboVRPTimeFieldUnits); this.gbSettings.Controls.Add(this.txtVRPCapacityCount); this.gbSettings.Controls.Add(this.txtVRPDefaultDate); this.gbSettings.Controls.Add(this.cboVRPDistanceAttribute); this.gbSettings.Controls.Add(this.cboVRPTimeAttribute); this.gbSettings.Controls.Add(this.label7); this.gbSettings.Controls.Add(this.label6); this.gbSettings.Controls.Add(this.label5); this.gbSettings.Controls.Add(this.label4); this.gbSettings.Controls.Add(this.label3); this.gbSettings.Controls.Add(this.label2); this.gbSettings.Controls.Add(this.label1); this.gbSettings.Controls.Add(this.lblTimeAttribute); this.gbSettings.Location = new System.Drawing.Point(3, 3); this.gbSettings.Name = "gbSettings"; this.gbSettings.Size = new System.Drawing.Size(340, 321); this.gbSettings.TabIndex = 0; this.gbSettings.TabStop = false; this.gbSettings.Text = "Settings"; // // cboVRPDistanceFieldUnits // this.cboVRPDistanceFieldUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPDistanceFieldUnits.ItemHeight = 13; this.cboVRPDistanceFieldUnits.Items.AddRange(new object[] { "Inches", "Points", "Feet", "Yards", "Miles", "Nautical Miles", "Millimeters", "Centimeters", "Meters", "Kilometers", "DecimalDegrees", "Decimeters"}); this.cboVRPDistanceFieldUnits.Location = new System.Drawing.Point(189, 151); this.cboVRPDistanceFieldUnits.Name = "cboVRPDistanceFieldUnits"; this.cboVRPDistanceFieldUnits.Size = new System.Drawing.Size(136, 21); this.cboVRPDistanceFieldUnits.TabIndex = 123; // // cboVRPTransitTime // this.cboVRPTransitTime.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPTransitTime.FormattingEnabled = true; this.cboVRPTransitTime.Items.AddRange(new object[] { "High", "Medium", "Low"}); this.cboVRPTransitTime.Location = new System.Drawing.Point(189, 265); this.cboVRPTransitTime.Name = "cboVRPTransitTime"; this.cboVRPTransitTime.Size = new System.Drawing.Size(136, 21); this.cboVRPTransitTime.TabIndex = 20; // // cboVRPTimeWindow // this.cboVRPTimeWindow.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPTimeWindow.FormattingEnabled = true; this.cboVRPTimeWindow.Items.AddRange(new object[] { "High", "Medium", "Low"}); this.cboVRPTimeWindow.Location = new System.Drawing.Point(189, 238); this.cboVRPTimeWindow.Name = "cboVRPTimeWindow"; this.cboVRPTimeWindow.Size = new System.Drawing.Size(136, 21); this.cboVRPTimeWindow.TabIndex = 19; // // label10 // this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(8, 268); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(161, 13); this.label10.TabIndex = 18; this.label10.Text = "Excess Transit Time Importance:"; // // label9 // this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(9, 241); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(174, 13); this.label9.TabIndex = 17; this.label9.Text = "Time Window Violation Importance:"; // // chkVRPUseHierarchy // this.chkVRPUseHierarchy.AutoSize = true; this.chkVRPUseHierarchy.Location = new System.Drawing.Point(12, 294); this.chkVRPUseHierarchy.Name = "chkVRPUseHierarchy"; this.chkVRPUseHierarchy.Size = new System.Drawing.Size(93, 17); this.chkVRPUseHierarchy.TabIndex = 16; this.chkVRPUseHierarchy.Text = "Use Hierarchy"; this.chkVRPUseHierarchy.UseVisualStyleBackColor = true; // // cboVRPOutputShapeType // this.cboVRPOutputShapeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPOutputShapeType.FormattingEnabled = true; this.cboVRPOutputShapeType.Items.AddRange(new object[] { "None", "Straight Line", "True Shape", "True Shape with Measure"}); this.cboVRPOutputShapeType.Location = new System.Drawing.Point(189, 208); this.cboVRPOutputShapeType.Name = "cboVRPOutputShapeType"; this.cboVRPOutputShapeType.Size = new System.Drawing.Size(136, 21); this.cboVRPOutputShapeType.TabIndex = 15; // // cboVRPAllowUTurns // this.cboVRPAllowUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPAllowUTurns.FormattingEnabled = true; this.cboVRPAllowUTurns.Items.AddRange(new object[] { "No U-Turns", "Allow U-Turns", "Only At Dead Ends"}); this.cboVRPAllowUTurns.Location = new System.Drawing.Point(189, 180); this.cboVRPAllowUTurns.Name = "cboVRPAllowUTurns"; this.cboVRPAllowUTurns.Size = new System.Drawing.Size(136, 21); this.cboVRPAllowUTurns.TabIndex = 14; // // cboVRPTimeFieldUnits // this.cboVRPTimeFieldUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPTimeFieldUnits.FormattingEnabled = true; this.cboVRPTimeFieldUnits.Items.AddRange(new object[] { "Seconds", "Minutes", "Hours", "Days"}); this.cboVRPTimeFieldUnits.Location = new System.Drawing.Point(189, 124); this.cboVRPTimeFieldUnits.Name = "cboVRPTimeFieldUnits"; this.cboVRPTimeFieldUnits.Size = new System.Drawing.Size(136, 21); this.cboVRPTimeFieldUnits.TabIndex = 12; // // txtVRPCapacityCount // this.txtVRPCapacityCount.Location = new System.Drawing.Point(189, 97); this.txtVRPCapacityCount.Name = "txtVRPCapacityCount"; this.txtVRPCapacityCount.Size = new System.Drawing.Size(136, 20); this.txtVRPCapacityCount.TabIndex = 11; // // txtVRPDefaultDate // this.txtVRPDefaultDate.Location = new System.Drawing.Point(189, 70); this.txtVRPDefaultDate.Name = "txtVRPDefaultDate"; this.txtVRPDefaultDate.Size = new System.Drawing.Size(136, 20); this.txtVRPDefaultDate.TabIndex = 10; // // cboVRPDistanceAttribute // this.cboVRPDistanceAttribute.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPDistanceAttribute.FormattingEnabled = true; this.cboVRPDistanceAttribute.Items.AddRange(new object[] { "", "Meters (Meters)"}); this.cboVRPDistanceAttribute.Location = new System.Drawing.Point(189, 42); this.cboVRPDistanceAttribute.Name = "cboVRPDistanceAttribute"; this.cboVRPDistanceAttribute.Size = new System.Drawing.Size(136, 21); this.cboVRPDistanceAttribute.TabIndex = 9; // // cboVRPTimeAttribute // this.cboVRPTimeAttribute.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboVRPTimeAttribute.FormattingEnabled = true; this.cboVRPTimeAttribute.Location = new System.Drawing.Point(189, 14); this.cboVRPTimeAttribute.Name = "cboVRPTimeAttribute"; this.cboVRPTimeAttribute.Size = new System.Drawing.Size(136, 21); this.cboVRPTimeAttribute.TabIndex = 8; // // label7 // this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(9, 50); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(94, 13); this.label7.TabIndex = 7; this.label7.Text = "Distance Attribute:"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(9, 78); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(70, 13); this.label6.TabIndex = 6; this.label6.Text = "Default Date:"; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(9, 105); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(82, 13); this.label5.TabIndex = 5; this.label5.Text = "Capacity Count:"; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(9, 132); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(85, 13); this.label4.TabIndex = 4; this.label4.Text = "Time Field Units:"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(8, 160); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(104, 13); this.label3.TabIndex = 3; this.label3.Text = "Distance Field Units:"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(9, 188); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(74, 13); this.label2.TabIndex = 2; this.label2.Text = "U-Turn Policy:"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(9, 216); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(103, 13); this.label1.TabIndex = 1; this.label1.Text = "Output Shape Type:"; // // lblTimeAttribute // this.lblTimeAttribute.AutoSize = true; this.lblTimeAttribute.Location = new System.Drawing.Point(9, 22); this.lblTimeAttribute.Name = "lblTimeAttribute"; this.lblTimeAttribute.Size = new System.Drawing.Size(75, 13); this.lblTimeAttribute.TabIndex = 0; this.lblTimeAttribute.Text = "Time Attribute:"; // // tabLocationAllocation // this.tabLocationAllocation.Controls.Add(this.chkLAUseTime); this.tabLocationAllocation.Controls.Add(this.txtLAUseTime); this.tabLocationAllocation.Controls.Add(this.chkLAIgnoreInvalidLocations); this.tabLocationAllocation.Controls.Add(this.grpLASettings); this.tabLocationAllocation.Controls.Add(this.chkLAUseHierarchy); this.tabLocationAllocation.Controls.Add(this.lblLAAccumulateAttributeNames); this.tabLocationAllocation.Controls.Add(this.chklstLAAccumulateAttributeNames); this.tabLocationAllocation.Controls.Add(this.lblLARestrictionAttributeNames); this.tabLocationAllocation.Controls.Add(this.chklstLARestrictionAttributeNames); this.tabLocationAllocation.Controls.Add(this.cboLAOutputLines); this.tabLocationAllocation.Controls.Add(this.label11); this.tabLocationAllocation.Controls.Add(this.cboLATravelDirection); this.tabLocationAllocation.Controls.Add(this.label12); this.tabLocationAllocation.Controls.Add(this.lblCostAttribute); this.tabLocationAllocation.Controls.Add(this.cboLAImpedance); this.tabLocationAllocation.Location = new System.Drawing.Point(4, 22); this.tabLocationAllocation.Name = "tabLocationAllocation"; this.tabLocationAllocation.Padding = new System.Windows.Forms.Padding(3); this.tabLocationAllocation.Size = new System.Drawing.Size(711, 473); this.tabLocationAllocation.TabIndex = 6; this.tabLocationAllocation.Text = "Location-Allocation"; this.tabLocationAllocation.UseVisualStyleBackColor = true; // // chkLAUseTime // this.chkLAUseTime.Location = new System.Drawing.Point(10, 51); this.chkLAUseTime.Name = "chkLAUseTime"; this.chkLAUseTime.Size = new System.Drawing.Size(104, 16); this.chkLAUseTime.TabIndex = 133; this.chkLAUseTime.Text = "Use Time"; // // txtLAUseTime // this.txtLAUseTime.Location = new System.Drawing.Point(141, 47); this.txtLAUseTime.Name = "txtLAUseTime"; this.txtLAUseTime.Size = new System.Drawing.Size(179, 20); this.txtLAUseTime.TabIndex = 134; // // chkLAIgnoreInvalidLocations // this.chkLAIgnoreInvalidLocations.Location = new System.Drawing.Point(13, 149); this.chkLAIgnoreInvalidLocations.Name = "chkLAIgnoreInvalidLocations"; this.chkLAIgnoreInvalidLocations.Size = new System.Drawing.Size(144, 29); this.chkLAIgnoreInvalidLocations.TabIndex = 123; this.chkLAIgnoreInvalidLocations.Text = "Ignore Invalid Locations"; // // grpLASettings // this.grpLASettings.Controls.Add(this.lblTargetMarketShare); this.grpLASettings.Controls.Add(this.txtLATargetMarketShare); this.grpLASettings.Controls.Add(this.cboLAImpTransformation); this.grpLASettings.Controls.Add(this.lblImpParameter); this.grpLASettings.Controls.Add(this.txtLAImpParameter); this.grpLASettings.Controls.Add(this.lblImpTransformation); this.grpLASettings.Controls.Add(this.lblProblemType); this.grpLASettings.Controls.Add(this.cboLAProblemType); this.grpLASettings.Controls.Add(this.lblCutOff); this.grpLASettings.Controls.Add(this.txtLACutOff); this.grpLASettings.Controls.Add(this.lblNumFacilities); this.grpLASettings.Controls.Add(this.txtLAFacilitiesToLocate); this.grpLASettings.Location = new System.Drawing.Point(230, 129); this.grpLASettings.Name = "grpLASettings"; this.grpLASettings.Size = new System.Drawing.Size(342, 241); this.grpLASettings.TabIndex = 122; this.grpLASettings.TabStop = false; this.grpLASettings.Text = "Advanced Settings"; // // lblTargetMarketShare // this.lblTargetMarketShare.AccessibleDescription = "grpLA"; this.lblTargetMarketShare.AutoSize = true; this.lblTargetMarketShare.Location = new System.Drawing.Point(20, 205); this.lblTargetMarketShare.Name = "lblTargetMarketShare"; this.lblTargetMarketShare.Size = new System.Drawing.Size(122, 13); this.lblTargetMarketShare.TabIndex = 31; this.lblTargetMarketShare.Text = "Target Market Share (%)"; // // txtLATargetMarketShare // this.txtLATargetMarketShare.AccessibleDescription = "grpLA"; this.txtLATargetMarketShare.Location = new System.Drawing.Point(199, 201); this.txtLATargetMarketShare.Name = "txtLATargetMarketShare"; this.txtLATargetMarketShare.Size = new System.Drawing.Size(129, 20); this.txtLATargetMarketShare.TabIndex = 30; this.txtLATargetMarketShare.Text = "10.0"; // // cboLAImpTransformation // this.cboLAImpTransformation.AccessibleDescription = "grpLA"; this.cboLAImpTransformation.FormattingEnabled = true; this.cboLAImpTransformation.Items.AddRange(new object[] { "Linear", "Power", "Exponential"}); this.cboLAImpTransformation.Location = new System.Drawing.Point(202, 135); this.cboLAImpTransformation.Name = "cboLAImpTransformation"; this.cboLAImpTransformation.Size = new System.Drawing.Size(128, 21); this.cboLAImpTransformation.TabIndex = 29; this.cboLAImpTransformation.Text = "Linear"; // // lblImpParameter // this.lblImpParameter.AccessibleDescription = "grpLA"; this.lblImpParameter.AutoSize = true; this.lblImpParameter.Location = new System.Drawing.Point(19, 171); this.lblImpParameter.Name = "lblImpParameter"; this.lblImpParameter.Size = new System.Drawing.Size(111, 13); this.lblImpParameter.TabIndex = 28; this.lblImpParameter.Text = "Impedance Parameter"; // // txtLAImpParameter // this.txtLAImpParameter.AccessibleDescription = "grpLA"; this.txtLAImpParameter.Location = new System.Drawing.Point(200, 166); this.txtLAImpParameter.Name = "txtLAImpParameter"; this.txtLAImpParameter.Size = new System.Drawing.Size(129, 20); this.txtLAImpParameter.TabIndex = 27; this.txtLAImpParameter.Text = "1.0"; // // lblImpTransformation // this.lblImpTransformation.AccessibleDescription = "grpLA"; this.lblImpTransformation.AutoSize = true; this.lblImpTransformation.Location = new System.Drawing.Point(19, 135); this.lblImpTransformation.Name = "lblImpTransformation"; this.lblImpTransformation.Size = new System.Drawing.Size(133, 13); this.lblImpTransformation.TabIndex = 26; this.lblImpTransformation.Text = "Impedance Transformation"; // // lblProblemType // this.lblProblemType.AccessibleDescription = "grpLA"; this.lblProblemType.AutoSize = true; this.lblProblemType.Location = new System.Drawing.Point(19, 30); this.lblProblemType.Name = "lblProblemType"; this.lblProblemType.Size = new System.Drawing.Size(72, 13); this.lblProblemType.TabIndex = 23; this.lblProblemType.Text = "Problem Type"; // // cboLAProblemType // this.cboLAProblemType.AccessibleDescription = "grpLA"; this.cboLAProblemType.FormattingEnabled = true; this.cboLAProblemType.Items.AddRange(new object[] { "Minimize Impedance", "Maximize Coverage", "Minimize Facilities", "Maximize Attendance", "Maximize Market Share", "Target Market Share"}); this.cboLAProblemType.Location = new System.Drawing.Point(202, 24); this.cboLAProblemType.Name = "cboLAProblemType"; this.cboLAProblemType.Size = new System.Drawing.Size(128, 21); this.cboLAProblemType.TabIndex = 22; this.cboLAProblemType.Text = "Minimize Impedance"; this.cboLAProblemType.SelectedIndexChanged += new System.EventHandler(this.cboLAProblemType_SelectedIndexChanged); // // lblCutOff // this.lblCutOff.AccessibleDescription = "grpLA"; this.lblCutOff.AutoSize = true; this.lblCutOff.Location = new System.Drawing.Point(20, 98); this.lblCutOff.Name = "lblCutOff"; this.lblCutOff.Size = new System.Drawing.Size(91, 13); this.lblCutOff.TabIndex = 21; this.lblCutOff.Text = "Impedance Cutoff"; // // txtLACutOff // this.txtLACutOff.AccessibleDescription = "grpLA"; this.txtLACutOff.Location = new System.Drawing.Point(202, 98); this.txtLACutOff.Name = "txtLACutOff"; this.txtLACutOff.Size = new System.Drawing.Size(129, 20); this.txtLACutOff.TabIndex = 20; this.txtLACutOff.Text = "<None>"; // // lblNumFacilities // this.lblNumFacilities.AccessibleDescription = "grpLA"; this.lblNumFacilities.AutoSize = true; this.lblNumFacilities.Location = new System.Drawing.Point(20, 63); this.lblNumFacilities.Name = "lblNumFacilities"; this.lblNumFacilities.Size = new System.Drawing.Size(102, 13); this.lblNumFacilities.TabIndex = 19; this.lblNumFacilities.Text = "Facilities To Choose"; // // txtLAFacilitiesToLocate // this.txtLAFacilitiesToLocate.AccessibleDescription = "grpLA"; this.txtLAFacilitiesToLocate.Location = new System.Drawing.Point(202, 63); this.txtLAFacilitiesToLocate.Name = "txtLAFacilitiesToLocate"; this.txtLAFacilitiesToLocate.Size = new System.Drawing.Size(130, 20); this.txtLAFacilitiesToLocate.TabIndex = 18; this.txtLAFacilitiesToLocate.Text = "1"; // // chkLAUseHierarchy // this.chkLAUseHierarchy.AutoSize = true; this.chkLAUseHierarchy.Location = new System.Drawing.Point(13, 120); this.chkLAUseHierarchy.Name = "chkLAUseHierarchy"; this.chkLAUseHierarchy.Size = new System.Drawing.Size(93, 17); this.chkLAUseHierarchy.TabIndex = 121; this.chkLAUseHierarchy.Text = "Use Hierarchy"; this.chkLAUseHierarchy.UseVisualStyleBackColor = true; // // lblLAAccumulateAttributeNames // this.lblLAAccumulateAttributeNames.Location = new System.Drawing.Point(11, 280); this.lblLAAccumulateAttributeNames.Name = "lblLAAccumulateAttributeNames"; this.lblLAAccumulateAttributeNames.Size = new System.Drawing.Size(120, 16); this.lblLAAccumulateAttributeNames.TabIndex = 120; this.lblLAAccumulateAttributeNames.Text = "Accumulate Attributes"; // // chklstLAAccumulateAttributeNames // this.chklstLAAccumulateAttributeNames.CheckOnClick = true; this.chklstLAAccumulateAttributeNames.Location = new System.Drawing.Point(11, 296); this.chklstLAAccumulateAttributeNames.Name = "chklstLAAccumulateAttributeNames"; this.chklstLAAccumulateAttributeNames.ScrollAlwaysVisible = true; this.chklstLAAccumulateAttributeNames.Size = new System.Drawing.Size(192, 34); this.chklstLAAccumulateAttributeNames.TabIndex = 119; // // lblLARestrictionAttributeNames // this.lblLARestrictionAttributeNames.Location = new System.Drawing.Point(11, 192); this.lblLARestrictionAttributeNames.Name = "lblLARestrictionAttributeNames"; this.lblLARestrictionAttributeNames.Size = new System.Drawing.Size(71, 15); this.lblLARestrictionAttributeNames.TabIndex = 118; this.lblLARestrictionAttributeNames.Text = "Restrictions"; // // chklstLARestrictionAttributeNames // this.chklstLARestrictionAttributeNames.CheckOnClick = true; this.chklstLARestrictionAttributeNames.Location = new System.Drawing.Point(11, 210); this.chklstLARestrictionAttributeNames.Name = "chklstLARestrictionAttributeNames"; this.chklstLARestrictionAttributeNames.ScrollAlwaysVisible = true; this.chklstLARestrictionAttributeNames.Size = new System.Drawing.Size(191, 34); this.chklstLARestrictionAttributeNames.TabIndex = 117; // // cboLAOutputLines // this.cboLAOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboLAOutputLines.ItemHeight = 13; this.cboLAOutputLines.Items.AddRange(new object[] { "Straight Lines", "None"}); this.cboLAOutputLines.Location = new System.Drawing.Point(142, 95); this.cboLAOutputLines.Name = "cboLAOutputLines"; this.cboLAOutputLines.Size = new System.Drawing.Size(178, 21); this.cboLAOutputLines.TabIndex = 115; // // label11 // this.label11.Location = new System.Drawing.Point(11, 100); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(114, 15); this.label11.TabIndex = 116; this.label11.Text = "Shape"; // // cboLATravelDirection // this.cboLATravelDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboLATravelDirection.ItemHeight = 13; this.cboLATravelDirection.Items.AddRange(new object[] { "Facility To Demand", "Demand To Facility"}); this.cboLATravelDirection.Location = new System.Drawing.Point(142, 70); this.cboLATravelDirection.Name = "cboLATravelDirection"; this.cboLATravelDirection.Size = new System.Drawing.Size(178, 21); this.cboLATravelDirection.TabIndex = 113; // // label12 // this.label12.Location = new System.Drawing.Point(11, 75); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(114, 16); this.label12.TabIndex = 114; this.label12.Text = "Travel Direction"; // // lblCostAttribute // this.lblCostAttribute.AutoSize = true; this.lblCostAttribute.Location = new System.Drawing.Point(8, 25); this.lblCostAttribute.Name = "lblCostAttribute"; this.lblCostAttribute.Size = new System.Drawing.Size(70, 13); this.lblCostAttribute.TabIndex = 25; this.lblCostAttribute.Text = "Cost Attribute"; // // cboLAImpedance // this.cboLAImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboLAImpedance.FormattingEnabled = true; this.cboLAImpedance.Location = new System.Drawing.Point(142, 25); this.cboLAImpedance.Name = "cboLAImpedance"; this.cboLAImpedance.Size = new System.Drawing.Size(176, 21); this.cboLAImpedance.TabIndex = 24; // // tabAttributeParameters // this.tabAttributeParameters.Controls.Add(this.btnReset); this.tabAttributeParameters.Controls.Add(this.attributeParameterGrid); this.tabAttributeParameters.Controls.Add(this.label14); this.tabAttributeParameters.Location = new System.Drawing.Point(4, 22); this.tabAttributeParameters.Name = "tabAttributeParameters"; this.tabAttributeParameters.Size = new System.Drawing.Size(711, 473); this.tabAttributeParameters.TabIndex = 7; this.tabAttributeParameters.Text = "Attribute Parameters"; this.tabAttributeParameters.UseVisualStyleBackColor = true; // // btnReset // this.btnReset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnReset.Location = new System.Drawing.Point(638, 445); this.btnReset.Name = "btnReset"; this.btnReset.Size = new System.Drawing.Size(70, 21); this.btnReset.TabIndex = 28; this.btnReset.Text = "&Reset"; this.btnReset.Click += new System.EventHandler(this.btnReset_Click); // // attributeParameterGrid // this.attributeParameterGrid.AllowUserToAddRows = false; this.attributeParameterGrid.AllowUserToDeleteRows = false; this.attributeParameterGrid.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.attributeParameterGrid.BackgroundColor = System.Drawing.Color.White; this.attributeParameterGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.attributeParameterGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.dgvcAttribute, this.dgvcParameter, this.dgvcValue}); this.attributeParameterGrid.Location = new System.Drawing.Point(15, 38); this.attributeParameterGrid.Name = "attributeParameterGrid"; this.attributeParameterGrid.RowHeadersVisible = false; this.attributeParameterGrid.Size = new System.Drawing.Size(693, 401); this.attributeParameterGrid.TabIndex = 27; // // dgvcAttribute // this.dgvcAttribute.HeaderText = "Attribute"; this.dgvcAttribute.Name = "dgvcAttribute"; this.dgvcAttribute.ReadOnly = true; // // dgvcParameter // this.dgvcParameter.HeaderText = "Parameter"; this.dgvcParameter.Name = "dgvcParameter"; this.dgvcParameter.ReadOnly = true; // // dgvcValue // this.dgvcValue.HeaderText = "Value"; this.dgvcValue.Name = "dgvcValue"; // // label14 // this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(12, 13); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(267, 13); this.label14.TabIndex = 26; this.label14.Text = "Specify the parameter values for the network attributes."; // // btnOK // this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnOK.Location = new System.Drawing.Point(578, 524); this.btnOK.Name = "btnOK"; this.btnOK.Size = new System.Drawing.Size(70, 21); this.btnOK.TabIndex = 1; this.btnOK.Text = "&OK"; this.btnOK.Click += new System.EventHandler(this.btnOK_Click); // // btnCancel // this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.Location = new System.Drawing.Point(657, 524); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(71, 21); this.btnCancel.TabIndex = 2; this.btnCancel.Text = "&Cancel"; this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); // // frmNALayerProperties // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(739, 563); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnOK); this.Controls.Add(this.tabPropPages); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "frmNALayerProperties"; this.ShowInTaskbar = false; this.Text = "Properties"; this.tabPropPages.ResumeLayout(false); this.tabGeneral.ResumeLayout(false); this.tabGeneral.PerformLayout(); this.tabRoute.ResumeLayout(false); this.tabRoute.PerformLayout(); this.tabClosestFacility.ResumeLayout(false); this.tabClosestFacility.PerformLayout(); this.tabODCostMatrix.ResumeLayout(false); this.tabODCostMatrix.PerformLayout(); this.tabServiceArea.ResumeLayout(false); this.tabServiceArea.PerformLayout(); this.tabVRP.ResumeLayout(false); this.gbRestrictions.ResumeLayout(false); this.gbSettings.ResumeLayout(false); this.gbSettings.PerformLayout(); this.tabLocationAllocation.ResumeLayout(false); this.tabLocationAllocation.PerformLayout(); this.grpLASettings.ResumeLayout(false); this.grpLASettings.PerformLayout(); this.tabAttributeParameters.ResumeLayout(false); this.tabAttributeParameters.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.attributeParameterGrid)).EndInit(); this.ResumeLayout(false); } #endregion bool m_okClicked; INALayer3 m_naLayer; enum VARTYPE { VT_EMPTY = 0, // uninitialized (null) VT_NULL = 1, // System.DBNull.Value VT_I2 = 2, // short VT_I4 = 3, // int VT_R4 = 4, // float VT_R8 = 5, // double VT_DATE = 7, // DateTime VT_BSTR = 8, // string VT_BOOL = 11, // boolean VT_UNKNOWN = 13, // COM object VT_ARRAY = 0x2000 // array bitmask } enum AttributeParameterGridColumnType { ATTRIBUTE_NAME = 0, PARAMETER_NAME = 1, PARAMETER_VALUE = 2 } Dictionary<string, double> m_restrictionParameterValues = new Dictionary<string, double> { {"Prohibit", -1}, {"Avoid: High",5}, {"Avoid: Medium",2}, {"Avoid: Low",1.3}, {"Prefer: Low",0.8}, {"Prefer: Medium",0.5}, {"Prefer: High",0.2} }; public frmNALayerProperties() { InitializeComponent(); } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); m_naLayer = null; } /// <summary> /// Called by clients to show the properties window and respond to changes made when OK is clicked. /// </summary> public bool ShowModal(INALayer3 naLayer) { m_okClicked = false; m_naLayer = naLayer; // Setup the window based on the current NALayer settings PopulateControls(m_naLayer); tabPropPages.SelectedIndex = 1; this.Text = ((ILayer)m_naLayer).Name + " Properties"; this.ShowDialog(); return m_okClicked; } /// <summary> /// Set controls based on the current NALayer settings /// This function takes the current NALayer and determines what type of solver it's pointing to /// and populates the corresponding controls and hides the tabs for the other solvers. /// </summary> private void PopulateControls(INALayer naLayer) { var layer = naLayer as ILayer; INAContext naContext = naLayer.Context; INetworkDataset networkDataset = naContext.NetworkDataset; var naLocator = naContext.Locator as INALocator2; INASolver naSolver = naContext.Solver; var naSolverSettings = naSolver as INASolverSettings2; var naTimeAwareSolverSettings = naSolver as INATimeAwareSolverSettings; var routeSolver = naSolver as INARouteSolver2; var cfSolver = naSolver as INAClosestFacilitySolver; var odSolver = naSolver as INAODCostMatrixSolver; var saSolver = naSolver as INAServiceAreaSolver2; var vrpSolver = naSolver as INAVRPSolver; var laSolver = naSolver as INALocationAllocationSolver; // Populate general Layer controls txtLayerName.Text = layer.Name; txtMaxSearchTolerance.Text = naLocator.MaxSnapTolerance.ToString(); cboMaxSearchToleranceUnits.SelectedIndex = Convert.ToInt32(naLocator.SnapToleranceUnits); PopulateAttributeParameterControl(networkDataset); // Populate controls for the particular solver if (routeSolver != null) // ROUTE LAYER { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabClosestFacility); tabPropPages.TabPages.Remove(tabODCostMatrix); tabPropPages.TabPages.Remove(tabServiceArea); tabPropPages.TabPages.Remove(tabVRP); tabPropPages.TabPages.Remove(tabLocationAllocation); // INARouteSolver2 chkRouteFindBestSequence.Checked = routeSolver.FindBestSequence; chkRoutePreserveFirstStop.Checked = routeSolver.PreserveFirstStop; chkRoutePreserveLastStop.Checked = routeSolver.PreserveLastStop; chkRouteUseTimeWindows.Checked = routeSolver.UseTimeWindows; chkRouteUseStartTime.Checked = routeSolver.UseStartTime; txtRouteStartTime.Text = routeSolver.StartTime.ToShortTimeString(); cboRouteOutputLines.SelectedIndex = System.Convert.ToInt32(routeSolver.OutputLines); // INASolverSettings PopulateImpedanceNameControl(cboRouteImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName); chkRouteUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0); chkRouteUseHierarchy.Checked = (chkRouteUseHierarchy.Enabled && naSolverSettings.UseHierarchy); chkRouteIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations; cboRouteRestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns); PopulateAttributeControl(chklstRouteAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost); PopulateAttributeControl(chklstRouteRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction); } else if (cfSolver != null) // CLOSEST FACILITY LAYER { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute); tabPropPages.TabPages.Remove(tabODCostMatrix); tabPropPages.TabPages.Remove(tabServiceArea); tabPropPages.TabPages.Remove(tabVRP); tabPropPages.TabPages.Remove(tabLocationAllocation); // INAClosestFacilitySolver txtCFDefaultCutoff.Text = GetStringFromObject(cfSolver.DefaultCutoff); txtCFDefaultTargetFacilityCount.Text = cfSolver.DefaultTargetFacilityCount.ToString(); cboCFTravelDirection.SelectedIndex = Convert.ToInt32(cfSolver.TravelDirection); cboCFOutputLines.SelectedIndex = Convert.ToInt32(cfSolver.OutputLines); // INASolverSettings PopulateImpedanceNameControl(cboCFImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName); chkCFUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0); chkCFUseHierarchy.Checked = (chkCFUseHierarchy.Enabled && naSolverSettings.UseHierarchy); chkCFIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations; cboCFRestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns); PopulateAttributeControl(chklstCFAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost); PopulateAttributeControl(chklstCFRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction); // INATimeAwareSolverSettings cboCFTimeUsage.SelectedIndex = System.Convert.ToInt32(naTimeAwareSolverSettings.TimeOfDayUsage); txtCFUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString(@"HH:mm:ss MM/dd/yyyy"); } else if (odSolver != null) // OD COST MATRIX LAYER { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute); tabPropPages.TabPages.Remove(tabClosestFacility); tabPropPages.TabPages.Remove(tabServiceArea); tabPropPages.TabPages.Remove(tabVRP); tabPropPages.TabPages.Remove(tabLocationAllocation); // INAODCostMatrixSolver txtODDefaultCutoff.Text = GetStringFromObject(odSolver.DefaultCutoff); txtODDefaultTargetDestinationCount.Text = GetStringFromObject(odSolver.DefaultTargetDestinationCount); cboODOutputLines.SelectedIndex = Convert.ToInt32(odSolver.OutputLines); // INASolverSettings PopulateImpedanceNameControl(cboODImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName); chkODUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0); chkODUseHierarchy.Checked = (chkODUseHierarchy.Enabled && naSolverSettings.UseHierarchy); chkODIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations; cboODRestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns); PopulateAttributeControl(chklstODAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost); PopulateAttributeControl(chklstODRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction); // INATimeAwareSolverSettings if (naTimeAwareSolverSettings.TimeOfDayUsage == esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime) chkODUseTime.Checked = true; txtODUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString(@"HH:mm:ss MM/dd/yyyy"); } else if (saSolver != null) //SERVICE AREA SOLVER { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute); tabPropPages.TabPages.Remove(tabClosestFacility); tabPropPages.TabPages.Remove(tabODCostMatrix); tabPropPages.TabPages.Remove(tabVRP); tabPropPages.TabPages.Remove(tabLocationAllocation); // INAServiceAreaSolver2 txtSADefaultBreaks.Text = ""; for (int iBreak = 0; iBreak < saSolver.DefaultBreaks.Count; iBreak++) txtSADefaultBreaks.Text = txtSADefaultBreaks.Text + " " + saSolver.DefaultBreaks.get_Element(iBreak).ToString(); cboSATravelDirection.SelectedIndex = Convert.ToInt32(saSolver.TravelDirection); cboSAOutputPolygons.SelectedIndex = -1; cboSAOutputPolygons.SelectedIndex = Convert.ToInt32(saSolver.OutputPolygons); chkSAOverlapPolygons.Checked = saSolver.OverlapPolygons; chkSASplitPolygonsAtBreaks.Checked = saSolver.SplitPolygonsAtBreaks; chkSAMergeSimilarPolygonRanges.Checked = saSolver.MergeSimilarPolygonRanges; chkSATrimOuterPolygon.Checked = saSolver.TrimOuterPolygon; txtSATrimPolygonDistance.Text = saSolver.TrimPolygonDistance.ToString(); cboSATrimPolygonDistanceUnits.SelectedIndex = Convert.ToInt32(saSolver.TrimPolygonDistanceUnits); cboSAOutputLines.SelectedIndex = -1; cboSAOutputLines.SelectedIndex = Convert.ToInt32(saSolver.OutputLines); chkSAOverlapLines.Checked = saSolver.OverlapLines; chkSASplitLinesAtBreaks.Checked = saSolver.SplitLinesAtBreaks; chkSAIncludeSourceInformationOnLines.Checked = saSolver.IncludeSourceInformationOnLines; // INASolverSettings PopulateImpedanceNameControl(cboSAImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName); chkSAIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations; cboSARestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns); PopulateAttributeControl(chklstSAAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost); PopulateAttributeControl(chklstSARestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction); // INATimeAwareSolverSettings if (naTimeAwareSolverSettings.TimeOfDayUsage == esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime) chkSAUseTime.Checked = true; txtSAUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString(@"HH:mm:ss MM/dd/yyyy"); } else if (vrpSolver != null) // VRP Solver { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute); tabPropPages.TabPages.Remove(tabClosestFacility); tabPropPages.TabPages.Remove(tabODCostMatrix); tabPropPages.TabPages.Remove(tabServiceArea); tabPropPages.TabPages.Remove(tabLocationAllocation); cboVRPOutputShapeType.SelectedIndex = Convert.ToInt32(vrpSolver.OutputLines); cboVRPAllowUTurns.SelectedIndex = Convert.ToInt32(naSolverSettings.RestrictUTurns); // VRP cannot have unknown units, so the index is offset by 1 from the solver field units cboVRPDistanceFieldUnits.SelectedIndex = Convert.ToInt32(vrpSolver.DistanceFieldUnits) - 1; cboVRPTransitTime.SelectedIndex = Convert.ToInt32(vrpSolver.ExcessTransitTimePenaltyFactor); cboVRPTimeWindow.SelectedIndex = Convert.ToInt32(vrpSolver.TimeWindowViolationPenaltyFactor); cboVRPTimeFieldUnits.SelectedIndex = Convert.ToInt32(vrpSolver.TimeFieldUnits - 20); txtVRPCapacityCount.Text = vrpSolver.CapacityCount.ToString(); txtVRPDefaultDate.Text = vrpSolver.DefaultDate.ToShortDateString(); chkVRPUseHierarchy.Checked = naSolverSettings.UseHierarchy; PopulateAttributeControl(chklstVRPRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction); //populate the time attribute combo box cboVRPTimeAttribute.Items.Clear(); for (int i = 0; i < networkDataset.AttributeCount; i++) { INetworkAttribute networkAttribute = networkDataset.get_Attribute(i); if (networkAttribute.UsageType == esriNetworkAttributeUsageType.esriNAUTCost && networkAttribute.Units >= esriNetworkAttributeUnits.esriNAUSeconds) cboVRPTimeAttribute.Items.Add(networkAttribute.Name); } if (cboVRPTimeAttribute.Items.Count > 0) cboVRPTimeAttribute.Text = naSolverSettings.ImpedanceAttributeName; // for VRP, the AccumulateAttributeNames hold the length, and it can only hold one length. // Loop through the network dataset attributes cboVRPDistanceAttribute.Items.Clear(); cboVRPDistanceAttribute.SelectedIndex = cboVRPDistanceAttribute.Items.Add(""); for (int i = 0; i < networkDataset.AttributeCount; i++) { INetworkAttribute networkAttribute = networkDataset.get_Attribute(i); if (networkAttribute.UsageType == esriNetworkAttributeUsageType.esriNAUTCost && networkAttribute.Units < esriNetworkAttributeUnits.esriNAUSeconds) { string attributeName = networkAttribute.Name; int cboindex = cboVRPDistanceAttribute.Items.Add(networkAttribute.Name); // If the attribute is in the strArray, it should be the selected one for (int j = 0; j < naSolverSettings.AccumulateAttributeNames.Count; j++) if (naSolverSettings.AccumulateAttributeNames.get_Element(j) == attributeName) cboVRPDistanceAttribute.SelectedIndex = cboindex; } } } else if (laSolver != null) // Location-Allocation LAYER { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute); tabPropPages.TabPages.Remove(tabClosestFacility); tabPropPages.TabPages.Remove(tabODCostMatrix); tabPropPages.TabPages.Remove(tabServiceArea); tabPropPages.TabPages.Remove(tabVRP); // INALocationAllocationSolver txtLACutOff.Text = GetStringFromObject(laSolver.DefaultCutoff); txtLAFacilitiesToLocate.Text = laSolver.NumberFacilitiesToLocate.ToString(); txtLAImpParameter.Text = laSolver.TransformationParameter.ToString(); txtLATargetMarketShare.Text = laSolver.TargetMarketSharePercentage.ToString(); cboLAImpTransformation.SelectedIndex = Convert.ToInt32(laSolver.ImpedanceTransformation); cboLAProblemType.SelectedIndex = Convert.ToInt32(laSolver.ProblemType); cboLAOutputLines.SelectedIndex = Convert.ToInt32(laSolver.OutputLines); cboLATravelDirection.SelectedIndex = Convert.ToInt32(laSolver.TravelDirection); //// INASolverSettings PopulateImpedanceNameControl(cboLAImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName); PopulateAttributeControl(chklstLAAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost); PopulateAttributeControl(chklstLARestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction); chkLAUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0); chkLAUseHierarchy.Checked = (chkCFUseHierarchy.Enabled && naSolverSettings.UseHierarchy); chkLAIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations; // INATimeAwareSolverSettings if (naTimeAwareSolverSettings.TimeOfDayUsage == esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime) chkLAUseTime.Checked = true; txtLAUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString(@"HH:mm:ss MM/dd/yyyy"); } else // Unknown type of layer { // Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute); tabPropPages.TabPages.Remove(tabClosestFacility); tabPropPages.TabPages.Remove(tabODCostMatrix); tabPropPages.TabPages.Remove(tabServiceArea); tabPropPages.TabPages.Remove(tabVRP); tabPropPages.TabPages.Remove(tabLocationAllocation); tabPropPages.TabPages.Remove(tabAttributeParameters); } } /// <summary> /// Interrogate the layer's network dataset attributes to populate a list of attribute parameters /// </summary> private void PopulateAttributeParameterControl(INetworkDataset networkDataset) { var solverSettings = m_naLayer.Context.Solver as INASolverSettings2; // Track if there are attribute parameters, to decide if the attribute parameter tab should be displayed bool hasAttributeParameters = false; // Iterate over all of the network attributes to search for parameters for (int attrIndex = 0; attrIndex < networkDataset.AttributeCount; attrIndex++) { var networkAttribute = networkDataset.get_Attribute(attrIndex) as INetworkAttribute2; string attributeName = networkAttribute.Name; // Iterate over all of the parameters, to find their values for (int paramIndex = 0; paramIndex < networkAttribute.Parameters.Count; paramIndex++) { hasAttributeParameters = true; // Find the current attribute parameter value for this layer var attributeParameter = networkAttribute.Parameters.get_Element(paramIndex) as INetworkAttributeParameter2; object paramValue = solverSettings.get_AttributeParameterValue(attributeName, attributeParameter.Name); int rowID = attributeParameterGrid.Rows.Add(); attributeParameterGrid[(int)AttributeParameterGridColumnType.ATTRIBUTE_NAME, rowID].Value = networkAttribute.Name; attributeParameterGrid[(int)AttributeParameterGridColumnType.PARAMETER_NAME, rowID].Value = attributeParameter.Name; UpdateAttributeParameterValueCell(rowID, paramValue, (VARTYPE)attributeParameter.VarType, attributeParameter.ParameterUsageType); } } // Don't display the attribute parameters tab, if there are no attribute parameters if (!hasAttributeParameters) tabPropPages.TabPages.Remove(tabAttributeParameters); } private void UpdateAttributeParameterValueCell(int rowID, object paramValue, VARTYPE paramVarType, esriNetworkAttributeParameterUsageType paramUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTGeneral) { string cellText = ConvertAttributeParameterValueToString(paramValue, paramVarType, paramUsageType); // Set up the combo box choices for restriction attribute parameters if (paramUsageType == esriNetworkAttributeParameterUsageType.esriNAPUTRestriction) attributeParameterGrid[(int)AttributeParameterGridColumnType.PARAMETER_VALUE, rowID] = CreateRestrictionParameterCell(paramValue, cellText, rowID); attributeParameterGrid[(int)AttributeParameterGridColumnType.PARAMETER_VALUE, rowID].Value = cellText; } private DataGridViewComboBoxCell CreateStandardRestrictionParameterCell(int rowID) { DataGridViewComboBoxCell cbcRestriction = new DataGridViewComboBoxCell(); cbcRestriction.Items.AddRange(m_restrictionParameterValues.Keys.ToArray()); cbcRestriction.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; return cbcRestriction; } private DataGridViewComboBoxCell CreateRestrictionParameterCell(object paramValue, string cellText, int rowID) { DataGridViewComboBoxCell comboBoxCell = CreateStandardRestrictionParameterCell(rowID); bool isCustomRestrictionParamValue = !m_restrictionParameterValues.ContainsValue((double)paramValue); if (isCustomRestrictionParamValue) comboBoxCell.Items.Add(cellText); return comboBoxCell; } private string ConvertAttributeParameterValueToString(object paramValue, VARTYPE paramVarType, esriNetworkAttributeParameterUsageType paramUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTGeneral) { string paramValueString = ""; // Use bitwise arithmetic to determine if this parameter is an array. VARTYPE vtBase = (VARTYPE)((int)paramVarType & ~(int)VARTYPE.VT_ARRAY); bool isArrayType = (vtBase != paramVarType); // Null and DBNull should be represented as an empty string if (!System.DBNull.Value.Equals(paramValue) && paramValue != null) { // For restriction attribute parameters, try to match the parameter double value with its associated // text representation bool isStandardRestrictionParamValue = (paramUsageType == esriNetworkAttributeParameterUsageType.esriNAPUTRestriction && m_restrictionParameterValues.ContainsValue((double)paramValue)); if (isStandardRestrictionParamValue) { if (isStandardRestrictionParamValue) { // Assign celltext to a key name matching the paramValue IEnumerable<string> matchingKeys = from KeyValuePair<string, double> pair in m_restrictionParameterValues where (((double)paramValue).Equals(pair.Value)) select pair.Key; paramValueString = matchingKeys.First(); } } // For attribute parameters that are array types, determine the type of array, // then convert the array to a string for display purposes. else if (isArrayType) { switch (vtBase) { case VARTYPE.VT_I2: paramValueString = ConvertGenericArrayToString((short[])paramValue); break; case VARTYPE.VT_I4: paramValueString = ConvertGenericArrayToString((int[])paramValue); break; case VARTYPE.VT_R4: paramValueString = ConvertGenericArrayToString((float[])paramValue); break; case VARTYPE.VT_R8: paramValueString = ConvertGenericArrayToString((double[])paramValue); break; case VARTYPE.VT_DATE: paramValueString = ConvertGenericArrayToString((DateTime[])paramValue); break; case VARTYPE.VT_BSTR: paramValueString = ConvertGenericArrayToString((string[])paramValue); break; case VARTYPE.VT_BOOL: paramValueString = ConvertGenericArrayToString((bool[])paramValue); break; default: throw new Exception("Unexpected array base type"); } } else paramValueString = paramValue.ToString(); } return paramValueString; } /// <summary> /// Take generic arrays and convert them to a string /// </summary> private static string ConvertGenericArrayToString<T>(T[] values) { string[] sValues = System.Array.ConvertAll(values, p => p.ToString()); return String.Join(",", sValues); } /// <summary> /// Take string values and convert them to generic arrays /// </summary> private static T[] ConvertStringToGenericArray<T>(string cellValue) { List<T> list = new List<T>(); string[] values = cellValue.Split(','); foreach (string value in values) list.Add((T)Convert.ChangeType(value, typeof(T))); return list.ToArray(); } /// <summary> /// Updates the NALayer based on the current controls. /// This will update the solver settings for the solver referenced by the NALayer. /// </summary> private void UpdateNALayer(INALayer naLayer) { ILayer layer = naLayer as ILayer; INAContext naContext = naLayer.Context; INetworkDataset networkDataset = naContext.NetworkDataset; var naLocator = naContext.Locator as INALocator2; INASolver naSolver = naContext.Solver; var naSolverSettings = naSolver as INASolverSettings2; var naTimeAwareSolverSettings = naSolver as INATimeAwareSolverSettings; var routeSolver = naSolver as INARouteSolver2; var cfSolver = naSolver as INAClosestFacilitySolver; var odSolver = naSolver as INAODCostMatrixSolver; var saSolver = naSolver as INAServiceAreaSolver2; var vrpSolver = naSolver as INAVRPSolver; var laSolver = naSolver as INALocationAllocationSolver; // Set Layer properties layer.Name = txtLayerName.Text; naLocator.MaxSnapTolerance = Convert.ToDouble(txtMaxSearchTolerance.Text); naLocator.SnapToleranceUnits = (esriUnits)cboMaxSearchToleranceUnits.SelectedIndex; SetAttributeParameters(networkDataset); // Set Solver properties if (routeSolver != null) // ROUTE LAYER { // INARouteSolver routeSolver.FindBestSequence = chkRouteFindBestSequence.Checked; routeSolver.PreserveFirstStop = chkRoutePreserveFirstStop.Checked; routeSolver.PreserveLastStop = chkRoutePreserveLastStop.Checked; routeSolver.UseTimeWindows = chkRouteUseTimeWindows.Checked; routeSolver.UseStartTime = chkRouteUseStartTime.Checked; try { routeSolver.StartTime = System.Convert.ToDateTime(txtRouteStartTime.Text); } catch (Exception) { throw new Exception(@"Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy."); } routeSolver.OutputLines = (esriNAOutputLineType)cboRouteOutputLines.SelectedIndex; // INASolverSettings naSolverSettings.ImpedanceAttributeName = cboRouteImpedance.Text; naSolverSettings.UseHierarchy = chkRouteUseHierarchy.Checked; naSolverSettings.IgnoreInvalidLocations = chkRouteIgnoreInvalidLocations.Checked; naSolverSettings.RestrictUTurns = (esriNetworkForwardStarBacktrack)cboRouteRestrictUTurns.SelectedIndex; naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstRouteAccumulateAttributeNames); naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstRouteRestrictionAttributeNames); } else if (cfSolver != null) // CLOSEST FACILITY LAYER { if (txtCFDefaultCutoff.Text.Length == 0) cfSolver.DefaultCutoff = null; else cfSolver.DefaultCutoff = Convert.ToDouble(txtCFDefaultCutoff.Text); if (txtCFDefaultTargetFacilityCount.Text.Length == 0) cfSolver.DefaultTargetFacilityCount = 1; else cfSolver.DefaultTargetFacilityCount = Convert.ToInt32(txtCFDefaultTargetFacilityCount.Text); cfSolver.TravelDirection = (esriNATravelDirection)cboCFTravelDirection.SelectedIndex; cfSolver.OutputLines = (esriNAOutputLineType)cboCFOutputLines.SelectedIndex; // INASolverSettings naSolverSettings.ImpedanceAttributeName = cboCFImpedance.Text; naSolverSettings.UseHierarchy = chkCFUseHierarchy.Checked; naSolverSettings.IgnoreInvalidLocations = chkCFIgnoreInvalidLocations.Checked; naSolverSettings.RestrictUTurns = (esriNetworkForwardStarBacktrack)cboCFRestrictUTurns.SelectedIndex; naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstCFAccumulateAttributeNames); naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstCFRestrictionAttributeNames); // INATimeAwareSolverSettings try { naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtCFUseTime.Text); } catch (Exception) { throw new Exception(@"Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy."); } naTimeAwareSolverSettings.TimeOfDayUsage = (esriNATimeOfDayUsage)cboCFTimeUsage.SelectedIndex; } else if (odSolver != null) // OD COST MATRIX LAYER { if (txtODDefaultCutoff.Text.Length == 0) odSolver.DefaultCutoff = null; else odSolver.DefaultCutoff = Convert.ToDouble(txtODDefaultCutoff.Text); if (txtODDefaultTargetDestinationCount.Text.Length == 0) odSolver.DefaultTargetDestinationCount = null; else odSolver.DefaultTargetDestinationCount = Convert.ToInt32(txtODDefaultTargetDestinationCount.Text); odSolver.OutputLines = (esriNAOutputLineType)cboODOutputLines.SelectedIndex; // INASolverSettings naSolverSettings.ImpedanceAttributeName = cboODImpedance.Text; naSolverSettings.UseHierarchy = chkODUseHierarchy.Checked; naSolverSettings.IgnoreInvalidLocations = chkODIgnoreInvalidLocations.Checked; naSolverSettings.RestrictUTurns = (esriNetworkForwardStarBacktrack)cboODRestrictUTurns.SelectedIndex; naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstODAccumulateAttributeNames); naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstODRestrictionAttributeNames); // INATimeAwareSolverSettings try { naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtODUseTime.Text); } catch (Exception) { throw new Exception(@"Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy."); } if (chkODUseTime.Checked) naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime; } else if (saSolver != null) // SERVICE AREA SOLVER { IDoubleArray defaultBreaks = saSolver.DefaultBreaks; defaultBreaks.RemoveAll(); string breaks = txtSADefaultBreaks.Text.Trim(); breaks.Replace(" ", " "); string[] values = breaks.Split(' '); for (int iBreak = values.GetLowerBound(0); iBreak <= values.GetUpperBound(0); iBreak++) defaultBreaks.Add(System.Convert.ToDouble(values.GetValue(iBreak))); saSolver.DefaultBreaks = defaultBreaks; saSolver.TravelDirection = (esriNATravelDirection)cboSATravelDirection.SelectedIndex; saSolver.OutputPolygons = (esriNAOutputPolygonType)cboSAOutputPolygons.SelectedIndex; saSolver.OverlapPolygons = chkSAOverlapPolygons.Checked; saSolver.SplitPolygonsAtBreaks = chkSASplitPolygonsAtBreaks.Checked; saSolver.MergeSimilarPolygonRanges = chkSAMergeSimilarPolygonRanges.Checked; saSolver.TrimOuterPolygon = chkSATrimOuterPolygon.Checked; saSolver.TrimPolygonDistance = Convert.ToDouble(this.txtSATrimPolygonDistance.Text); saSolver.TrimPolygonDistanceUnits = (esriUnits)cboSATrimPolygonDistanceUnits.SelectedIndex; if (cboSAOutputLines.SelectedIndex == 0) saSolver.OutputLines = (esriNAOutputLineType)cboSAOutputLines.SelectedIndex; else // Does not support Straight lines, so not in combobox, up by one to account for this saSolver.OutputLines = (esriNAOutputLineType)(cboSAOutputLines.SelectedIndex + 1); saSolver.OverlapLines = chkSAOverlapLines.Checked; saSolver.SplitLinesAtBreaks = chkSASplitLinesAtBreaks.Checked; saSolver.IncludeSourceInformationOnLines = this.chkSAIncludeSourceInformationOnLines.Checked; // INASolverSettings naSolverSettings.ImpedanceAttributeName = cboSAImpedance.Text; naSolverSettings.IgnoreInvalidLocations = chkSAIgnoreInvalidLocations.Checked; naSolverSettings.RestrictUTurns = (esriNetworkForwardStarBacktrack)cboSARestrictUTurns.SelectedIndex; naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstSAAccumulateAttributeNames); naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstSARestrictionAttributeNames); // INATimeAwareSolverSettings try { naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtSAUseTime.Text); } catch (Exception) { throw new Exception(@"Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy."); } if (chkSAUseTime.Checked) naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime; } else if (vrpSolver != null) { naSolverSettings.ImpedanceAttributeName = cboVRPTimeAttribute.Text; naSolverSettings.AccumulateAttributeNames.RemoveAll(); IStringArray strArray = naSolverSettings.AccumulateAttributeNames; strArray.RemoveAll(); strArray.Add(cboVRPDistanceAttribute.Text); naSolverSettings.AccumulateAttributeNames = strArray; vrpSolver.CapacityCount = Convert.ToInt32(txtVRPCapacityCount.Text); try { vrpSolver.DefaultDate = Convert.ToDateTime(txtVRPDefaultDate.Text); } catch (Exception) { throw new Exception(@"Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy."); } vrpSolver.TimeFieldUnits = ((esriNetworkAttributeUnits)cboVRPTimeFieldUnits.SelectedIndex) + 20; // there cannot be unknown units for a VRP, so the index is offset by 1 vrpSolver.DistanceFieldUnits = (esriNetworkAttributeUnits)cboVRPDistanceFieldUnits.SelectedIndex + 1; naSolverSettings.RestrictUTurns = (esriNetworkForwardStarBacktrack)cboVRPAllowUTurns.SelectedIndex; vrpSolver.OutputLines = (esriNAOutputLineType)cboVRPOutputShapeType.SelectedIndex; vrpSolver.TimeWindowViolationPenaltyFactor = cboVRPTimeWindow.SelectedIndex; vrpSolver.ExcessTransitTimePenaltyFactor = cboVRPTransitTime.SelectedIndex; naSolverSettings.UseHierarchy = chkVRPUseHierarchy.Checked; naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstVRPRestrictionAttributeNames); } else if (laSolver != null) // Location-Allocation LAYER { if (txtLACutOff.Text.Length == 0) laSolver.DefaultCutoff = null; else if (Convert.ToDouble(txtLACutOff.Text) == 0.0) laSolver.DefaultCutoff = null; else laSolver.DefaultCutoff = Convert.ToDouble(txtLACutOff.Text); if (txtLAFacilitiesToLocate.Text.Length == 0) laSolver.NumberFacilitiesToLocate = 1; else laSolver.NumberFacilitiesToLocate = Convert.ToInt32(txtLAFacilitiesToLocate.Text); laSolver.ProblemType = (esriNALocationAllocationProblemType)cboLAProblemType.SelectedIndex; laSolver.ImpedanceTransformation = (esriNAImpedanceTransformationType)cboLAImpTransformation.SelectedIndex; laSolver.TransformationParameter = Convert.ToDouble(txtLAImpParameter.Text); laSolver.TargetMarketSharePercentage = Convert.ToDouble(txtLATargetMarketShare.Text); laSolver.TravelDirection = (esriNATravelDirection)cboLATravelDirection.SelectedIndex; laSolver.OutputLines = (esriNAOutputLineType)cboLAOutputLines.SelectedIndex; //// INASolverSettings naSolverSettings.ImpedanceAttributeName = cboLAImpedance.Text; naSolverSettings.UseHierarchy = chkLAUseHierarchy.Checked; naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstLAAccumulateAttributeNames); naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstLARestrictionAttributeNames); naSolverSettings.IgnoreInvalidLocations = chkLAIgnoreInvalidLocations.Checked; // INATimeAwareSolverSettings try { naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtLAUseTime.Text); } catch (Exception) { throw new Exception(@"Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy."); } if (chkLAUseTime.Checked) naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime; } } /// <summary> /// Populate the attribute parameter values based on the data grid rows. /// </summary> private void SetAttributeParameters(INetworkDataset networkDataset) { var solverSettings = m_naLayer.Context.Solver as INASolverSettings2; // The parameter values will be updated for every row in the data grid view for (int rowIndex = 0; rowIndex < attributeParameterGrid.Rows.Count; rowIndex++) { DataGridViewRow row = attributeParameterGrid.Rows[rowIndex]; // Use the first cell value to find the appropriate network attribute var netAttribute = networkDataset.get_AttributeByName(row.Cells[(int)AttributeParameterGridColumnType.ATTRIBUTE_NAME].Value.ToString()) as INetworkAttribute3; string attributeName = netAttribute.Name; for (int paramIndex = 0; paramIndex < netAttribute.Parameters.Count; paramIndex++) { var parameter = netAttribute.Parameters.get_Element(paramIndex) as INetworkAttributeParameter2; string paramName = parameter.Name; try { // Get the base type for the parameter. For example, if the type is a double array, // then the base type is double. VARTYPE vt = (VARTYPE)parameter.VarType; VARTYPE vtBase = (VARTYPE)((int)vt & ~(int)VARTYPE.VT_ARRAY); // Determine if the parameter is an array bool isArrayType = (vtBase != vt); // Use the second cell value to find the appropriate parameter if (parameter.Name == row.Cells[(int)AttributeParameterGridColumnType.PARAMETER_NAME].Value.ToString()) { object paramValue = System.DBNull.Value; object cellValue = row.Cells[(int)AttributeParameterGridColumnType.PARAMETER_VALUE].Value; if (!System.DBNull.Value.Equals(cellValue) && cellValue != null) paramValue = ConvertStringToAttributeParameterValue(cellValue.ToString(), (VARTYPE)parameter.VarType, parameter.ParameterUsageType); solverSettings.set_AttributeParameterValue(attributeName, paramName, paramValue); } } catch (Exception e) { throw new Exception("Invalid attribute parameter value.\nAttribute: " + attributeName + "\nParameter: " + paramName + "\nError Message: " + e.Message); } } } } private object ConvertStringToAttributeParameterValue(string paramValueText, VARTYPE paramVarType, esriNetworkAttributeParameterUsageType paramUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTGeneral) { object paramValue = System.DBNull.Value; // Regardless of the VarType, the parameter value can be DBNull // Use bitwise arithmetic to determine if this parameter is an array. VARTYPE vtBase = (VARTYPE)((int)paramVarType & ~(int)VARTYPE.VT_ARRAY); bool isArrayType = (vtBase != paramVarType); if (paramValueText != "") { // Restriction parameters are specially handled, due to the conversion between displayed text values // and stored double values bool isRestrictionParm = (paramUsageType == esriNetworkAttributeParameterUsageType.esriNAPUTRestriction); // For restriction parameters that have text values in the list, use the associated double values if (isRestrictionParm && m_restrictionParameterValues.ContainsKey(paramValueText)) paramValue = m_restrictionParameterValues[paramValueText]; // For attribute parameters that are array types, determine the type of array, // then convert the string to the appropriate array type. else if (isArrayType) { switch (vtBase) { case VARTYPE.VT_I2: paramValue = ConvertStringToGenericArray<short>(paramValueText); break; case VARTYPE.VT_I4: paramValue = ConvertStringToGenericArray<int>(paramValueText); break; case VARTYPE.VT_R4: paramValue = ConvertStringToGenericArray<float>(paramValueText); break; case VARTYPE.VT_R8: paramValue = ConvertStringToGenericArray<double>(paramValueText); break; case VARTYPE.VT_DATE: paramValue = ConvertStringToGenericArray<DateTime>(paramValueText); break; case VARTYPE.VT_BSTR: paramValue = ConvertStringToGenericArray<string>(paramValueText); break; case VARTYPE.VT_BOOL: paramValue = ConvertStringToGenericArray<bool>(paramValueText); break; default: throw new Exception("Unexpected array base type"); } } else // Simple type { // Conversion for simple types is handled automatically, if the string can be converted to the VARTYPE paramValue = paramValueText; } } return paramValue; } /// <summary> /// Update the Impedance control based on the network dataset cost attributes /// </summary> private void PopulateImpedanceNameControl(ComboBox cboImpedance, INetworkDataset networkDataset, string impedanceName) { cboImpedance.Items.Clear(); for (int i = 0; i < networkDataset.AttributeCount; i++) { INetworkAttribute networkAttribute = networkDataset.get_Attribute(i); if (networkAttribute.UsageType == esriNetworkAttributeUsageType.esriNAUTCost) cboImpedance.Items.Add(networkAttribute.Name); } if (cboImpedance.Items.Count > 0) cboImpedance.Text = impedanceName; } /// <summary> /// Update the CheckedListBox control based on the network dataset attributes (checking the ones currently chosen by the solver) /// </summary> private void PopulateAttributeControl(CheckedListBox chklstBox, INetworkDataset networkDataset, IStringArray strArray, esriNetworkAttributeUsageType usageType) { chklstBox.Items.Clear(); // Loop through the network dataset attributes for (int i = 0; i < networkDataset.AttributeCount; i++) { var networkAttribute = networkDataset.get_Attribute(i) as INetworkAttribute2; if (networkAttribute.UsageType == usageType) { string attributeName = networkAttribute.Name; CheckState checkState = CheckState.Unchecked; // If the attribute is in the strArray, it should be checked for (int j = 0; j < strArray.Count; j++) if (strArray.get_Element(j) == attributeName) checkState = CheckState.Checked; // Add the attribute to the control chklstBox.Items.Add(attributeName, checkState); } } } /// <summary> /// Returns the attribute names checked. /// </summary> private IStringArray GetCheckedAttributeNamesFromControl(CheckedListBox chklstBox) { IStringArray attributeNames = new StrArrayClass(); for (int i = 0; i < chklstBox.CheckedItems.Count; i++) attributeNames.Add(chklstBox.Items[chklstBox.CheckedIndices[i]].ToString()); return attributeNames; } /// <summary> /// Encapsulates returning an empty string if the object is NULL. /// </summary> private string GetStringFromObject(object value) { if (value == null) return ""; else return value.ToString(); } private void chkRouteUseStartTime_CheckedChanged(object sender, EventArgs e) { txtRouteStartTime.Enabled = chkRouteUseStartTime.Checked; } private void chkRouteFindBestSequence_CheckedChanged(object sender, EventArgs e) { chkRoutePreserveFirstStop.Enabled = chkRouteFindBestSequence.Checked; chkRoutePreserveLastStop.Enabled = chkRouteFindBestSequence.Checked; } // Enable/Disable SA Polygon controls if not generating polygons private void cboSAOutputPolygons_SelectedIndexChanged(object sender, EventArgs e) { bool bOutputPolygons = (cboSAOutputPolygons.SelectedIndex > 0); chkSAOverlapPolygons.Enabled = bOutputPolygons; chkSASplitPolygonsAtBreaks.Enabled = bOutputPolygons; chkSAMergeSimilarPolygonRanges.Enabled = bOutputPolygons; chkSATrimOuterPolygon.Enabled = bOutputPolygons; txtSATrimPolygonDistance.Enabled = bOutputPolygons; cboSATrimPolygonDistanceUnits.Enabled = bOutputPolygons; } // Enable/Disable SA Line controls if not generating lines private void cboSAOutputLines_SelectedIndexChanged(object sender, EventArgs e) { bool bOutputLines = (cboSAOutputLines.SelectedIndex > 0); chkSAOverlapLines.Enabled = bOutputLines; chkSASplitLinesAtBreaks.Enabled = bOutputLines; chkSAIncludeSourceInformationOnLines.Enabled = bOutputLines; } private void cboLAProblemType_SelectedIndexChanged(object sender, EventArgs e) { if ((cboLAProblemType.SelectedIndex == 5) || (cboLAProblemType.SelectedIndex == 2)) txtLAFacilitiesToLocate.Enabled = false; else txtLAFacilitiesToLocate.Enabled = true; if (cboLAProblemType.SelectedIndex == 5) txtLATargetMarketShare.Enabled = true; else txtLATargetMarketShare.Enabled = false; } private void btnOK_Click(object sender, System.EventArgs e) { m_okClicked = true; try { // Get the NAContext and NetworkDataset INAContext naContext = m_naLayer.Context; INetworkDataset networkDataset = naContext.NetworkDataset; UpdateNALayer(m_naLayer); // Update the Context so it can respond to changes made to the solver settings IGPMessages gpMessages = new GPMessagesClass(); IDENetworkDataset deNetworkDataset = ((IDatasetComponent)networkDataset).DataElement as IDENetworkDataset; naContext.Solver.UpdateContext(naContext, deNetworkDataset, gpMessages); // Only close the form if the update happens successfully this.Close(); } catch (Exception ex) { MessageBox.Show("Failed to update the layer. " + ex.Message); } } private void btnCancel_Click(object sender, System.EventArgs e) { m_okClicked = false; this.Close(); } private void btnReset_Click(object sender, EventArgs e) { INetworkDataset networkDataset = m_naLayer.Context.NetworkDataset; var solverSettings = m_naLayer.Context.Solver as INASolverSettings2; // The parameter values will be reset for every row in the data grid view for (int rowID = 0; rowID < attributeParameterGrid.Rows.Count; rowID++) { DataGridViewRow row = attributeParameterGrid.Rows[rowID]; // Use the first cell value to find the appropriate network attribute var netAttribute = networkDataset.get_AttributeByName(row.Cells[(int)AttributeParameterGridColumnType.ATTRIBUTE_NAME].Value.ToString()) as INetworkAttribute3; IArray attributeParameters = netAttribute.Parameters; string attributeName = netAttribute.Name; // Check every parameter to find the matching one for (int paramIndex = 0; paramIndex < netAttribute.Parameters.Count; paramIndex++) { var attributeParameter = attributeParameters.get_Element(paramIndex) as INetworkAttributeParameter2; if (attributeParameter.Name == row.Cells[(int)AttributeParameterGridColumnType.PARAMETER_NAME].Value.ToString()) { solverSettings.set_AttributeParameterValue(attributeName, attributeParameter.Name, attributeParameter.DefaultValue); UpdateAttributeParameterValueCell(rowID, attributeParameter.DefaultValue, (VARTYPE)attributeParameter.VarType, attributeParameter.ParameterUsageType); } } } } } }
[Visual Basic .NET]
frmNALayerProperties.vb
Imports Microsoft.VisualBasic Imports System Imports System.Drawing Imports System.Collections Imports System.ComponentModel Imports System.Windows.Forms Imports ESRI.ArcGIS.NetworkAnalyst Imports ESRI.ArcGIS.Carto Imports ESRI.ArcGIS.Geodatabase Imports ESRI.ArcGIS.esriSystem Imports System.Collections.Generic ' This form allows users to change the NALayer/NAContext/NASolver properties Namespace NAEngine ''' <summary> ''' Summary description for frmNALayerProperties. ''' </summary> Public Class frmNALayerProperties Inherits System.Windows.Forms.Form #Region "Windows Form Designer generated code (defining controls)" ''' <summary> ''' Required designer variable. ''' </summary> Private tabPropPages As TabControl Private tabGeneral As TabPage Private tabRoute As TabPage Private tabServiceArea As TabPage Private tabClosestFacility As TabPage Private tabODCostMatrix As TabPage Private tabVRP As TabPage Private WithEvents btnOK As Button Private WithEvents btnCancel As Button Private chkRouteIgnoreInvalidLocations As CheckBox Private cboRouteRestrictUTurns As ComboBox Private lblRouteRestrictUTurns As Label Private lblRouteAccumulateAttributeNames As Label Private chklstRouteAccumulateAttributeNames As CheckedListBox Private lblRouteRestrictionAttributeNames As Label Private chklstRouteRestrictionAttributeNames As CheckedListBox Private cboRouteImpedance As ComboBox Private lblRouteImpedance As Label Private chkRouteUseHierarchy As CheckBox Private labelRouteOutputLines As Label Private cboRouteOutputLines As ComboBox Private chkRouteUseTimeWindows As CheckBox Private chkRoutePreserveLastStop As CheckBox Private chkRoutePreserveFirstStop As CheckBox Private WithEvents chkRouteFindBestSequence As CheckBox Private WithEvents chkRouteUseStartTime As CheckBox Private txtRouteStartTime As TextBox Private txtLayerName As TextBox Private lblLayerName As Label Private components As System.ComponentModel.Container = Nothing Private cboCFOutputLines As ComboBox Private lblCFOutputLines As Label Private cboCFTravelDirection As ComboBox Private lblCFTravelDirection As Label Private txtCFDefaultTargetFacilityCount As TextBox Private lblCFDefaultTargetFacilityCount As Label Private txtCFDefaultCutoff As TextBox Private lblCFDefaultCutoff As Label Private chkCFIgnoreInvalidLocations As CheckBox Private cboCFRestrictUTurns As ComboBox Private lblCFRestrictUTurns As Label Private lblCFAccumulateAttributeNames As Label Private chklstCFAccumulateAttributeNames As CheckedListBox Private lblCFRestrictionAttributeNames As Label Private chklstCFRestrictionAttributeNames As CheckedListBox Private cboCFImpedance As ComboBox Private lblCFImpedance As Label Private chkCFUseHierarchy As CheckBox Private chkODIgnoreInvalidLocations As CheckBox Private cboODRestrictUTurns As ComboBox Private lblODRestrictUTurns As Label Private lblODAccumulateAttributeNames As Label Private chklstODAccumulateAttributeNames As CheckedListBox Private lblODRestrictionAttributeNames As Label Private chklstODRestrictionAttributeNames As CheckedListBox Private cboODImpedance As ComboBox Private lblODImpedance As Label Private chkODUseHierarchy As CheckBox Private cboODOutputLines As ComboBox Private lblODOutputLines As Label Private txtODDefaultTargetDestinationCount As TextBox Private lblODDefaultTargetDestinationCount As Label Private txtODDefaultCutoff As TextBox Private lblODDefaultCutoff As Label Private txtSADefaultBreaks As TextBox Private lblSADefaultBreaks As Label Private cboSAImpedance As ComboBox Private lblSAImpedance As Label Private lblSAOutputPolygons As Label Private WithEvents cboSAOutputPolygons As ComboBox Private lblSAOutputLines As Label Private WithEvents cboSAOutputLines As ComboBox Private chkSAMergeSimilarPolygonRanges As CheckBox Private chkSAIgnoreInvalidLocations As CheckBox Private cboSARestrictUTurns As ComboBox Private lblSARestrictUTurns As Label Private lblSAAccumulateAttributeNames As Label Private chklstSAAccumulateAttributeNames As CheckedListBox Private lblSARestrictionAttributeNames As Label Private chklstSARestrictionAttributeNames As CheckedListBox Private chkSAOverlapLines As CheckBox Private chkSASplitPolygonsAtBreaks As CheckBox Private chkSAOverlapPolygons As CheckBox Private chkSASplitLinesAtBreaks As CheckBox Private cboSATrimPolygonDistanceUnits As ComboBox Private txtSATrimPolygonDistance As TextBox Private chkSATrimOuterPolygon As CheckBox Private chkSAIncludeSourceInformationOnLines As CheckBox Private cboSATravelDirection As ComboBox Private lblSATravelDirection As Label Private lblMaxSearchTolerance As Label Private cboMaxSearchToleranceUnits As ComboBox Private gbSettings As GroupBox Private chkVRPUseHierarchy As CheckBox Private cboVRPOutputShapeType As ComboBox Private cboVRPAllowUTurns As ComboBox Private cboVRPTimeFieldUnits As ComboBox Private txtVRPCapacityCount As TextBox Private txtVRPDefaultDate As TextBox Private cboVRPDistanceAttribute As ComboBox Private cboVRPTimeAttribute As ComboBox Private label7 As Label Private label6 As Label Private label5 As Label Private label4 As Label Private label3 As Label Private label2 As Label Private label1 As Label Private lblTimeAttribute As Label Private gbRestrictions As GroupBox Private chklstVRPRestrictionAttributeNames As CheckedListBox Private cboVRPTimeWindow As ComboBox Private label10 As Label Private label9 As Label Private cboVRPTransitTime As ComboBox Private cboVRPDistanceFieldUnits As ComboBox Private tabLocationAllocation As TabPage Private lblTargetMarketShare As Label Private txtLATargetMarketShare As TextBox Private cboLAImpTransformation As ComboBox Private lblImpParameter As Label Private txtLAImpParameter As TextBox Private lblImpTransformation As Label Private lblCostAttribute As Label Private cboLAImpedance As ComboBox Private lblProblemType As Label Private WithEvents cboLAProblemType As ComboBox Private lblCutOff As Label Private txtLACutOff As TextBox Private lblNumFacilities As Label Private txtLAFacilitiesToLocate As TextBox Private cboLAOutputLines As ComboBox Private label11 As Label Private cboLATravelDirection As ComboBox Private label12 As Label Private lblLAAccumulateAttributeNames As Label Private chklstLAAccumulateAttributeNames As CheckedListBox Private lblLARestrictionAttributeNames As Label Private chklstLARestrictionAttributeNames As CheckedListBox Private chkLAUseHierarchy As CheckBox Private grpLASettings As GroupBox Private chkLAIgnoreInvalidLocations As CheckBox Private WithEvents label13 As System.Windows.Forms.Label Private WithEvents label8 As System.Windows.Forms.Label Private WithEvents cboCFTimeUsage As System.Windows.Forms.ComboBox Private WithEvents txtCFUseTime As System.Windows.Forms.TextBox Private WithEvents chkODUseTime As System.Windows.Forms.CheckBox Private WithEvents txtODUseTime As System.Windows.Forms.TextBox Private WithEvents chkSAUseTime As System.Windows.Forms.CheckBox Private WithEvents txtSAUseTime As System.Windows.Forms.TextBox Private WithEvents chkLAUseTime As System.Windows.Forms.CheckBox Private WithEvents txtLAUseTime As System.Windows.Forms.TextBox Friend WithEvents tabAttributeParameters As System.Windows.Forms.TabPage Private WithEvents attributeParameterGrid As System.Windows.Forms.DataGridView Private WithEvents dgvcAttribute As System.Windows.Forms.DataGridViewTextBoxColumn Private WithEvents dgvcParameter As System.Windows.Forms.DataGridViewTextBoxColumn Private WithEvents dgvcValue As System.Windows.Forms.DataGridViewTextBoxColumn Private WithEvents label14 As System.Windows.Forms.Label Private WithEvents btnReset As System.Windows.Forms.Button Private txtMaxSearchTolerance As TextBox #End Region #Region "Windows Form Designer generated code (InitializeComponent)" ''' <summary> ''' Required method for Designer support - do not modify ''' the contents of this method with the code editor. ''' </summary> Private Sub InitializeComponent() Me.tabPropPages = New System.Windows.Forms.TabControl() Me.tabGeneral = New System.Windows.Forms.TabPage() Me.lblMaxSearchTolerance = New System.Windows.Forms.Label() Me.cboMaxSearchToleranceUnits = New System.Windows.Forms.ComboBox() Me.txtMaxSearchTolerance = New System.Windows.Forms.TextBox() Me.txtLayerName = New System.Windows.Forms.TextBox() Me.lblLayerName = New System.Windows.Forms.Label() Me.tabRoute = New System.Windows.Forms.TabPage() Me.labelRouteOutputLines = New System.Windows.Forms.Label() Me.cboRouteOutputLines = New System.Windows.Forms.ComboBox() Me.chkRouteUseTimeWindows = New System.Windows.Forms.CheckBox() Me.chkRoutePreserveLastStop = New System.Windows.Forms.CheckBox() Me.chkRoutePreserveFirstStop = New System.Windows.Forms.CheckBox() Me.chkRouteFindBestSequence = New System.Windows.Forms.CheckBox() Me.chkRouteUseStartTime = New System.Windows.Forms.CheckBox() Me.txtRouteStartTime = New System.Windows.Forms.TextBox() Me.chkRouteIgnoreInvalidLocations = New System.Windows.Forms.CheckBox() Me.cboRouteRestrictUTurns = New System.Windows.Forms.ComboBox() Me.lblRouteRestrictUTurns = New System.Windows.Forms.Label() Me.lblRouteAccumulateAttributeNames = New System.Windows.Forms.Label() Me.chklstRouteAccumulateAttributeNames = New System.Windows.Forms.CheckedListBox() Me.lblRouteRestrictionAttributeNames = New System.Windows.Forms.Label() Me.chklstRouteRestrictionAttributeNames = New System.Windows.Forms.CheckedListBox() Me.cboRouteImpedance = New System.Windows.Forms.ComboBox() Me.lblRouteImpedance = New System.Windows.Forms.Label() Me.chkRouteUseHierarchy = New System.Windows.Forms.CheckBox() Me.tabClosestFacility = New System.Windows.Forms.TabPage() Me.label13 = New System.Windows.Forms.Label() Me.label8 = New System.Windows.Forms.Label() Me.cboCFTimeUsage = New System.Windows.Forms.ComboBox() Me.txtCFUseTime = New System.Windows.Forms.TextBox() Me.chkCFIgnoreInvalidLocations = New System.Windows.Forms.CheckBox() Me.cboCFRestrictUTurns = New System.Windows.Forms.ComboBox() Me.lblCFRestrictUTurns = New System.Windows.Forms.Label() Me.lblCFAccumulateAttributeNames = New System.Windows.Forms.Label() Me.chklstCFAccumulateAttributeNames = New System.Windows.Forms.CheckedListBox() Me.lblCFRestrictionAttributeNames = New System.Windows.Forms.Label() Me.chklstCFRestrictionAttributeNames = New System.Windows.Forms.CheckedListBox() Me.cboCFImpedance = New System.Windows.Forms.ComboBox() Me.lblCFImpedance = New System.Windows.Forms.Label() Me.chkCFUseHierarchy = New System.Windows.Forms.CheckBox() Me.cboCFOutputLines = New System.Windows.Forms.ComboBox() Me.lblCFOutputLines = New System.Windows.Forms.Label() Me.cboCFTravelDirection = New System.Windows.Forms.ComboBox() Me.lblCFTravelDirection = New System.Windows.Forms.Label() Me.txtCFDefaultTargetFacilityCount = New System.Windows.Forms.TextBox() Me.lblCFDefaultTargetFacilityCount = New System.Windows.Forms.Label() Me.txtCFDefaultCutoff = New System.Windows.Forms.TextBox() Me.lblCFDefaultCutoff = New System.Windows.Forms.Label() Me.tabODCostMatrix = New System.Windows.Forms.TabPage() Me.chkODUseTime = New System.Windows.Forms.CheckBox() Me.txtODUseTime = New System.Windows.Forms.TextBox() Me.chkODIgnoreInvalidLocations = New System.Windows.Forms.CheckBox() Me.cboODRestrictUTurns = New System.Windows.Forms.ComboBox() Me.lblODRestrictUTurns = New System.Windows.Forms.Label() Me.lblODAccumulateAttributeNames = New System.Windows.Forms.Label() Me.chklstODAccumulateAttributeNames = New System.Windows.Forms.CheckedListBox() Me.lblODRestrictionAttributeNames = New System.Windows.Forms.Label() Me.chklstODRestrictionAttributeNames = New System.Windows.Forms.CheckedListBox() Me.cboODImpedance = New System.Windows.Forms.ComboBox() Me.lblODImpedance = New System.Windows.Forms.Label() Me.chkODUseHierarchy = New System.Windows.Forms.CheckBox() Me.cboODOutputLines = New System.Windows.Forms.ComboBox() Me.lblODOutputLines = New System.Windows.Forms.Label() Me.txtODDefaultTargetDestinationCount = New System.Windows.Forms.TextBox() Me.lblODDefaultTargetDestinationCount = New System.Windows.Forms.Label() Me.txtODDefaultCutoff = New System.Windows.Forms.TextBox() Me.lblODDefaultCutoff = New System.Windows.Forms.Label() Me.tabServiceArea = New System.Windows.Forms.TabPage() Me.chkSAUseTime = New System.Windows.Forms.CheckBox() Me.txtSAUseTime = New System.Windows.Forms.TextBox() Me.cboSATrimPolygonDistanceUnits = New System.Windows.Forms.ComboBox() Me.txtSATrimPolygonDistance = New System.Windows.Forms.TextBox() Me.chkSATrimOuterPolygon = New System.Windows.Forms.CheckBox() Me.chkSAIncludeSourceInformationOnLines = New System.Windows.Forms.CheckBox() Me.cboSATravelDirection = New System.Windows.Forms.ComboBox() Me.lblSATravelDirection = New System.Windows.Forms.Label() Me.chkSASplitPolygonsAtBreaks = New System.Windows.Forms.CheckBox() Me.chkSAOverlapPolygons = New System.Windows.Forms.CheckBox() Me.chkSASplitLinesAtBreaks = New System.Windows.Forms.CheckBox() Me.chkSAOverlapLines = New System.Windows.Forms.CheckBox() Me.chkSAIgnoreInvalidLocations = New System.Windows.Forms.CheckBox() Me.cboSARestrictUTurns = New System.Windows.Forms.ComboBox() Me.lblSARestrictUTurns = New System.Windows.Forms.Label() Me.lblSAAccumulateAttributeNames = New System.Windows.Forms.Label() Me.chklstSAAccumulateAttributeNames = New System.Windows.Forms.CheckedListBox() Me.lblSARestrictionAttributeNames = New System.Windows.Forms.Label() Me.chklstSARestrictionAttributeNames = New System.Windows.Forms.CheckedListBox() Me.lblSAOutputPolygons = New System.Windows.Forms.Label() Me.cboSAOutputPolygons = New System.Windows.Forms.ComboBox() Me.lblSAOutputLines = New System.Windows.Forms.Label() Me.cboSAOutputLines = New System.Windows.Forms.ComboBox() Me.chkSAMergeSimilarPolygonRanges = New System.Windows.Forms.CheckBox() Me.txtSADefaultBreaks = New System.Windows.Forms.TextBox() Me.lblSADefaultBreaks = New System.Windows.Forms.Label() Me.cboSAImpedance = New System.Windows.Forms.ComboBox() Me.lblSAImpedance = New System.Windows.Forms.Label() Me.tabVRP = New System.Windows.Forms.TabPage() Me.gbRestrictions = New System.Windows.Forms.GroupBox() Me.chklstVRPRestrictionAttributeNames = New System.Windows.Forms.CheckedListBox() Me.gbSettings = New System.Windows.Forms.GroupBox() Me.cboVRPDistanceFieldUnits = New System.Windows.Forms.ComboBox() Me.cboVRPTransitTime = New System.Windows.Forms.ComboBox() Me.cboVRPTimeWindow = New System.Windows.Forms.ComboBox() Me.label10 = New System.Windows.Forms.Label() Me.label9 = New System.Windows.Forms.Label() Me.chkVRPUseHierarchy = New System.Windows.Forms.CheckBox() Me.cboVRPOutputShapeType = New System.Windows.Forms.ComboBox() Me.cboVRPAllowUTurns = New System.Windows.Forms.ComboBox() Me.cboVRPTimeFieldUnits = New System.Windows.Forms.ComboBox() Me.txtVRPCapacityCount = New System.Windows.Forms.TextBox() Me.txtVRPDefaultDate = New System.Windows.Forms.TextBox() Me.cboVRPDistanceAttribute = New System.Windows.Forms.ComboBox() Me.cboVRPTimeAttribute = New System.Windows.Forms.ComboBox() Me.label7 = New System.Windows.Forms.Label() Me.label6 = New System.Windows.Forms.Label() Me.label5 = New System.Windows.Forms.Label() Me.label4 = New System.Windows.Forms.Label() Me.label3 = New System.Windows.Forms.Label() Me.label2 = New System.Windows.Forms.Label() Me.label1 = New System.Windows.Forms.Label() Me.lblTimeAttribute = New System.Windows.Forms.Label() Me.tabLocationAllocation = New System.Windows.Forms.TabPage() Me.chkLAUseTime = New System.Windows.Forms.CheckBox() Me.txtLAUseTime = New System.Windows.Forms.TextBox() Me.chkLAIgnoreInvalidLocations = New System.Windows.Forms.CheckBox() Me.grpLASettings = New System.Windows.Forms.GroupBox() Me.lblTargetMarketShare = New System.Windows.Forms.Label() Me.txtLATargetMarketShare = New System.Windows.Forms.TextBox() Me.cboLAImpTransformation = New System.Windows.Forms.ComboBox() Me.lblImpParameter = New System.Windows.Forms.Label() Me.txtLAImpParameter = New System.Windows.Forms.TextBox() Me.lblImpTransformation = New System.Windows.Forms.Label() Me.lblProblemType = New System.Windows.Forms.Label() Me.cboLAProblemType = New System.Windows.Forms.ComboBox() Me.lblCutOff = New System.Windows.Forms.Label() Me.txtLACutOff = New System.Windows.Forms.TextBox() Me.lblNumFacilities = New System.Windows.Forms.Label() Me.txtLAFacilitiesToLocate = New System.Windows.Forms.TextBox() Me.chkLAUseHierarchy = New System.Windows.Forms.CheckBox() Me.lblLAAccumulateAttributeNames = New System.Windows.Forms.Label() Me.chklstLAAccumulateAttributeNames = New System.Windows.Forms.CheckedListBox() Me.lblLARestrictionAttributeNames = New System.Windows.Forms.Label() Me.chklstLARestrictionAttributeNames = New System.Windows.Forms.CheckedListBox() Me.cboLAOutputLines = New System.Windows.Forms.ComboBox() Me.label11 = New System.Windows.Forms.Label() Me.cboLATravelDirection = New System.Windows.Forms.ComboBox() Me.label12 = New System.Windows.Forms.Label() Me.lblCostAttribute = New System.Windows.Forms.Label() Me.cboLAImpedance = New System.Windows.Forms.ComboBox() Me.tabAttributeParameters = New System.Windows.Forms.TabPage() Me.btnReset = New System.Windows.Forms.Button() Me.attributeParameterGrid = New System.Windows.Forms.DataGridView() Me.dgvcAttribute = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.dgvcParameter = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.dgvcValue = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.label14 = New System.Windows.Forms.Label() Me.btnOK = New System.Windows.Forms.Button() Me.btnCancel = New System.Windows.Forms.Button() Me.tabPropPages.SuspendLayout() Me.tabGeneral.SuspendLayout() Me.tabRoute.SuspendLayout() Me.tabClosestFacility.SuspendLayout() Me.tabODCostMatrix.SuspendLayout() Me.tabServiceArea.SuspendLayout() Me.tabVRP.SuspendLayout() Me.gbRestrictions.SuspendLayout() Me.gbSettings.SuspendLayout() Me.tabLocationAllocation.SuspendLayout() Me.grpLASettings.SuspendLayout() Me.tabAttributeParameters.SuspendLayout() CType(Me.attributeParameterGrid, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'tabPropPages ' Me.tabPropPages.Controls.Add(Me.tabGeneral) Me.tabPropPages.Controls.Add(Me.tabRoute) Me.tabPropPages.Controls.Add(Me.tabClosestFacility) Me.tabPropPages.Controls.Add(Me.tabODCostMatrix) Me.tabPropPages.Controls.Add(Me.tabServiceArea) Me.tabPropPages.Controls.Add(Me.tabVRP) Me.tabPropPages.Controls.Add(Me.tabLocationAllocation) Me.tabPropPages.Controls.Add(Me.tabAttributeParameters) Me.tabPropPages.Location = New System.Drawing.Point(8, 8) Me.tabPropPages.Name = "tabPropPages" Me.tabPropPages.SelectedIndex = 0 Me.tabPropPages.Size = New System.Drawing.Size(720, 499) Me.tabPropPages.TabIndex = 0 ' 'tabGeneral ' Me.tabGeneral.Controls.Add(Me.lblMaxSearchTolerance) Me.tabGeneral.Controls.Add(Me.cboMaxSearchToleranceUnits) Me.tabGeneral.Controls.Add(Me.txtMaxSearchTolerance) Me.tabGeneral.Controls.Add(Me.txtLayerName) Me.tabGeneral.Controls.Add(Me.lblLayerName) Me.tabGeneral.Location = New System.Drawing.Point(4, 22) Me.tabGeneral.Name = "tabGeneral" Me.tabGeneral.Size = New System.Drawing.Size(712, 473) Me.tabGeneral.TabIndex = 0 Me.tabGeneral.Text = "General" Me.tabGeneral.UseVisualStyleBackColor = True ' 'lblMaxSearchTolerance ' Me.lblMaxSearchTolerance.Location = New System.Drawing.Point(24, 64) Me.lblMaxSearchTolerance.Name = "lblMaxSearchTolerance" Me.lblMaxSearchTolerance.Size = New System.Drawing.Size(100, 24) Me.lblMaxSearchTolerance.TabIndex = 123 Me.lblMaxSearchTolerance.Text = "Search Tolerance" ' 'cboMaxSearchToleranceUnits ' Me.cboMaxSearchToleranceUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboMaxSearchToleranceUnits.ItemHeight = 13 Me.cboMaxSearchToleranceUnits.Items.AddRange(New Object() {"Unknown Units", "Inches", "Points", "Feet", "Yards", "Miles", "Nautical Miles", "Millimeters", "Centimeters", "Meters", "Kilometers", "DecimalDegrees", "Decimeters"}) Me.cboMaxSearchToleranceUnits.Location = New System.Drawing.Point(258, 61) Me.cboMaxSearchToleranceUnits.Name = "cboMaxSearchToleranceUnits" Me.cboMaxSearchToleranceUnits.Size = New System.Drawing.Size(130, 21) Me.cboMaxSearchToleranceUnits.TabIndex = 122 ' 'txtMaxSearchTolerance ' Me.txtMaxSearchTolerance.Location = New System.Drawing.Point(130, 62) Me.txtMaxSearchTolerance.Name = "txtMaxSearchTolerance" Me.txtMaxSearchTolerance.Size = New System.Drawing.Size(122, 20) Me.txtMaxSearchTolerance.TabIndex = 121 ' 'txtLayerName ' Me.txtLayerName.Location = New System.Drawing.Point(130, 32) Me.txtLayerName.Name = "txtLayerName" Me.txtLayerName.Size = New System.Drawing.Size(258, 20) Me.txtLayerName.TabIndex = 1 ' 'lblLayerName ' Me.lblLayerName.Location = New System.Drawing.Point(24, 35) Me.lblLayerName.Name = "lblLayerName" Me.lblLayerName.Size = New System.Drawing.Size(88, 24) Me.lblLayerName.TabIndex = 0 Me.lblLayerName.Text = "Layer Name" ' 'tabRoute ' Me.tabRoute.Controls.Add(Me.labelRouteOutputLines) Me.tabRoute.Controls.Add(Me.cboRouteOutputLines) Me.tabRoute.Controls.Add(Me.chkRouteUseTimeWindows) Me.tabRoute.Controls.Add(Me.chkRoutePreserveLastStop) Me.tabRoute.Controls.Add(Me.chkRoutePreserveFirstStop) Me.tabRoute.Controls.Add(Me.chkRouteFindBestSequence) Me.tabRoute.Controls.Add(Me.chkRouteUseStartTime) Me.tabRoute.Controls.Add(Me.txtRouteStartTime) Me.tabRoute.Controls.Add(Me.chkRouteIgnoreInvalidLocations) Me.tabRoute.Controls.Add(Me.cboRouteRestrictUTurns) Me.tabRoute.Controls.Add(Me.lblRouteRestrictUTurns) Me.tabRoute.Controls.Add(Me.lblRouteAccumulateAttributeNames) Me.tabRoute.Controls.Add(Me.chklstRouteAccumulateAttributeNames) Me.tabRoute.Controls.Add(Me.lblRouteRestrictionAttributeNames) Me.tabRoute.Controls.Add(Me.chklstRouteRestrictionAttributeNames) Me.tabRoute.Controls.Add(Me.cboRouteImpedance) Me.tabRoute.Controls.Add(Me.lblRouteImpedance) Me.tabRoute.Controls.Add(Me.chkRouteUseHierarchy) Me.tabRoute.Location = New System.Drawing.Point(4, 22) Me.tabRoute.Name = "tabRoute" Me.tabRoute.Size = New System.Drawing.Size(712, 473) Me.tabRoute.TabIndex = 1 Me.tabRoute.Text = "Route" Me.tabRoute.UseVisualStyleBackColor = True ' 'labelRouteOutputLines ' Me.labelRouteOutputLines.Location = New System.Drawing.Point(20, 209) Me.labelRouteOutputLines.Name = "labelRouteOutputLines" Me.labelRouteOutputLines.Size = New System.Drawing.Size(40, 16) Me.labelRouteOutputLines.TabIndex = 96 Me.labelRouteOutputLines.Text = "Shape" ' 'cboRouteOutputLines ' Me.cboRouteOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboRouteOutputLines.ItemHeight = 13 Me.cboRouteOutputLines.Items.AddRange(New Object() {"No Lines", "Straight Lines", "True Shape", "True Shape With Measures"}) Me.cboRouteOutputLines.Location = New System.Drawing.Point(148, 204) Me.cboRouteOutputLines.Name = "cboRouteOutputLines" Me.cboRouteOutputLines.Size = New System.Drawing.Size(200, 21) Me.cboRouteOutputLines.TabIndex = 95 ' 'chkRouteUseTimeWindows ' Me.chkRouteUseTimeWindows.Location = New System.Drawing.Point(20, 76) Me.chkRouteUseTimeWindows.Name = "chkRouteUseTimeWindows" Me.chkRouteUseTimeWindows.Size = New System.Drawing.Size(128, 16) Me.chkRouteUseTimeWindows.TabIndex = 92 Me.chkRouteUseTimeWindows.Text = "Use Time Windows" ' 'chkRoutePreserveLastStop ' Me.chkRoutePreserveLastStop.Location = New System.Drawing.Point(39, 151) Me.chkRoutePreserveLastStop.Name = "chkRoutePreserveLastStop" Me.chkRoutePreserveLastStop.Size = New System.Drawing.Size(331, 23) Me.chkRoutePreserveLastStop.TabIndex = 91 Me.chkRoutePreserveLastStop.Text = "Preserve Last Stop" ' 'chkRoutePreserveFirstStop ' Me.chkRoutePreserveFirstStop.Location = New System.Drawing.Point(39, 123) Me.chkRoutePreserveFirstStop.Name = "chkRoutePreserveFirstStop" Me.chkRoutePreserveFirstStop.Size = New System.Drawing.Size(331, 28) Me.chkRoutePreserveFirstStop.TabIndex = 90 Me.chkRoutePreserveFirstStop.Text = "Preserve First Stop" ' 'chkRouteFindBestSequence ' Me.chkRouteFindBestSequence.Checked = True Me.chkRouteFindBestSequence.CheckState = System.Windows.Forms.CheckState.Checked Me.chkRouteFindBestSequence.Location = New System.Drawing.Point(20, 98) Me.chkRouteFindBestSequence.Name = "chkRouteFindBestSequence" Me.chkRouteFindBestSequence.Size = New System.Drawing.Size(336, 32) Me.chkRouteFindBestSequence.TabIndex = 89 Me.chkRouteFindBestSequence.Text = "Find Best Sequence" ' 'chkRouteUseStartTime ' Me.chkRouteUseStartTime.Checked = True Me.chkRouteUseStartTime.CheckState = System.Windows.Forms.CheckState.Checked Me.chkRouteUseStartTime.Location = New System.Drawing.Point(20, 54) Me.chkRouteUseStartTime.Name = "chkRouteUseStartTime" Me.chkRouteUseStartTime.Size = New System.Drawing.Size(104, 16) Me.chkRouteUseStartTime.TabIndex = 93 Me.chkRouteUseStartTime.Text = "Use Start Time" ' 'txtRouteStartTime ' Me.txtRouteStartTime.Location = New System.Drawing.Point(151, 50) Me.txtRouteStartTime.Name = "txtRouteStartTime" Me.txtRouteStartTime.Size = New System.Drawing.Size(200, 20) Me.txtRouteStartTime.TabIndex = 94 ' 'chkRouteIgnoreInvalidLocations ' Me.chkRouteIgnoreInvalidLocations.Location = New System.Drawing.Point(20, 252) Me.chkRouteIgnoreInvalidLocations.Name = "chkRouteIgnoreInvalidLocations" Me.chkRouteIgnoreInvalidLocations.Size = New System.Drawing.Size(144, 29) Me.chkRouteIgnoreInvalidLocations.TabIndex = 81 Me.chkRouteIgnoreInvalidLocations.Text = "Ignore Invalid Locations" ' 'cboRouteRestrictUTurns ' Me.cboRouteRestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboRouteRestrictUTurns.ItemHeight = 13 Me.cboRouteRestrictUTurns.Items.AddRange(New Object() {"No U-Turns", "Allow U-Turns", "Only At Dead Ends"}) Me.cboRouteRestrictUTurns.Location = New System.Drawing.Point(148, 177) Me.cboRouteRestrictUTurns.Name = "cboRouteRestrictUTurns" Me.cboRouteRestrictUTurns.Size = New System.Drawing.Size(200, 21) Me.cboRouteRestrictUTurns.TabIndex = 80 ' 'lblRouteRestrictUTurns ' Me.lblRouteRestrictUTurns.Location = New System.Drawing.Point(20, 182) Me.lblRouteRestrictUTurns.Name = "lblRouteRestrictUTurns" Me.lblRouteRestrictUTurns.Size = New System.Drawing.Size(88, 16) Me.lblRouteRestrictUTurns.TabIndex = 88 Me.lblRouteRestrictUTurns.Text = "UTurn Policy" ' 'lblRouteAccumulateAttributeNames ' Me.lblRouteAccumulateAttributeNames.Location = New System.Drawing.Point(236, 284) Me.lblRouteAccumulateAttributeNames.Name = "lblRouteAccumulateAttributeNames" Me.lblRouteAccumulateAttributeNames.Size = New System.Drawing.Size(120, 16) Me.lblRouteAccumulateAttributeNames.TabIndex = 87 Me.lblRouteAccumulateAttributeNames.Text = "Accumulate Attributes" ' 'chklstRouteAccumulateAttributeNames ' Me.chklstRouteAccumulateAttributeNames.CheckOnClick = True Me.chklstRouteAccumulateAttributeNames.Location = New System.Drawing.Point(236, 300) Me.chklstRouteAccumulateAttributeNames.Name = "chklstRouteAccumulateAttributeNames" Me.chklstRouteAccumulateAttributeNames.ScrollAlwaysVisible = True Me.chklstRouteAccumulateAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstRouteAccumulateAttributeNames.TabIndex = 84 ' 'lblRouteRestrictionAttributeNames ' Me.lblRouteRestrictionAttributeNames.Location = New System.Drawing.Point(20, 284) Me.lblRouteRestrictionAttributeNames.Name = "lblRouteRestrictionAttributeNames" Me.lblRouteRestrictionAttributeNames.Size = New System.Drawing.Size(72, 16) Me.lblRouteRestrictionAttributeNames.TabIndex = 86 Me.lblRouteRestrictionAttributeNames.Text = "Restrictions" ' 'chklstRouteRestrictionAttributeNames ' Me.chklstRouteRestrictionAttributeNames.CheckOnClick = True Me.chklstRouteRestrictionAttributeNames.Location = New System.Drawing.Point(20, 300) Me.chklstRouteRestrictionAttributeNames.Name = "chklstRouteRestrictionAttributeNames" Me.chklstRouteRestrictionAttributeNames.ScrollAlwaysVisible = True Me.chklstRouteRestrictionAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstRouteRestrictionAttributeNames.TabIndex = 83 ' 'cboRouteImpedance ' Me.cboRouteImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboRouteImpedance.ItemHeight = 13 Me.cboRouteImpedance.Location = New System.Drawing.Point(151, 23) Me.cboRouteImpedance.Name = "cboRouteImpedance" Me.cboRouteImpedance.Size = New System.Drawing.Size(200, 21) Me.cboRouteImpedance.TabIndex = 79 ' 'lblRouteImpedance ' Me.lblRouteImpedance.Location = New System.Drawing.Point(20, 28) Me.lblRouteImpedance.Name = "lblRouteImpedance" Me.lblRouteImpedance.Size = New System.Drawing.Size(64, 16) Me.lblRouteImpedance.TabIndex = 85 Me.lblRouteImpedance.Text = "Impedance" ' 'chkRouteUseHierarchy ' Me.chkRouteUseHierarchy.Location = New System.Drawing.Point(20, 228) Me.chkRouteUseHierarchy.Name = "chkRouteUseHierarchy" Me.chkRouteUseHierarchy.Size = New System.Drawing.Size(96, 26) Me.chkRouteUseHierarchy.TabIndex = 82 Me.chkRouteUseHierarchy.Text = "Use Hierarchy" ' 'tabClosestFacility ' Me.tabClosestFacility.Controls.Add(Me.label13) Me.tabClosestFacility.Controls.Add(Me.label8) Me.tabClosestFacility.Controls.Add(Me.cboCFTimeUsage) Me.tabClosestFacility.Controls.Add(Me.txtCFUseTime) Me.tabClosestFacility.Controls.Add(Me.chkCFIgnoreInvalidLocations) Me.tabClosestFacility.Controls.Add(Me.cboCFRestrictUTurns) Me.tabClosestFacility.Controls.Add(Me.lblCFRestrictUTurns) Me.tabClosestFacility.Controls.Add(Me.lblCFAccumulateAttributeNames) Me.tabClosestFacility.Controls.Add(Me.chklstCFAccumulateAttributeNames) Me.tabClosestFacility.Controls.Add(Me.lblCFRestrictionAttributeNames) Me.tabClosestFacility.Controls.Add(Me.chklstCFRestrictionAttributeNames) Me.tabClosestFacility.Controls.Add(Me.cboCFImpedance) Me.tabClosestFacility.Controls.Add(Me.lblCFImpedance) Me.tabClosestFacility.Controls.Add(Me.chkCFUseHierarchy) Me.tabClosestFacility.Controls.Add(Me.cboCFOutputLines) Me.tabClosestFacility.Controls.Add(Me.lblCFOutputLines) Me.tabClosestFacility.Controls.Add(Me.cboCFTravelDirection) Me.tabClosestFacility.Controls.Add(Me.lblCFTravelDirection) Me.tabClosestFacility.Controls.Add(Me.txtCFDefaultTargetFacilityCount) Me.tabClosestFacility.Controls.Add(Me.lblCFDefaultTargetFacilityCount) Me.tabClosestFacility.Controls.Add(Me.txtCFDefaultCutoff) Me.tabClosestFacility.Controls.Add(Me.lblCFDefaultCutoff) Me.tabClosestFacility.Location = New System.Drawing.Point(4, 22) Me.tabClosestFacility.Name = "tabClosestFacility" Me.tabClosestFacility.Size = New System.Drawing.Size(712, 473) Me.tabClosestFacility.TabIndex = 3 Me.tabClosestFacility.Text = "Closest Facility" Me.tabClosestFacility.UseVisualStyleBackColor = True ' 'label13 ' Me.label13.Location = New System.Drawing.Point(20, 77) Me.label13.Name = "label13" Me.label13.Size = New System.Drawing.Size(114, 16) Me.label13.TabIndex = 121 Me.label13.Text = "Time" ' 'label8 ' Me.label8.Location = New System.Drawing.Point(20, 51) Me.label8.Name = "label8" Me.label8.Size = New System.Drawing.Size(114, 16) Me.label8.TabIndex = 120 Me.label8.Text = "Time Usage" ' 'cboCFTimeUsage ' Me.cboCFTimeUsage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboCFTimeUsage.ItemHeight = 13 Me.cboCFTimeUsage.Items.AddRange(New Object() {"Not used", "End time", "Start time"}) Me.cboCFTimeUsage.Location = New System.Drawing.Point(151, 48) Me.cboCFTimeUsage.Name = "cboCFTimeUsage" Me.cboCFTimeUsage.Size = New System.Drawing.Size(200, 21) Me.cboCFTimeUsage.TabIndex = 119 ' 'txtCFUseTime ' Me.txtCFUseTime.Location = New System.Drawing.Point(151, 74) Me.txtCFUseTime.Name = "txtCFUseTime" Me.txtCFUseTime.Size = New System.Drawing.Size(200, 20) Me.txtCFUseTime.TabIndex = 118 ' 'chkCFIgnoreInvalidLocations ' Me.chkCFIgnoreInvalidLocations.Location = New System.Drawing.Point(20, 269) Me.chkCFIgnoreInvalidLocations.Name = "chkCFIgnoreInvalidLocations" Me.chkCFIgnoreInvalidLocations.Size = New System.Drawing.Size(144, 29) Me.chkCFIgnoreInvalidLocations.TabIndex = 105 Me.chkCFIgnoreInvalidLocations.Text = "Ignore Invalid Locations" ' 'cboCFRestrictUTurns ' Me.cboCFRestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboCFRestrictUTurns.ItemHeight = 13 Me.cboCFRestrictUTurns.Items.AddRange(New Object() {"No U-Turns", "Allow U-Turns", "Only At Dead Ends"}) Me.cboCFRestrictUTurns.Location = New System.Drawing.Point(151, 178) Me.cboCFRestrictUTurns.Name = "cboCFRestrictUTurns" Me.cboCFRestrictUTurns.Size = New System.Drawing.Size(200, 21) Me.cboCFRestrictUTurns.TabIndex = 104 ' 'lblCFRestrictUTurns ' Me.lblCFRestrictUTurns.Location = New System.Drawing.Point(20, 183) Me.lblCFRestrictUTurns.Name = "lblCFRestrictUTurns" Me.lblCFRestrictUTurns.Size = New System.Drawing.Size(88, 16) Me.lblCFRestrictUTurns.TabIndex = 112 Me.lblCFRestrictUTurns.Text = "UTurn Policy" ' 'lblCFAccumulateAttributeNames ' Me.lblCFAccumulateAttributeNames.Location = New System.Drawing.Point(236, 301) Me.lblCFAccumulateAttributeNames.Name = "lblCFAccumulateAttributeNames" Me.lblCFAccumulateAttributeNames.Size = New System.Drawing.Size(120, 16) Me.lblCFAccumulateAttributeNames.TabIndex = 111 Me.lblCFAccumulateAttributeNames.Text = "Accumulate Attributes" ' 'chklstCFAccumulateAttributeNames ' Me.chklstCFAccumulateAttributeNames.CheckOnClick = True Me.chklstCFAccumulateAttributeNames.Location = New System.Drawing.Point(236, 317) Me.chklstCFAccumulateAttributeNames.Name = "chklstCFAccumulateAttributeNames" Me.chklstCFAccumulateAttributeNames.ScrollAlwaysVisible = True Me.chklstCFAccumulateAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstCFAccumulateAttributeNames.TabIndex = 108 ' 'lblCFRestrictionAttributeNames ' Me.lblCFRestrictionAttributeNames.Location = New System.Drawing.Point(20, 301) Me.lblCFRestrictionAttributeNames.Name = "lblCFRestrictionAttributeNames" Me.lblCFRestrictionAttributeNames.Size = New System.Drawing.Size(72, 16) Me.lblCFRestrictionAttributeNames.TabIndex = 110 Me.lblCFRestrictionAttributeNames.Text = "Restrictions" ' 'chklstCFRestrictionAttributeNames ' Me.chklstCFRestrictionAttributeNames.CheckOnClick = True Me.chklstCFRestrictionAttributeNames.Location = New System.Drawing.Point(20, 317) Me.chklstCFRestrictionAttributeNames.Name = "chklstCFRestrictionAttributeNames" Me.chklstCFRestrictionAttributeNames.ScrollAlwaysVisible = True Me.chklstCFRestrictionAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstCFRestrictionAttributeNames.TabIndex = 107 ' 'cboCFImpedance ' Me.cboCFImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboCFImpedance.ItemHeight = 13 Me.cboCFImpedance.Location = New System.Drawing.Point(151, 23) Me.cboCFImpedance.Name = "cboCFImpedance" Me.cboCFImpedance.Size = New System.Drawing.Size(200, 21) Me.cboCFImpedance.TabIndex = 103 ' 'lblCFImpedance ' Me.lblCFImpedance.Location = New System.Drawing.Point(20, 28) Me.lblCFImpedance.Name = "lblCFImpedance" Me.lblCFImpedance.Size = New System.Drawing.Size(64, 16) Me.lblCFImpedance.TabIndex = 109 Me.lblCFImpedance.Text = "Impedance" ' 'chkCFUseHierarchy ' Me.chkCFUseHierarchy.Location = New System.Drawing.Point(20, 237) Me.chkCFUseHierarchy.Name = "chkCFUseHierarchy" Me.chkCFUseHierarchy.Size = New System.Drawing.Size(96, 26) Me.chkCFUseHierarchy.TabIndex = 106 Me.chkCFUseHierarchy.Text = "Use Hierarchy" ' 'cboCFOutputLines ' Me.cboCFOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboCFOutputLines.ItemHeight = 13 Me.cboCFOutputLines.Items.AddRange(New Object() {"No Lines", "Straight Lines", "True Shape", "True Shape With Measures"}) Me.cboCFOutputLines.Location = New System.Drawing.Point(151, 205) Me.cboCFOutputLines.Name = "cboCFOutputLines" Me.cboCFOutputLines.Size = New System.Drawing.Size(200, 21) Me.cboCFOutputLines.TabIndex = 101 ' 'lblCFOutputLines ' Me.lblCFOutputLines.Location = New System.Drawing.Point(20, 210) Me.lblCFOutputLines.Name = "lblCFOutputLines" Me.lblCFOutputLines.Size = New System.Drawing.Size(114, 16) Me.lblCFOutputLines.TabIndex = 102 Me.lblCFOutputLines.Text = "Shape" ' 'cboCFTravelDirection ' Me.cboCFTravelDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboCFTravelDirection.ItemHeight = 13 Me.cboCFTravelDirection.Items.AddRange(New Object() {"From Facility", "To Facility"}) Me.cboCFTravelDirection.Location = New System.Drawing.Point(151, 151) Me.cboCFTravelDirection.Name = "cboCFTravelDirection" Me.cboCFTravelDirection.Size = New System.Drawing.Size(200, 21) Me.cboCFTravelDirection.TabIndex = 99 ' 'lblCFTravelDirection ' Me.lblCFTravelDirection.Location = New System.Drawing.Point(20, 156) Me.lblCFTravelDirection.Name = "lblCFTravelDirection" Me.lblCFTravelDirection.Size = New System.Drawing.Size(114, 16) Me.lblCFTravelDirection.TabIndex = 100 Me.lblCFTravelDirection.Text = "Travel Direction" ' 'txtCFDefaultTargetFacilityCount ' Me.txtCFDefaultTargetFacilityCount.Location = New System.Drawing.Point(151, 125) Me.txtCFDefaultTargetFacilityCount.Name = "txtCFDefaultTargetFacilityCount" Me.txtCFDefaultTargetFacilityCount.Size = New System.Drawing.Size(200, 20) Me.txtCFDefaultTargetFacilityCount.TabIndex = 98 ' 'lblCFDefaultTargetFacilityCount ' Me.lblCFDefaultTargetFacilityCount.Location = New System.Drawing.Point(20, 129) Me.lblCFDefaultTargetFacilityCount.Name = "lblCFDefaultTargetFacilityCount" Me.lblCFDefaultTargetFacilityCount.Size = New System.Drawing.Size(114, 16) Me.lblCFDefaultTargetFacilityCount.TabIndex = 97 Me.lblCFDefaultTargetFacilityCount.Text = "Number of Facilities" ' 'txtCFDefaultCutoff ' Me.txtCFDefaultCutoff.Location = New System.Drawing.Point(151, 99) Me.txtCFDefaultCutoff.Name = "txtCFDefaultCutoff" Me.txtCFDefaultCutoff.Size = New System.Drawing.Size(200, 20) Me.txtCFDefaultCutoff.TabIndex = 96 ' 'lblCFDefaultCutoff ' Me.lblCFDefaultCutoff.Location = New System.Drawing.Point(20, 103) Me.lblCFDefaultCutoff.Name = "lblCFDefaultCutoff" Me.lblCFDefaultCutoff.Size = New System.Drawing.Size(114, 16) Me.lblCFDefaultCutoff.TabIndex = 95 Me.lblCFDefaultCutoff.Text = "Default Cutoff" ' 'tabODCostMatrix ' Me.tabODCostMatrix.Controls.Add(Me.chkODUseTime) Me.tabODCostMatrix.Controls.Add(Me.txtODUseTime) Me.tabODCostMatrix.Controls.Add(Me.chkODIgnoreInvalidLocations) Me.tabODCostMatrix.Controls.Add(Me.cboODRestrictUTurns) Me.tabODCostMatrix.Controls.Add(Me.lblODRestrictUTurns) Me.tabODCostMatrix.Controls.Add(Me.lblODAccumulateAttributeNames) Me.tabODCostMatrix.Controls.Add(Me.chklstODAccumulateAttributeNames) Me.tabODCostMatrix.Controls.Add(Me.lblODRestrictionAttributeNames) Me.tabODCostMatrix.Controls.Add(Me.chklstODRestrictionAttributeNames) Me.tabODCostMatrix.Controls.Add(Me.cboODImpedance) Me.tabODCostMatrix.Controls.Add(Me.lblODImpedance) Me.tabODCostMatrix.Controls.Add(Me.chkODUseHierarchy) Me.tabODCostMatrix.Controls.Add(Me.cboODOutputLines) Me.tabODCostMatrix.Controls.Add(Me.lblODOutputLines) Me.tabODCostMatrix.Controls.Add(Me.txtODDefaultTargetDestinationCount) Me.tabODCostMatrix.Controls.Add(Me.lblODDefaultTargetDestinationCount) Me.tabODCostMatrix.Controls.Add(Me.txtODDefaultCutoff) Me.tabODCostMatrix.Controls.Add(Me.lblODDefaultCutoff) Me.tabODCostMatrix.Location = New System.Drawing.Point(4, 22) Me.tabODCostMatrix.Name = "tabODCostMatrix" Me.tabODCostMatrix.Size = New System.Drawing.Size(712, 473) Me.tabODCostMatrix.TabIndex = 4 Me.tabODCostMatrix.Text = "Origin-Destination Cost Matrix" Me.tabODCostMatrix.UseVisualStyleBackColor = True ' 'chkODUseTime ' Me.chkODUseTime.Location = New System.Drawing.Point(20, 50) Me.chkODUseTime.Name = "chkODUseTime" Me.chkODUseTime.Size = New System.Drawing.Size(104, 16) Me.chkODUseTime.TabIndex = 133 Me.chkODUseTime.Text = "Use Time" ' 'txtODUseTime ' Me.txtODUseTime.Location = New System.Drawing.Point(151, 46) Me.txtODUseTime.Name = "txtODUseTime" Me.txtODUseTime.Size = New System.Drawing.Size(200, 20) Me.txtODUseTime.TabIndex = 134 ' 'chkODIgnoreInvalidLocations ' Me.chkODIgnoreInvalidLocations.Location = New System.Drawing.Point(20, 216) Me.chkODIgnoreInvalidLocations.Name = "chkODIgnoreInvalidLocations" Me.chkODIgnoreInvalidLocations.Size = New System.Drawing.Size(144, 29) Me.chkODIgnoreInvalidLocations.TabIndex = 123 Me.chkODIgnoreInvalidLocations.Text = "Ignore Invalid Locations" ' 'cboODRestrictUTurns ' Me.cboODRestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboODRestrictUTurns.ItemHeight = 13 Me.cboODRestrictUTurns.Items.AddRange(New Object() {"No U-Turns", "Allow U-Turns", "Only At Dead Ends"}) Me.cboODRestrictUTurns.Location = New System.Drawing.Point(151, 125) Me.cboODRestrictUTurns.Name = "cboODRestrictUTurns" Me.cboODRestrictUTurns.Size = New System.Drawing.Size(200, 21) Me.cboODRestrictUTurns.TabIndex = 122 ' 'lblODRestrictUTurns ' Me.lblODRestrictUTurns.Location = New System.Drawing.Point(20, 130) Me.lblODRestrictUTurns.Name = "lblODRestrictUTurns" Me.lblODRestrictUTurns.Size = New System.Drawing.Size(88, 16) Me.lblODRestrictUTurns.TabIndex = 130 Me.lblODRestrictUTurns.Text = "UTurn Policy" ' 'lblODAccumulateAttributeNames ' Me.lblODAccumulateAttributeNames.Location = New System.Drawing.Point(236, 248) Me.lblODAccumulateAttributeNames.Name = "lblODAccumulateAttributeNames" Me.lblODAccumulateAttributeNames.Size = New System.Drawing.Size(120, 16) Me.lblODAccumulateAttributeNames.TabIndex = 129 Me.lblODAccumulateAttributeNames.Text = "Accumulate Attributes" ' 'chklstODAccumulateAttributeNames ' Me.chklstODAccumulateAttributeNames.CheckOnClick = True Me.chklstODAccumulateAttributeNames.Location = New System.Drawing.Point(236, 264) Me.chklstODAccumulateAttributeNames.Name = "chklstODAccumulateAttributeNames" Me.chklstODAccumulateAttributeNames.ScrollAlwaysVisible = True Me.chklstODAccumulateAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstODAccumulateAttributeNames.TabIndex = 126 ' 'lblODRestrictionAttributeNames ' Me.lblODRestrictionAttributeNames.Location = New System.Drawing.Point(20, 248) Me.lblODRestrictionAttributeNames.Name = "lblODRestrictionAttributeNames" Me.lblODRestrictionAttributeNames.Size = New System.Drawing.Size(72, 16) Me.lblODRestrictionAttributeNames.TabIndex = 128 Me.lblODRestrictionAttributeNames.Text = "Restrictions" ' 'chklstODRestrictionAttributeNames ' Me.chklstODRestrictionAttributeNames.CheckOnClick = True Me.chklstODRestrictionAttributeNames.Location = New System.Drawing.Point(20, 264) Me.chklstODRestrictionAttributeNames.Name = "chklstODRestrictionAttributeNames" Me.chklstODRestrictionAttributeNames.ScrollAlwaysVisible = True Me.chklstODRestrictionAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstODRestrictionAttributeNames.TabIndex = 125 ' 'cboODImpedance ' Me.cboODImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboODImpedance.ItemHeight = 13 Me.cboODImpedance.Location = New System.Drawing.Point(151, 23) Me.cboODImpedance.Name = "cboODImpedance" Me.cboODImpedance.Size = New System.Drawing.Size(200, 21) Me.cboODImpedance.TabIndex = 121 ' 'lblODImpedance ' Me.lblODImpedance.Location = New System.Drawing.Point(20, 28) Me.lblODImpedance.Name = "lblODImpedance" Me.lblODImpedance.Size = New System.Drawing.Size(64, 16) Me.lblODImpedance.TabIndex = 127 Me.lblODImpedance.Text = "Impedance" ' 'chkODUseHierarchy ' Me.chkODUseHierarchy.Location = New System.Drawing.Point(20, 184) Me.chkODUseHierarchy.Name = "chkODUseHierarchy" Me.chkODUseHierarchy.Size = New System.Drawing.Size(96, 26) Me.chkODUseHierarchy.TabIndex = 124 Me.chkODUseHierarchy.Text = "Use Hierarchy" ' 'cboODOutputLines ' Me.cboODOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboODOutputLines.ItemHeight = 13 Me.cboODOutputLines.Items.AddRange(New Object() {"No Lines", "Straight Lines"}) Me.cboODOutputLines.Location = New System.Drawing.Point(151, 152) Me.cboODOutputLines.Name = "cboODOutputLines" Me.cboODOutputLines.Size = New System.Drawing.Size(200, 21) Me.cboODOutputLines.TabIndex = 119 ' 'lblODOutputLines ' Me.lblODOutputLines.Location = New System.Drawing.Point(20, 157) Me.lblODOutputLines.Name = "lblODOutputLines" Me.lblODOutputLines.Size = New System.Drawing.Size(114, 16) Me.lblODOutputLines.TabIndex = 120 Me.lblODOutputLines.Text = "Shape" ' 'txtODDefaultTargetDestinationCount ' Me.txtODDefaultTargetDestinationCount.Location = New System.Drawing.Point(151, 96) Me.txtODDefaultTargetDestinationCount.Name = "txtODDefaultTargetDestinationCount" Me.txtODDefaultTargetDestinationCount.Size = New System.Drawing.Size(200, 20) Me.txtODDefaultTargetDestinationCount.TabIndex = 116 ' 'lblODDefaultTargetDestinationCount ' Me.lblODDefaultTargetDestinationCount.Location = New System.Drawing.Point(20, 100) Me.lblODDefaultTargetDestinationCount.Name = "lblODDefaultTargetDestinationCount" Me.lblODDefaultTargetDestinationCount.Size = New System.Drawing.Size(125, 16) Me.lblODDefaultTargetDestinationCount.TabIndex = 115 Me.lblODDefaultTargetDestinationCount.Text = "Number of Destinations" ' 'txtODDefaultCutoff ' Me.txtODDefaultCutoff.Location = New System.Drawing.Point(151, 70) Me.txtODDefaultCutoff.Name = "txtODDefaultCutoff" Me.txtODDefaultCutoff.Size = New System.Drawing.Size(200, 20) Me.txtODDefaultCutoff.TabIndex = 114 ' 'lblODDefaultCutoff ' Me.lblODDefaultCutoff.Location = New System.Drawing.Point(20, 74) Me.lblODDefaultCutoff.Name = "lblODDefaultCutoff" Me.lblODDefaultCutoff.Size = New System.Drawing.Size(114, 16) Me.lblODDefaultCutoff.TabIndex = 113 Me.lblODDefaultCutoff.Text = "Default Cutoff" ' 'tabServiceArea ' Me.tabServiceArea.Controls.Add(Me.chkSAUseTime) Me.tabServiceArea.Controls.Add(Me.txtSAUseTime) Me.tabServiceArea.Controls.Add(Me.cboSATrimPolygonDistanceUnits) Me.tabServiceArea.Controls.Add(Me.txtSATrimPolygonDistance) Me.tabServiceArea.Controls.Add(Me.chkSATrimOuterPolygon) Me.tabServiceArea.Controls.Add(Me.chkSAIncludeSourceInformationOnLines) Me.tabServiceArea.Controls.Add(Me.cboSATravelDirection) Me.tabServiceArea.Controls.Add(Me.lblSATravelDirection) Me.tabServiceArea.Controls.Add(Me.chkSASplitPolygonsAtBreaks) Me.tabServiceArea.Controls.Add(Me.chkSAOverlapPolygons) Me.tabServiceArea.Controls.Add(Me.chkSASplitLinesAtBreaks) Me.tabServiceArea.Controls.Add(Me.chkSAOverlapLines) Me.tabServiceArea.Controls.Add(Me.chkSAIgnoreInvalidLocations) Me.tabServiceArea.Controls.Add(Me.cboSARestrictUTurns) Me.tabServiceArea.Controls.Add(Me.lblSARestrictUTurns) Me.tabServiceArea.Controls.Add(Me.lblSAAccumulateAttributeNames) Me.tabServiceArea.Controls.Add(Me.chklstSAAccumulateAttributeNames) Me.tabServiceArea.Controls.Add(Me.lblSARestrictionAttributeNames) Me.tabServiceArea.Controls.Add(Me.chklstSARestrictionAttributeNames) Me.tabServiceArea.Controls.Add(Me.lblSAOutputPolygons) Me.tabServiceArea.Controls.Add(Me.cboSAOutputPolygons) Me.tabServiceArea.Controls.Add(Me.lblSAOutputLines) Me.tabServiceArea.Controls.Add(Me.cboSAOutputLines) Me.tabServiceArea.Controls.Add(Me.chkSAMergeSimilarPolygonRanges) Me.tabServiceArea.Controls.Add(Me.txtSADefaultBreaks) Me.tabServiceArea.Controls.Add(Me.lblSADefaultBreaks) Me.tabServiceArea.Controls.Add(Me.cboSAImpedance) Me.tabServiceArea.Controls.Add(Me.lblSAImpedance) Me.tabServiceArea.Location = New System.Drawing.Point(4, 22) Me.tabServiceArea.Name = "tabServiceArea" Me.tabServiceArea.Size = New System.Drawing.Size(712, 473) Me.tabServiceArea.TabIndex = 2 Me.tabServiceArea.Text = "Service Area" Me.tabServiceArea.UseVisualStyleBackColor = True ' 'chkSAUseTime ' Me.chkSAUseTime.Location = New System.Drawing.Point(20, 51) Me.chkSAUseTime.Name = "chkSAUseTime" Me.chkSAUseTime.Size = New System.Drawing.Size(104, 16) Me.chkSAUseTime.TabIndex = 135 Me.chkSAUseTime.Text = "Use Time" ' 'txtSAUseTime ' Me.txtSAUseTime.Location = New System.Drawing.Point(151, 47) Me.txtSAUseTime.Name = "txtSAUseTime" Me.txtSAUseTime.Size = New System.Drawing.Size(200, 20) Me.txtSAUseTime.TabIndex = 136 ' 'cboSATrimPolygonDistanceUnits ' Me.cboSATrimPolygonDistanceUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboSATrimPolygonDistanceUnits.ItemHeight = 13 Me.cboSATrimPolygonDistanceUnits.Items.AddRange(New Object() {"Unknown Units", "Inches", "Points", "Feet", "Yards", "Miles", "Nautical Miles", "Millimeters", "Centimeters", "Meters", "Kilometers", "DecimalDegrees", "Decimeters"}) Me.cboSATrimPolygonDistanceUnits.Location = New System.Drawing.Point(241, 173) Me.cboSATrimPolygonDistanceUnits.Name = "cboSATrimPolygonDistanceUnits" Me.cboSATrimPolygonDistanceUnits.Size = New System.Drawing.Size(110, 21) Me.cboSATrimPolygonDistanceUnits.TabIndex = 120 ' 'txtSATrimPolygonDistance ' Me.txtSATrimPolygonDistance.Location = New System.Drawing.Point(169, 174) Me.txtSATrimPolygonDistance.Name = "txtSATrimPolygonDistance" Me.txtSATrimPolygonDistance.Size = New System.Drawing.Size(66, 20) Me.txtSATrimPolygonDistance.TabIndex = 119 ' 'chkSATrimOuterPolygon ' Me.chkSATrimOuterPolygon.Location = New System.Drawing.Point(41, 174) Me.chkSATrimOuterPolygon.Name = "chkSATrimOuterPolygon" Me.chkSATrimOuterPolygon.Size = New System.Drawing.Size(122, 22) Me.chkSATrimOuterPolygon.TabIndex = 118 Me.chkSATrimOuterPolygon.Text = "Trim Outer Polygon" ' 'chkSAIncludeSourceInformationOnLines ' Me.chkSAIncludeSourceInformationOnLines.Location = New System.Drawing.Point(329, 229) Me.chkSAIncludeSourceInformationOnLines.Name = "chkSAIncludeSourceInformationOnLines" Me.chkSAIncludeSourceInformationOnLines.Size = New System.Drawing.Size(215, 22) Me.chkSAIncludeSourceInformationOnLines.TabIndex = 117 Me.chkSAIncludeSourceInformationOnLines.Text = "Include Source Information On Lines" ' 'cboSATravelDirection ' Me.cboSATravelDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboSATravelDirection.ItemHeight = 13 Me.cboSATravelDirection.Items.AddRange(New Object() {"From Facility", "To Facility"}) Me.cboSATravelDirection.Location = New System.Drawing.Point(151, 95) Me.cboSATravelDirection.Name = "cboSATravelDirection" Me.cboSATravelDirection.Size = New System.Drawing.Size(200, 21) Me.cboSATravelDirection.TabIndex = 115 ' 'lblSATravelDirection ' Me.lblSATravelDirection.Location = New System.Drawing.Point(20, 100) Me.lblSATravelDirection.Name = "lblSATravelDirection" Me.lblSATravelDirection.Size = New System.Drawing.Size(114, 16) Me.lblSATravelDirection.TabIndex = 116 Me.lblSATravelDirection.Text = "Travel Direction" ' 'chkSASplitPolygonsAtBreaks ' Me.chkSASplitPolygonsAtBreaks.Location = New System.Drawing.Point(169, 150) Me.chkSASplitPolygonsAtBreaks.Name = "chkSASplitPolygonsAtBreaks" Me.chkSASplitPolygonsAtBreaks.Size = New System.Drawing.Size(154, 22) Me.chkSASplitPolygonsAtBreaks.TabIndex = 114 Me.chkSASplitPolygonsAtBreaks.Text = "Split Polygons At Breaks" ' 'chkSAOverlapPolygons ' Me.chkSAOverlapPolygons.Location = New System.Drawing.Point(41, 149) Me.chkSAOverlapPolygons.Name = "chkSAOverlapPolygons" Me.chkSAOverlapPolygons.Size = New System.Drawing.Size(122, 22) Me.chkSAOverlapPolygons.TabIndex = 113 Me.chkSAOverlapPolygons.Text = "Overlap Polygons" ' 'chkSASplitLinesAtBreaks ' Me.chkSASplitLinesAtBreaks.Location = New System.Drawing.Point(169, 229) Me.chkSASplitLinesAtBreaks.Name = "chkSASplitLinesAtBreaks" Me.chkSASplitLinesAtBreaks.Size = New System.Drawing.Size(154, 22) Me.chkSASplitLinesAtBreaks.TabIndex = 112 Me.chkSASplitLinesAtBreaks.Text = "Split Lines At Breaks" ' 'chkSAOverlapLines ' Me.chkSAOverlapLines.Location = New System.Drawing.Point(41, 229) Me.chkSAOverlapLines.Name = "chkSAOverlapLines" Me.chkSAOverlapLines.Size = New System.Drawing.Size(122, 22) Me.chkSAOverlapLines.TabIndex = 111 Me.chkSAOverlapLines.Text = "Overlap Lines" ' 'chkSAIgnoreInvalidLocations ' Me.chkSAIgnoreInvalidLocations.Location = New System.Drawing.Point(23, 283) Me.chkSAIgnoreInvalidLocations.Name = "chkSAIgnoreInvalidLocations" Me.chkSAIgnoreInvalidLocations.Size = New System.Drawing.Size(144, 29) Me.chkSAIgnoreInvalidLocations.TabIndex = 105 Me.chkSAIgnoreInvalidLocations.Text = "Ignore Invalid Locations" ' 'cboSARestrictUTurns ' Me.cboSARestrictUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboSARestrictUTurns.ItemHeight = 13 Me.cboSARestrictUTurns.Items.AddRange(New Object() {"No U-Turns", "Allow U-Turns", "Only At Dead Ends"}) Me.cboSARestrictUTurns.Location = New System.Drawing.Point(151, 259) Me.cboSARestrictUTurns.Name = "cboSARestrictUTurns" Me.cboSARestrictUTurns.Size = New System.Drawing.Size(200, 21) Me.cboSARestrictUTurns.TabIndex = 104 ' 'lblSARestrictUTurns ' Me.lblSARestrictUTurns.Location = New System.Drawing.Point(20, 264) Me.lblSARestrictUTurns.Name = "lblSARestrictUTurns" Me.lblSARestrictUTurns.Size = New System.Drawing.Size(88, 16) Me.lblSARestrictUTurns.TabIndex = 110 Me.lblSARestrictUTurns.Text = "UTurn Policy" ' 'lblSAAccumulateAttributeNames ' Me.lblSAAccumulateAttributeNames.Location = New System.Drawing.Point(238, 314) Me.lblSAAccumulateAttributeNames.Name = "lblSAAccumulateAttributeNames" Me.lblSAAccumulateAttributeNames.Size = New System.Drawing.Size(120, 16) Me.lblSAAccumulateAttributeNames.TabIndex = 109 Me.lblSAAccumulateAttributeNames.Text = "Accumulate Attributes" ' 'chklstSAAccumulateAttributeNames ' Me.chklstSAAccumulateAttributeNames.CheckOnClick = True Me.chklstSAAccumulateAttributeNames.Location = New System.Drawing.Point(238, 330) Me.chklstSAAccumulateAttributeNames.Name = "chklstSAAccumulateAttributeNames" Me.chklstSAAccumulateAttributeNames.ScrollAlwaysVisible = True Me.chklstSAAccumulateAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstSAAccumulateAttributeNames.TabIndex = 107 ' 'lblSARestrictionAttributeNames ' Me.lblSARestrictionAttributeNames.Location = New System.Drawing.Point(22, 314) Me.lblSARestrictionAttributeNames.Name = "lblSARestrictionAttributeNames" Me.lblSARestrictionAttributeNames.Size = New System.Drawing.Size(72, 16) Me.lblSARestrictionAttributeNames.TabIndex = 108 Me.lblSARestrictionAttributeNames.Text = "Restrictions" ' 'chklstSARestrictionAttributeNames ' Me.chklstSARestrictionAttributeNames.CheckOnClick = True Me.chklstSARestrictionAttributeNames.Location = New System.Drawing.Point(22, 330) Me.chklstSARestrictionAttributeNames.Name = "chklstSARestrictionAttributeNames" Me.chklstSARestrictionAttributeNames.ScrollAlwaysVisible = True Me.chklstSARestrictionAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstSARestrictionAttributeNames.TabIndex = 106 ' 'lblSAOutputPolygons ' Me.lblSAOutputPolygons.Location = New System.Drawing.Point(20, 127) Me.lblSAOutputPolygons.Name = "lblSAOutputPolygons" Me.lblSAOutputPolygons.Size = New System.Drawing.Size(122, 16) Me.lblSAOutputPolygons.TabIndex = 103 Me.lblSAOutputPolygons.Text = "Output Polygons" ' 'cboSAOutputPolygons ' Me.cboSAOutputPolygons.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboSAOutputPolygons.ItemHeight = 13 Me.cboSAOutputPolygons.Items.AddRange(New Object() {"No Polygons", "Simplified Polygons", "Detailed Polygons"}) Me.cboSAOutputPolygons.Location = New System.Drawing.Point(151, 122) Me.cboSAOutputPolygons.Name = "cboSAOutputPolygons" Me.cboSAOutputPolygons.Size = New System.Drawing.Size(200, 21) Me.cboSAOutputPolygons.TabIndex = 102 ' 'lblSAOutputLines ' Me.lblSAOutputLines.Location = New System.Drawing.Point(20, 207) Me.lblSAOutputLines.Name = "lblSAOutputLines" Me.lblSAOutputLines.Size = New System.Drawing.Size(122, 16) Me.lblSAOutputLines.TabIndex = 101 Me.lblSAOutputLines.Text = "Output Lines" ' 'cboSAOutputLines ' Me.cboSAOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboSAOutputLines.ItemHeight = 13 Me.cboSAOutputLines.Items.AddRange(New Object() {"No Lines", "True Shape", "True Shape With Measures"}) Me.cboSAOutputLines.Location = New System.Drawing.Point(151, 202) Me.cboSAOutputLines.Name = "cboSAOutputLines" Me.cboSAOutputLines.Size = New System.Drawing.Size(200, 21) Me.cboSAOutputLines.TabIndex = 100 ' 'chkSAMergeSimilarPolygonRanges ' Me.chkSAMergeSimilarPolygonRanges.Location = New System.Drawing.Point(329, 149) Me.chkSAMergeSimilarPolygonRanges.Name = "chkSAMergeSimilarPolygonRanges" Me.chkSAMergeSimilarPolygonRanges.Size = New System.Drawing.Size(192, 22) Me.chkSAMergeSimilarPolygonRanges.TabIndex = 99 Me.chkSAMergeSimilarPolygonRanges.Text = "Merge Similar Polygon Ranges" ' 'txtSADefaultBreaks ' Me.txtSADefaultBreaks.Location = New System.Drawing.Point(151, 69) Me.txtSADefaultBreaks.Name = "txtSADefaultBreaks" Me.txtSADefaultBreaks.Size = New System.Drawing.Size(200, 20) Me.txtSADefaultBreaks.TabIndex = 98 ' 'lblSADefaultBreaks ' Me.lblSADefaultBreaks.Location = New System.Drawing.Point(20, 73) Me.lblSADefaultBreaks.Name = "lblSADefaultBreaks" Me.lblSADefaultBreaks.Size = New System.Drawing.Size(114, 16) Me.lblSADefaultBreaks.TabIndex = 97 Me.lblSADefaultBreaks.Text = "Default Breaks" ' 'cboSAImpedance ' Me.cboSAImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboSAImpedance.ItemHeight = 13 Me.cboSAImpedance.Location = New System.Drawing.Point(151, 23) Me.cboSAImpedance.Name = "cboSAImpedance" Me.cboSAImpedance.Size = New System.Drawing.Size(200, 21) Me.cboSAImpedance.TabIndex = 86 ' 'lblSAImpedance ' Me.lblSAImpedance.Location = New System.Drawing.Point(20, 28) Me.lblSAImpedance.Name = "lblSAImpedance" Me.lblSAImpedance.Size = New System.Drawing.Size(64, 16) Me.lblSAImpedance.TabIndex = 87 Me.lblSAImpedance.Text = "Impedance" ' 'tabVRP ' Me.tabVRP.Controls.Add(Me.gbRestrictions) Me.tabVRP.Controls.Add(Me.gbSettings) Me.tabVRP.Location = New System.Drawing.Point(4, 22) Me.tabVRP.Name = "tabVRP" Me.tabVRP.Size = New System.Drawing.Size(712, 473) Me.tabVRP.TabIndex = 5 Me.tabVRP.Text = "VRP" Me.tabVRP.UseVisualStyleBackColor = True ' 'gbRestrictions ' Me.gbRestrictions.Controls.Add(Me.chklstVRPRestrictionAttributeNames) Me.gbRestrictions.Location = New System.Drawing.Point(349, 3) Me.gbRestrictions.Name = "gbRestrictions" Me.gbRestrictions.Size = New System.Drawing.Size(206, 90) Me.gbRestrictions.TabIndex = 1 Me.gbRestrictions.TabStop = False Me.gbRestrictions.Text = "Restrictions" ' 'chklstVRPRestrictionAttributeNames ' Me.chklstVRPRestrictionAttributeNames.CheckOnClick = True Me.chklstVRPRestrictionAttributeNames.Location = New System.Drawing.Point(6, 14) Me.chklstVRPRestrictionAttributeNames.Name = "chklstVRPRestrictionAttributeNames" Me.chklstVRPRestrictionAttributeNames.ScrollAlwaysVisible = True Me.chklstVRPRestrictionAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstVRPRestrictionAttributeNames.TabIndex = 109 ' 'gbSettings ' Me.gbSettings.Controls.Add(Me.cboVRPDistanceFieldUnits) Me.gbSettings.Controls.Add(Me.cboVRPTransitTime) Me.gbSettings.Controls.Add(Me.cboVRPTimeWindow) Me.gbSettings.Controls.Add(Me.label10) Me.gbSettings.Controls.Add(Me.label9) Me.gbSettings.Controls.Add(Me.chkVRPUseHierarchy) Me.gbSettings.Controls.Add(Me.cboVRPOutputShapeType) Me.gbSettings.Controls.Add(Me.cboVRPAllowUTurns) Me.gbSettings.Controls.Add(Me.cboVRPTimeFieldUnits) Me.gbSettings.Controls.Add(Me.txtVRPCapacityCount) Me.gbSettings.Controls.Add(Me.txtVRPDefaultDate) Me.gbSettings.Controls.Add(Me.cboVRPDistanceAttribute) Me.gbSettings.Controls.Add(Me.cboVRPTimeAttribute) Me.gbSettings.Controls.Add(Me.label7) Me.gbSettings.Controls.Add(Me.label6) Me.gbSettings.Controls.Add(Me.label5) Me.gbSettings.Controls.Add(Me.label4) Me.gbSettings.Controls.Add(Me.label3) Me.gbSettings.Controls.Add(Me.label2) Me.gbSettings.Controls.Add(Me.label1) Me.gbSettings.Controls.Add(Me.lblTimeAttribute) Me.gbSettings.Location = New System.Drawing.Point(3, 3) Me.gbSettings.Name = "gbSettings" Me.gbSettings.Size = New System.Drawing.Size(340, 321) Me.gbSettings.TabIndex = 0 Me.gbSettings.TabStop = False Me.gbSettings.Text = "Settings" ' 'cboVRPDistanceFieldUnits ' Me.cboVRPDistanceFieldUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPDistanceFieldUnits.ItemHeight = 13 Me.cboVRPDistanceFieldUnits.Items.AddRange(New Object() {"Inches", "Points", "Feet", "Yards", "Miles", "Nautical Miles", "Millimeters", "Centimeters", "Meters", "Kilometers", "DecimalDegrees", "Decimeters"}) Me.cboVRPDistanceFieldUnits.Location = New System.Drawing.Point(189, 151) Me.cboVRPDistanceFieldUnits.Name = "cboVRPDistanceFieldUnits" Me.cboVRPDistanceFieldUnits.Size = New System.Drawing.Size(136, 21) Me.cboVRPDistanceFieldUnits.TabIndex = 123 ' 'cboVRPTransitTime ' Me.cboVRPTransitTime.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPTransitTime.FormattingEnabled = True Me.cboVRPTransitTime.Items.AddRange(New Object() {"High", "Medium", "Low"}) Me.cboVRPTransitTime.Location = New System.Drawing.Point(189, 265) Me.cboVRPTransitTime.Name = "cboVRPTransitTime" Me.cboVRPTransitTime.Size = New System.Drawing.Size(136, 21) Me.cboVRPTransitTime.TabIndex = 20 ' 'cboVRPTimeWindow ' Me.cboVRPTimeWindow.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPTimeWindow.FormattingEnabled = True Me.cboVRPTimeWindow.Items.AddRange(New Object() {"High", "Medium", "Low"}) Me.cboVRPTimeWindow.Location = New System.Drawing.Point(189, 238) Me.cboVRPTimeWindow.Name = "cboVRPTimeWindow" Me.cboVRPTimeWindow.Size = New System.Drawing.Size(136, 21) Me.cboVRPTimeWindow.TabIndex = 19 ' 'label10 ' Me.label10.AutoSize = True Me.label10.Location = New System.Drawing.Point(8, 268) Me.label10.Name = "label10" Me.label10.Size = New System.Drawing.Size(161, 13) Me.label10.TabIndex = 18 Me.label10.Text = "Excess Transit Time Importance:" ' 'label9 ' Me.label9.AutoSize = True Me.label9.Location = New System.Drawing.Point(9, 241) Me.label9.Name = "label9" Me.label9.Size = New System.Drawing.Size(174, 13) Me.label9.TabIndex = 17 Me.label9.Text = "Time Window Violation Importance:" ' 'chkVRPUseHierarchy ' Me.chkVRPUseHierarchy.AutoSize = True Me.chkVRPUseHierarchy.Location = New System.Drawing.Point(12, 294) Me.chkVRPUseHierarchy.Name = "chkVRPUseHierarchy" Me.chkVRPUseHierarchy.Size = New System.Drawing.Size(93, 17) Me.chkVRPUseHierarchy.TabIndex = 16 Me.chkVRPUseHierarchy.Text = "Use Hierarchy" Me.chkVRPUseHierarchy.UseVisualStyleBackColor = True ' 'cboVRPOutputShapeType ' Me.cboVRPOutputShapeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPOutputShapeType.FormattingEnabled = True Me.cboVRPOutputShapeType.Items.AddRange(New Object() {"None", "Straight Line", "True Shape", "True Shape with Measure"}) Me.cboVRPOutputShapeType.Location = New System.Drawing.Point(189, 208) Me.cboVRPOutputShapeType.Name = "cboVRPOutputShapeType" Me.cboVRPOutputShapeType.Size = New System.Drawing.Size(136, 21) Me.cboVRPOutputShapeType.TabIndex = 15 ' 'cboVRPAllowUTurns ' Me.cboVRPAllowUTurns.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPAllowUTurns.FormattingEnabled = True Me.cboVRPAllowUTurns.Items.AddRange(New Object() {"No U-Turns", "Allow U-Turns", "Only At Dead Ends"}) Me.cboVRPAllowUTurns.Location = New System.Drawing.Point(189, 180) Me.cboVRPAllowUTurns.Name = "cboVRPAllowUTurns" Me.cboVRPAllowUTurns.Size = New System.Drawing.Size(136, 21) Me.cboVRPAllowUTurns.TabIndex = 14 ' 'cboVRPTimeFieldUnits ' Me.cboVRPTimeFieldUnits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPTimeFieldUnits.FormattingEnabled = True Me.cboVRPTimeFieldUnits.Items.AddRange(New Object() {"Seconds", "Minutes", "Hours", "Days"}) Me.cboVRPTimeFieldUnits.Location = New System.Drawing.Point(189, 124) Me.cboVRPTimeFieldUnits.Name = "cboVRPTimeFieldUnits" Me.cboVRPTimeFieldUnits.Size = New System.Drawing.Size(136, 21) Me.cboVRPTimeFieldUnits.TabIndex = 12 ' 'txtVRPCapacityCount ' Me.txtVRPCapacityCount.Location = New System.Drawing.Point(189, 97) Me.txtVRPCapacityCount.Name = "txtVRPCapacityCount" Me.txtVRPCapacityCount.Size = New System.Drawing.Size(136, 20) Me.txtVRPCapacityCount.TabIndex = 11 ' 'txtVRPDefaultDate ' Me.txtVRPDefaultDate.Location = New System.Drawing.Point(189, 70) Me.txtVRPDefaultDate.Name = "txtVRPDefaultDate" Me.txtVRPDefaultDate.Size = New System.Drawing.Size(136, 20) Me.txtVRPDefaultDate.TabIndex = 10 ' 'cboVRPDistanceAttribute ' Me.cboVRPDistanceAttribute.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPDistanceAttribute.FormattingEnabled = True Me.cboVRPDistanceAttribute.Items.AddRange(New Object() {"", "Meters (Meters)"}) Me.cboVRPDistanceAttribute.Location = New System.Drawing.Point(189, 42) Me.cboVRPDistanceAttribute.Name = "cboVRPDistanceAttribute" Me.cboVRPDistanceAttribute.Size = New System.Drawing.Size(136, 21) Me.cboVRPDistanceAttribute.TabIndex = 9 ' 'cboVRPTimeAttribute ' Me.cboVRPTimeAttribute.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboVRPTimeAttribute.FormattingEnabled = True Me.cboVRPTimeAttribute.Location = New System.Drawing.Point(189, 14) Me.cboVRPTimeAttribute.Name = "cboVRPTimeAttribute" Me.cboVRPTimeAttribute.Size = New System.Drawing.Size(136, 21) Me.cboVRPTimeAttribute.TabIndex = 8 ' 'label7 ' Me.label7.AutoSize = True Me.label7.Location = New System.Drawing.Point(9, 50) Me.label7.Name = "label7" Me.label7.Size = New System.Drawing.Size(94, 13) Me.label7.TabIndex = 7 Me.label7.Text = "Distance Attribute:" ' 'label6 ' Me.label6.AutoSize = True Me.label6.Location = New System.Drawing.Point(9, 78) Me.label6.Name = "label6" Me.label6.Size = New System.Drawing.Size(70, 13) Me.label6.TabIndex = 6 Me.label6.Text = "Default Date:" ' 'label5 ' Me.label5.AutoSize = True Me.label5.Location = New System.Drawing.Point(9, 105) Me.label5.Name = "label5" Me.label5.Size = New System.Drawing.Size(82, 13) Me.label5.TabIndex = 5 Me.label5.Text = "Capacity Count:" ' 'label4 ' Me.label4.AutoSize = True Me.label4.Location = New System.Drawing.Point(9, 132) Me.label4.Name = "label4" Me.label4.Size = New System.Drawing.Size(85, 13) Me.label4.TabIndex = 4 Me.label4.Text = "Time Field Units:" ' 'label3 ' Me.label3.AutoSize = True Me.label3.Location = New System.Drawing.Point(8, 160) Me.label3.Name = "label3" Me.label3.Size = New System.Drawing.Size(104, 13) Me.label3.TabIndex = 3 Me.label3.Text = "Distance Field Units:" ' 'label2 ' Me.label2.AutoSize = True Me.label2.Location = New System.Drawing.Point(9, 188) Me.label2.Name = "label2" Me.label2.Size = New System.Drawing.Size(74, 13) Me.label2.TabIndex = 2 Me.label2.Text = "U-Turn Policy:" ' 'label1 ' Me.label1.AutoSize = True Me.label1.Location = New System.Drawing.Point(9, 216) Me.label1.Name = "label1" Me.label1.Size = New System.Drawing.Size(103, 13) Me.label1.TabIndex = 1 Me.label1.Text = "Output Shape Type:" ' 'lblTimeAttribute ' Me.lblTimeAttribute.AutoSize = True Me.lblTimeAttribute.Location = New System.Drawing.Point(9, 22) Me.lblTimeAttribute.Name = "lblTimeAttribute" Me.lblTimeAttribute.Size = New System.Drawing.Size(75, 13) Me.lblTimeAttribute.TabIndex = 0 Me.lblTimeAttribute.Text = "Time Attribute:" ' 'tabLocationAllocation ' Me.tabLocationAllocation.Controls.Add(Me.chkLAUseTime) Me.tabLocationAllocation.Controls.Add(Me.txtLAUseTime) Me.tabLocationAllocation.Controls.Add(Me.chkLAIgnoreInvalidLocations) Me.tabLocationAllocation.Controls.Add(Me.grpLASettings) Me.tabLocationAllocation.Controls.Add(Me.chkLAUseHierarchy) Me.tabLocationAllocation.Controls.Add(Me.lblLAAccumulateAttributeNames) Me.tabLocationAllocation.Controls.Add(Me.chklstLAAccumulateAttributeNames) Me.tabLocationAllocation.Controls.Add(Me.lblLARestrictionAttributeNames) Me.tabLocationAllocation.Controls.Add(Me.chklstLARestrictionAttributeNames) Me.tabLocationAllocation.Controls.Add(Me.cboLAOutputLines) Me.tabLocationAllocation.Controls.Add(Me.label11) Me.tabLocationAllocation.Controls.Add(Me.cboLATravelDirection) Me.tabLocationAllocation.Controls.Add(Me.label12) Me.tabLocationAllocation.Controls.Add(Me.lblCostAttribute) Me.tabLocationAllocation.Controls.Add(Me.cboLAImpedance) Me.tabLocationAllocation.Location = New System.Drawing.Point(4, 22) Me.tabLocationAllocation.Name = "tabLocationAllocation" Me.tabLocationAllocation.Padding = New System.Windows.Forms.Padding(3) Me.tabLocationAllocation.Size = New System.Drawing.Size(712, 473) Me.tabLocationAllocation.TabIndex = 6 Me.tabLocationAllocation.Text = "Location-Allocation" Me.tabLocationAllocation.UseVisualStyleBackColor = True ' 'chkLAUseTime ' Me.chkLAUseTime.Location = New System.Drawing.Point(11, 52) Me.chkLAUseTime.Name = "chkLAUseTime" Me.chkLAUseTime.Size = New System.Drawing.Size(104, 16) Me.chkLAUseTime.TabIndex = 135 Me.chkLAUseTime.Text = "Use Time" ' 'txtLAUseTime ' Me.txtLAUseTime.Location = New System.Drawing.Point(142, 48) Me.txtLAUseTime.Name = "txtLAUseTime" Me.txtLAUseTime.Size = New System.Drawing.Size(179, 20) Me.txtLAUseTime.TabIndex = 136 ' 'chkLAIgnoreInvalidLocations ' Me.chkLAIgnoreInvalidLocations.Location = New System.Drawing.Point(13, 149) Me.chkLAIgnoreInvalidLocations.Name = "chkLAIgnoreInvalidLocations" Me.chkLAIgnoreInvalidLocations.Size = New System.Drawing.Size(144, 29) Me.chkLAIgnoreInvalidLocations.TabIndex = 123 Me.chkLAIgnoreInvalidLocations.Text = "Ignore Invalid Locations" ' 'grpLASettings ' Me.grpLASettings.Controls.Add(Me.lblTargetMarketShare) Me.grpLASettings.Controls.Add(Me.txtLATargetMarketShare) Me.grpLASettings.Controls.Add(Me.cboLAImpTransformation) Me.grpLASettings.Controls.Add(Me.lblImpParameter) Me.grpLASettings.Controls.Add(Me.txtLAImpParameter) Me.grpLASettings.Controls.Add(Me.lblImpTransformation) Me.grpLASettings.Controls.Add(Me.lblProblemType) Me.grpLASettings.Controls.Add(Me.cboLAProblemType) Me.grpLASettings.Controls.Add(Me.lblCutOff) Me.grpLASettings.Controls.Add(Me.txtLACutOff) Me.grpLASettings.Controls.Add(Me.lblNumFacilities) Me.grpLASettings.Controls.Add(Me.txtLAFacilitiesToLocate) Me.grpLASettings.Location = New System.Drawing.Point(230, 129) Me.grpLASettings.Name = "grpLASettings" Me.grpLASettings.Size = New System.Drawing.Size(342, 241) Me.grpLASettings.TabIndex = 122 Me.grpLASettings.TabStop = False Me.grpLASettings.Text = "Advanced Settings" ' 'lblTargetMarketShare ' Me.lblTargetMarketShare.AccessibleDescription = "grpLA" Me.lblTargetMarketShare.AutoSize = True Me.lblTargetMarketShare.Location = New System.Drawing.Point(20, 205) Me.lblTargetMarketShare.Name = "lblTargetMarketShare" Me.lblTargetMarketShare.Size = New System.Drawing.Size(122, 13) Me.lblTargetMarketShare.TabIndex = 31 Me.lblTargetMarketShare.Text = "Target Market Share (%)" ' 'txtLATargetMarketShare ' Me.txtLATargetMarketShare.AccessibleDescription = "grpLA" Me.txtLATargetMarketShare.Location = New System.Drawing.Point(199, 201) Me.txtLATargetMarketShare.Name = "txtLATargetMarketShare" Me.txtLATargetMarketShare.Size = New System.Drawing.Size(129, 20) Me.txtLATargetMarketShare.TabIndex = 30 Me.txtLATargetMarketShare.Text = "10.0" ' 'cboLAImpTransformation ' Me.cboLAImpTransformation.AccessibleDescription = "grpLA" Me.cboLAImpTransformation.FormattingEnabled = True Me.cboLAImpTransformation.Items.AddRange(New Object() {"Linear", "Power", "Exponential"}) Me.cboLAImpTransformation.Location = New System.Drawing.Point(202, 135) Me.cboLAImpTransformation.Name = "cboLAImpTransformation" Me.cboLAImpTransformation.Size = New System.Drawing.Size(128, 21) Me.cboLAImpTransformation.TabIndex = 29 Me.cboLAImpTransformation.Text = "Linear" ' 'lblImpParameter ' Me.lblImpParameter.AccessibleDescription = "grpLA" Me.lblImpParameter.AutoSize = True Me.lblImpParameter.Location = New System.Drawing.Point(19, 171) Me.lblImpParameter.Name = "lblImpParameter" Me.lblImpParameter.Size = New System.Drawing.Size(111, 13) Me.lblImpParameter.TabIndex = 28 Me.lblImpParameter.Text = "Impedance Parameter" ' 'txtLAImpParameter ' Me.txtLAImpParameter.AccessibleDescription = "grpLA" Me.txtLAImpParameter.Location = New System.Drawing.Point(200, 166) Me.txtLAImpParameter.Name = "txtLAImpParameter" Me.txtLAImpParameter.Size = New System.Drawing.Size(129, 20) Me.txtLAImpParameter.TabIndex = 27 Me.txtLAImpParameter.Text = "1.0" ' 'lblImpTransformation ' Me.lblImpTransformation.AccessibleDescription = "grpLA" Me.lblImpTransformation.AutoSize = True Me.lblImpTransformation.Location = New System.Drawing.Point(19, 135) Me.lblImpTransformation.Name = "lblImpTransformation" Me.lblImpTransformation.Size = New System.Drawing.Size(133, 13) Me.lblImpTransformation.TabIndex = 26 Me.lblImpTransformation.Text = "Impedance Transformation" ' 'lblProblemType ' Me.lblProblemType.AccessibleDescription = "grpLA" Me.lblProblemType.AutoSize = True Me.lblProblemType.Location = New System.Drawing.Point(19, 30) Me.lblProblemType.Name = "lblProblemType" Me.lblProblemType.Size = New System.Drawing.Size(72, 13) Me.lblProblemType.TabIndex = 23 Me.lblProblemType.Text = "Problem Type" ' 'cboLAProblemType ' Me.cboLAProblemType.AccessibleDescription = "grpLA" Me.cboLAProblemType.FormattingEnabled = True Me.cboLAProblemType.Items.AddRange(New Object() {"Minimize Impedance", "Maximize Coverage", "Minimize Facilities", "Maximize Attendance", "Maximize Market Share", "Target Market Share"}) Me.cboLAProblemType.Location = New System.Drawing.Point(202, 24) Me.cboLAProblemType.Name = "cboLAProblemType" Me.cboLAProblemType.Size = New System.Drawing.Size(128, 21) Me.cboLAProblemType.TabIndex = 22 Me.cboLAProblemType.Text = "Minimize Impedance" ' 'lblCutOff ' Me.lblCutOff.AccessibleDescription = "grpLA" Me.lblCutOff.AutoSize = True Me.lblCutOff.Location = New System.Drawing.Point(20, 98) Me.lblCutOff.Name = "lblCutOff" Me.lblCutOff.Size = New System.Drawing.Size(91, 13) Me.lblCutOff.TabIndex = 21 Me.lblCutOff.Text = "Impedance Cutoff" ' 'txtLACutOff ' Me.txtLACutOff.AccessibleDescription = "grpLA" Me.txtLACutOff.Location = New System.Drawing.Point(202, 98) Me.txtLACutOff.Name = "txtLACutOff" Me.txtLACutOff.Size = New System.Drawing.Size(129, 20) Me.txtLACutOff.TabIndex = 20 Me.txtLACutOff.Text = "<None>" ' 'lblNumFacilities ' Me.lblNumFacilities.AccessibleDescription = "grpLA" Me.lblNumFacilities.AutoSize = True Me.lblNumFacilities.Location = New System.Drawing.Point(20, 63) Me.lblNumFacilities.Name = "lblNumFacilities" Me.lblNumFacilities.Size = New System.Drawing.Size(102, 13) Me.lblNumFacilities.TabIndex = 19 Me.lblNumFacilities.Text = "Facilities To Choose" ' 'txtLAFacilitiesToLocate ' Me.txtLAFacilitiesToLocate.AccessibleDescription = "grpLA" Me.txtLAFacilitiesToLocate.Location = New System.Drawing.Point(202, 63) Me.txtLAFacilitiesToLocate.Name = "txtLAFacilitiesToLocate" Me.txtLAFacilitiesToLocate.Size = New System.Drawing.Size(130, 20) Me.txtLAFacilitiesToLocate.TabIndex = 18 Me.txtLAFacilitiesToLocate.Text = "1" ' 'chkLAUseHierarchy ' Me.chkLAUseHierarchy.AutoSize = True Me.chkLAUseHierarchy.Location = New System.Drawing.Point(13, 120) Me.chkLAUseHierarchy.Name = "chkLAUseHierarchy" Me.chkLAUseHierarchy.Size = New System.Drawing.Size(93, 17) Me.chkLAUseHierarchy.TabIndex = 121 Me.chkLAUseHierarchy.Text = "Use Hierarchy" Me.chkLAUseHierarchy.UseVisualStyleBackColor = True ' 'lblLAAccumulateAttributeNames ' Me.lblLAAccumulateAttributeNames.Location = New System.Drawing.Point(11, 280) Me.lblLAAccumulateAttributeNames.Name = "lblLAAccumulateAttributeNames" Me.lblLAAccumulateAttributeNames.Size = New System.Drawing.Size(120, 16) Me.lblLAAccumulateAttributeNames.TabIndex = 120 Me.lblLAAccumulateAttributeNames.Text = "Accumulate Attributes" ' 'chklstLAAccumulateAttributeNames ' Me.chklstLAAccumulateAttributeNames.CheckOnClick = True Me.chklstLAAccumulateAttributeNames.Location = New System.Drawing.Point(11, 296) Me.chklstLAAccumulateAttributeNames.Name = "chklstLAAccumulateAttributeNames" Me.chklstLAAccumulateAttributeNames.ScrollAlwaysVisible = True Me.chklstLAAccumulateAttributeNames.Size = New System.Drawing.Size(192, 34) Me.chklstLAAccumulateAttributeNames.TabIndex = 119 ' 'lblLARestrictionAttributeNames ' Me.lblLARestrictionAttributeNames.Location = New System.Drawing.Point(11, 192) Me.lblLARestrictionAttributeNames.Name = "lblLARestrictionAttributeNames" Me.lblLARestrictionAttributeNames.Size = New System.Drawing.Size(71, 15) Me.lblLARestrictionAttributeNames.TabIndex = 118 Me.lblLARestrictionAttributeNames.Text = "Restrictions" ' 'chklstLARestrictionAttributeNames ' Me.chklstLARestrictionAttributeNames.CheckOnClick = True Me.chklstLARestrictionAttributeNames.Location = New System.Drawing.Point(11, 210) Me.chklstLARestrictionAttributeNames.Name = "chklstLARestrictionAttributeNames" Me.chklstLARestrictionAttributeNames.ScrollAlwaysVisible = True Me.chklstLARestrictionAttributeNames.Size = New System.Drawing.Size(191, 34) Me.chklstLARestrictionAttributeNames.TabIndex = 117 ' 'cboLAOutputLines ' Me.cboLAOutputLines.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboLAOutputLines.ItemHeight = 13 Me.cboLAOutputLines.Items.AddRange(New Object() {"Straight Lines", "None"}) Me.cboLAOutputLines.Location = New System.Drawing.Point(142, 93) Me.cboLAOutputLines.Name = "cboLAOutputLines" Me.cboLAOutputLines.Size = New System.Drawing.Size(178, 21) Me.cboLAOutputLines.TabIndex = 115 ' 'label11 ' Me.label11.Location = New System.Drawing.Point(11, 98) Me.label11.Name = "label11" Me.label11.Size = New System.Drawing.Size(114, 15) Me.label11.TabIndex = 116 Me.label11.Text = "Shape" ' 'cboLATravelDirection ' Me.cboLATravelDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboLATravelDirection.ItemHeight = 13 Me.cboLATravelDirection.Items.AddRange(New Object() {"Facility To Demand", "Demand To Facility"}) Me.cboLATravelDirection.Location = New System.Drawing.Point(142, 69) Me.cboLATravelDirection.Name = "cboLATravelDirection" Me.cboLATravelDirection.Size = New System.Drawing.Size(178, 21) Me.cboLATravelDirection.TabIndex = 113 ' 'label12 ' Me.label12.Location = New System.Drawing.Point(11, 74) Me.label12.Name = "label12" Me.label12.Size = New System.Drawing.Size(114, 16) Me.label12.TabIndex = 114 Me.label12.Text = "Travel Direction" ' 'lblCostAttribute ' Me.lblCostAttribute.AutoSize = True Me.lblCostAttribute.Location = New System.Drawing.Point(8, 25) Me.lblCostAttribute.Name = "lblCostAttribute" Me.lblCostAttribute.Size = New System.Drawing.Size(70, 13) Me.lblCostAttribute.TabIndex = 25 Me.lblCostAttribute.Text = "Cost Attribute" ' 'cboLAImpedance ' Me.cboLAImpedance.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboLAImpedance.FormattingEnabled = True Me.cboLAImpedance.Location = New System.Drawing.Point(142, 25) Me.cboLAImpedance.Name = "cboLAImpedance" Me.cboLAImpedance.Size = New System.Drawing.Size(176, 21) Me.cboLAImpedance.TabIndex = 24 ' 'tabAttributeParameters ' Me.tabAttributeParameters.Controls.Add(Me.btnReset) Me.tabAttributeParameters.Controls.Add(Me.attributeParameterGrid) Me.tabAttributeParameters.Controls.Add(Me.label14) Me.tabAttributeParameters.Location = New System.Drawing.Point(4, 22) Me.tabAttributeParameters.Name = "tabAttributeParameters" Me.tabAttributeParameters.Padding = New System.Windows.Forms.Padding(3) Me.tabAttributeParameters.Size = New System.Drawing.Size(712, 473) Me.tabAttributeParameters.TabIndex = 7 Me.tabAttributeParameters.Text = "Attribute Parameters" Me.tabAttributeParameters.UseVisualStyleBackColor = True ' 'btnReset ' Me.btnReset.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnReset.Location = New System.Drawing.Point(636, 446) Me.btnReset.Name = "btnReset" Me.btnReset.Size = New System.Drawing.Size(70, 21) Me.btnReset.TabIndex = 29 Me.btnReset.Text = "&Reset" ' 'attributeParameterGrid ' Me.attributeParameterGrid.AllowUserToAddRows = False Me.attributeParameterGrid.AllowUserToDeleteRows = False Me.attributeParameterGrid.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill Me.attributeParameterGrid.BackgroundColor = System.Drawing.Color.White Me.attributeParameterGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.attributeParameterGrid.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.dgvcAttribute, Me.dgvcParameter, Me.dgvcValue}) Me.attributeParameterGrid.Location = New System.Drawing.Point(13, 36) Me.attributeParameterGrid.Name = "attributeParameterGrid" Me.attributeParameterGrid.RowHeadersVisible = False Me.attributeParameterGrid.Size = New System.Drawing.Size(693, 404) Me.attributeParameterGrid.TabIndex = 28 ' 'dgvcAttribute ' Me.dgvcAttribute.HeaderText = "Attribute" Me.dgvcAttribute.Name = "dgvcAttribute" Me.dgvcAttribute.ReadOnly = True ' 'dgvcParameter ' Me.dgvcParameter.HeaderText = "Parameter" Me.dgvcParameter.Name = "dgvcParameter" Me.dgvcParameter.ReadOnly = True ' 'dgvcValue ' Me.dgvcValue.HeaderText = "Value" Me.dgvcValue.Name = "dgvcValue" ' 'label14 ' Me.label14.AutoSize = True Me.label14.Location = New System.Drawing.Point(6, 13) Me.label14.Name = "label14" Me.label14.Size = New System.Drawing.Size(267, 13) Me.label14.TabIndex = 27 Me.label14.Text = "Specify the parameter values for the network attributes." ' 'btnOK ' Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnOK.Location = New System.Drawing.Point(598, 523) Me.btnOK.Name = "btnOK" Me.btnOK.Size = New System.Drawing.Size(58, 22) Me.btnOK.TabIndex = 1 Me.btnOK.Text = "&OK" ' 'btnCancel ' Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnCancel.Location = New System.Drawing.Point(666, 523) Me.btnCancel.Name = "btnCancel" Me.btnCancel.Size = New System.Drawing.Size(62, 22) Me.btnCancel.TabIndex = 2 Me.btnCancel.Text = "&Cancel" ' 'frmNALayerProperties ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(739, 563) Me.Controls.Add(Me.btnCancel) Me.Controls.Add(Me.btnOK) Me.Controls.Add(Me.tabPropPages) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "frmNALayerProperties" Me.ShowInTaskbar = False Me.Text = "Properties" Me.tabPropPages.ResumeLayout(False) Me.tabGeneral.ResumeLayout(False) Me.tabGeneral.PerformLayout() Me.tabRoute.ResumeLayout(False) Me.tabRoute.PerformLayout() Me.tabClosestFacility.ResumeLayout(False) Me.tabClosestFacility.PerformLayout() Me.tabODCostMatrix.ResumeLayout(False) Me.tabODCostMatrix.PerformLayout() Me.tabServiceArea.ResumeLayout(False) Me.tabServiceArea.PerformLayout() Me.tabVRP.ResumeLayout(False) Me.gbRestrictions.ResumeLayout(False) Me.gbSettings.ResumeLayout(False) Me.gbSettings.PerformLayout() Me.tabLocationAllocation.ResumeLayout(False) Me.tabLocationAllocation.PerformLayout() Me.grpLASettings.ResumeLayout(False) Me.grpLASettings.PerformLayout() Me.tabAttributeParameters.ResumeLayout(False) Me.tabAttributeParameters.PerformLayout() CType(Me.attributeParameterGrid, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub #End Region Private m_okClicked As Boolean Private m_naLayer As INALayer3 Private Enum VARTYPE VT_EMPTY = 0 ' uninitialized (null) VT_NULL = 1 ' System.DBNull.Value VT_I2 = 2 ' short VT_I4 = 3 ' int VT_R4 = 4 ' float VT_R8 = 5 ' double VT_DATE = 7 ' DateTime VT_BSTR = 8 ' string VT_BOOL = 11 ' boolean VT_UNKNOWN = 13 ' COM object VT_ARRAY = 8192 ' array bitmask End Enum Private Enum AttributeParameterGridColumnType ATTRIBUTE_NAME = 0 PARAMETER_NAME = 1 PARAMETER_VALUE = 2 End Enum Private m_restrictionParameterValues As Dictionary(Of String, Double) = New Dictionary(Of String, Double) From { {"Prohibit", -1}, {"Avoid: High", 5}, {"Avoid: Medium", 2}, {"Avoid: Low", 1.3}, {"Prefer: Low", 0.8}, {"Prefer: Medium", 0.5}, {"Prefer: High", 0.2} } Public Sub New() InitializeComponent() End Sub ''' <summary> ''' Clean up any resources being used. ''' </summary> Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If components IsNot Nothing Then components.Dispose() End If End If MyBase.Dispose(disposing) m_naLayer = Nothing End Sub ''' <summary> ''' Called by clients to show the properties window and respond to changes made when OK is clicked. ''' </summary> Public Function ShowModal(ByVal naLayer As INALayer3) As Boolean m_okClicked = False If (naLayer Is Nothing) Then MessageBox.Show("Null NALayer") Else m_naLayer = naLayer End If ' Setup the window based on the current NALayer settings PopulateControls(naLayer) tabPropPages.SelectedIndex = 1 Me.Text = (CType(naLayer, ILayer)).Name & " Properties" Me.ShowDialog() Return m_okClicked End Function ''' <summary> ''' Set controls based on the current NALayer settings ''' This function takes the current NALayer and determines what type of solver it's pointing to ''' and populates the corresponding controls and hides the tabs for the other solvers. ''' </summary> Private Sub PopulateControls(ByVal naLayer As INALayer) Dim layer As ILayer = TryCast(naLayer, ILayer) Dim naContext As INAContext = naLayer.Context Dim networkDataset As INetworkDataset = naContext.NetworkDataset Dim naLocator As INALocator2 = TryCast(naContext.Locator, INALocator2) Dim naSolver As INASolver = naContext.Solver Dim naSolverSettings As INASolverSettings = TryCast(naSolver, INASolverSettings2) Dim naTimeAwareSolverSettings As INATimeAwareSolverSettings = TryCast(naSolver, INATimeAwareSolverSettings) Dim routeSolver As INARouteSolver2 = TryCast(naSolver, INARouteSolver2) Dim cfSolver As INAClosestFacilitySolver = TryCast(naSolver, INAClosestFacilitySolver) Dim odSolver As INAODCostMatrixSolver = TryCast(naSolver, INAODCostMatrixSolver) Dim saSolver As INAServiceAreaSolver2 = TryCast(naSolver, INAServiceAreaSolver2) Dim vrpSolver As INAVRPSolver = TryCast(naSolver, INAVRPSolver) Dim laSolver As INALocationAllocationSolver = TryCast(naSolver, INALocationAllocationSolver) ' Populate general Layer controls txtLayerName.Text = layer.Name txtMaxSearchTolerance.Text = naLocator.MaxSnapTolerance.ToString() cboMaxSearchToleranceUnits.SelectedIndex = Convert.ToInt32(naLocator.SnapToleranceUnits) PopulateAttributeParameterControl(networkDataset) ' Populate controls for the particular solver If routeSolver IsNot Nothing Then ' ROUTE LAYER ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabClosestFacility) tabPropPages.TabPages.Remove(tabODCostMatrix) tabPropPages.TabPages.Remove(tabServiceArea) tabPropPages.TabPages.Remove(tabVRP) tabPropPages.TabPages.Remove(tabLocationAllocation) ' INARouteSolver2 chkRouteFindBestSequence.Checked = routeSolver.FindBestSequence chkRoutePreserveFirstStop.Checked = routeSolver.PreserveFirstStop chkRoutePreserveLastStop.Checked = routeSolver.PreserveLastStop chkRouteUseTimeWindows.Checked = routeSolver.UseTimeWindows chkRouteUseStartTime.Checked = routeSolver.UseStartTime txtRouteStartTime.Text = routeSolver.StartTime.ToShortTimeString() cboRouteOutputLines.SelectedIndex = System.Convert.ToInt32(routeSolver.OutputLines) ' INASolverSettings PopulateImpedanceNameControl(cboRouteImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName) chkRouteUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0) chkRouteUseHierarchy.Checked = (chkRouteUseHierarchy.Enabled AndAlso naSolverSettings.UseHierarchy) chkRouteIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations cboRouteRestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns) PopulateAttributeControl(chklstRouteAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost) PopulateAttributeControl(chklstRouteRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction) ElseIf cfSolver IsNot Nothing Then ' CLOSEST FACILITY LAYER ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute) tabPropPages.TabPages.Remove(tabODCostMatrix) tabPropPages.TabPages.Remove(tabServiceArea) tabPropPages.TabPages.Remove(tabVRP) tabPropPages.TabPages.Remove(tabLocationAllocation) ' INAClosestFacilitySolver txtCFDefaultCutoff.Text = GetStringFromObject(cfSolver.DefaultCutoff) txtCFDefaultTargetFacilityCount.Text = cfSolver.DefaultTargetFacilityCount.ToString() cboCFTravelDirection.SelectedIndex = Convert.ToInt32(cfSolver.TravelDirection) cboCFOutputLines.SelectedIndex = Convert.ToInt32(cfSolver.OutputLines) ' INASolverSettings PopulateImpedanceNameControl(cboCFImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName) chkCFUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0) chkCFUseHierarchy.Checked = (chkCFUseHierarchy.Enabled AndAlso naSolverSettings.UseHierarchy) chkCFIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations cboCFRestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns) PopulateAttributeControl(chklstCFAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost) PopulateAttributeControl(chklstCFRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction) ' INATimeAwareSolverSettings cboCFTimeUsage.SelectedIndex = System.Convert.ToInt32(naTimeAwareSolverSettings.TimeOfDayUsage) txtCFUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString("HH:mm:ss MM/dd/yyyy") ElseIf odSolver IsNot Nothing Then ' OD COST MATRIX LAYER ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute) tabPropPages.TabPages.Remove(tabClosestFacility) tabPropPages.TabPages.Remove(tabServiceArea) tabPropPages.TabPages.Remove(tabVRP) tabPropPages.TabPages.Remove(tabLocationAllocation) ' INAODCostMatrixSolver txtODDefaultCutoff.Text = GetStringFromObject(odSolver.DefaultCutoff) txtODDefaultTargetDestinationCount.Text = GetStringFromObject(odSolver.DefaultTargetDestinationCount) cboODOutputLines.SelectedIndex = Convert.ToInt32(odSolver.OutputLines) ' INASolverSettings PopulateImpedanceNameControl(cboODImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName) chkODUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0) chkODUseHierarchy.Checked = (chkODUseHierarchy.Enabled AndAlso naSolverSettings.UseHierarchy) chkODIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations cboODRestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns) PopulateAttributeControl(chklstODAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost) PopulateAttributeControl(chklstODRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction) ' INATimeAwareSolverSettings If (naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime) Then chkODUseTime.Checked = True End If txtODUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString("HH:mm:ss MM/dd/yyyy") ElseIf saSolver IsNot Nothing Then 'SERVICE AREA SOLVER ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute) tabPropPages.TabPages.Remove(tabClosestFacility) tabPropPages.TabPages.Remove(tabODCostMatrix) tabPropPages.TabPages.Remove(tabVRP) tabPropPages.TabPages.Remove(tabLocationAllocation) ' INAServiceAreaSolver2 txtSADefaultBreaks.Text = "" For iBreak As Integer = 0 To saSolver.DefaultBreaks.Count - 1 txtSADefaultBreaks.Text = txtSADefaultBreaks.Text & " " & saSolver.DefaultBreaks.Element(iBreak).ToString() Next iBreak cboSATravelDirection.SelectedIndex = Convert.ToInt32(saSolver.TravelDirection) cboSAOutputPolygons.SelectedIndex = -1 cboSAOutputPolygons.SelectedIndex = Convert.ToInt32(saSolver.OutputPolygons) chkSAOverlapPolygons.Checked = saSolver.OverlapPolygons chkSASplitPolygonsAtBreaks.Checked = saSolver.SplitPolygonsAtBreaks chkSAMergeSimilarPolygonRanges.Checked = saSolver.MergeSimilarPolygonRanges chkSATrimOuterPolygon.Checked = saSolver.TrimOuterPolygon txtSATrimPolygonDistance.Text = saSolver.TrimPolygonDistance.ToString() cboSATrimPolygonDistanceUnits.SelectedIndex = Convert.ToInt32(saSolver.TrimPolygonDistanceUnits) cboSAOutputLines.SelectedIndex = -1 cboSAOutputLines.SelectedIndex = Convert.ToInt32(saSolver.OutputLines) chkSAOverlapLines.Checked = saSolver.OverlapLines chkSASplitLinesAtBreaks.Checked = saSolver.SplitLinesAtBreaks chkSAIncludeSourceInformationOnLines.Checked = saSolver.IncludeSourceInformationOnLines ' INASolverSettings PopulateImpedanceNameControl(cboSAImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName) chkSAIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations cboSARestrictUTurns.SelectedIndex = System.Convert.ToInt32(naSolverSettings.RestrictUTurns) PopulateAttributeControl(chklstSAAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost) PopulateAttributeControl(chklstSARestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction) ' INATimeAwareSolverSettings If (naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime) Then chkSAUseTime.Checked = True End If txtSAUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString("HH:mm:ss MM/dd/yyyy") ElseIf vrpSolver IsNot Nothing Then ' VRP Solver ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute) tabPropPages.TabPages.Remove(tabClosestFacility) tabPropPages.TabPages.Remove(tabODCostMatrix) tabPropPages.TabPages.Remove(tabServiceArea) tabPropPages.TabPages.Remove(tabLocationAllocation) cboVRPOutputShapeType.SelectedIndex = Convert.ToInt32(vrpSolver.OutputLines) cboVRPAllowUTurns.SelectedIndex = Convert.ToInt32(naSolverSettings.RestrictUTurns) ' VRP cannot have unknown units, so the index is offset by 1 from the solver field units cboVRPDistanceFieldUnits.SelectedIndex = Convert.ToInt32(vrpSolver.DistanceFieldUnits) - 1 cboVRPTransitTime.SelectedIndex = Convert.ToInt32(vrpSolver.ExcessTransitTimePenaltyFactor) cboVRPTimeWindow.SelectedIndex = Convert.ToInt32(vrpSolver.TimeWindowViolationPenaltyFactor) cboVRPTimeFieldUnits.SelectedIndex = Convert.ToInt32(vrpSolver.TimeFieldUnits - 20) txtVRPCapacityCount.Text = vrpSolver.CapacityCount.ToString() txtVRPDefaultDate.Text = vrpSolver.DefaultDate.ToShortDateString() chkVRPUseHierarchy.Checked = naSolverSettings.UseHierarchy PopulateAttributeControl(chklstVRPRestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction) 'populate the time attribute combo box cboVRPTimeAttribute.Items.Clear() For i As Integer = 0 To networkDataset.AttributeCount - 1 Dim networkAttribute As INetworkAttribute = networkDataset.Attribute(i) If networkAttribute.UsageType = esriNetworkAttributeUsageType.esriNAUTCost AndAlso networkAttribute.Units >= esriNetworkAttributeUnits.esriNAUSeconds Then cboVRPTimeAttribute.Items.Add(networkAttribute.Name) End If Next i If cboVRPTimeAttribute.Items.Count > 0 Then cboVRPTimeAttribute.Text = naSolverSettings.ImpedanceAttributeName End If ' for VRP, the AccumulateAttributeNames hold the length, and it can only hold one length. ' Loop through the network dataset attributes cboVRPDistanceAttribute.Items.Clear() cboVRPDistanceAttribute.SelectedIndex = cboVRPDistanceAttribute.Items.Add("") For i As Integer = 0 To networkDataset.AttributeCount - 1 Dim networkAttribute As INetworkAttribute = networkDataset.Attribute(i) If networkAttribute.UsageType = esriNetworkAttributeUsageType.esriNAUTCost AndAlso networkAttribute.Units < esriNetworkAttributeUnits.esriNAUSeconds Then Dim attributeName As String = networkAttribute.Name Dim cboindex As Integer = cboVRPDistanceAttribute.Items.Add(networkAttribute.Name) ' If the attribute is in the strArray, it should be the selected one For j As Integer = 0 To naSolverSettings.AccumulateAttributeNames.Count - 1 If naSolverSettings.AccumulateAttributeNames.Element(j) = attributeName Then cboVRPDistanceAttribute.SelectedIndex = cboindex End If Next j End If Next i ElseIf laSolver IsNot Nothing Then ' Location-Allocation LAYER ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute) tabPropPages.TabPages.Remove(tabClosestFacility) tabPropPages.TabPages.Remove(tabODCostMatrix) tabPropPages.TabPages.Remove(tabServiceArea) tabPropPages.TabPages.Remove(tabVRP) ' INALocationAllocationSolver txtLACutOff.Text = GetStringFromObject(laSolver.DefaultCutoff) txtLAFacilitiesToLocate.Text = laSolver.NumberFacilitiesToLocate.ToString() txtLAImpParameter.Text = laSolver.TransformationParameter.ToString() txtLATargetMarketShare.Text = laSolver.TargetMarketSharePercentage.ToString() cboLAImpTransformation.SelectedIndex = Convert.ToInt32(laSolver.ImpedanceTransformation) cboLAProblemType.SelectedIndex = Convert.ToInt32(laSolver.ProblemType) cboLAOutputLines.SelectedIndex = Convert.ToInt32(laSolver.OutputLines) cboLATravelDirection.SelectedIndex = Convert.ToInt32(laSolver.TravelDirection) '// INASolverSettings PopulateImpedanceNameControl(cboLAImpedance, networkDataset, naSolverSettings.ImpedanceAttributeName) PopulateAttributeControl(chklstLAAccumulateAttributeNames, networkDataset, naSolverSettings.AccumulateAttributeNames, esriNetworkAttributeUsageType.esriNAUTCost) PopulateAttributeControl(chklstLARestrictionAttributeNames, networkDataset, naSolverSettings.RestrictionAttributeNames, esriNetworkAttributeUsageType.esriNAUTRestriction) chkLAUseHierarchy.Enabled = (naSolverSettings.HierarchyAttributeName.Length > 0) chkLAUseHierarchy.Checked = (chkCFUseHierarchy.Enabled AndAlso naSolverSettings.UseHierarchy) chkLAIgnoreInvalidLocations.Checked = naSolverSettings.IgnoreInvalidLocations ' INATimeAwareSolverSettings If (naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime) Then chkLAUseTime.Checked = True End If txtLAUseTime.Text = naTimeAwareSolverSettings.TimeOfDay.ToString("HH:mm:ss MM/dd/yyyy") Else ' Unknown type of layer ' Remove unnecessary tabs tabPropPages.TabPages.Remove(tabRoute) tabPropPages.TabPages.Remove(tabClosestFacility) tabPropPages.TabPages.Remove(tabODCostMatrix) tabPropPages.TabPages.Remove(tabServiceArea) tabPropPages.TabPages.Remove(tabVRP) tabPropPages.TabPages.Remove(tabLocationAllocation) End If End Sub ''' <summary> ''' Interrogate the network dataset attributes to populate a list of attribute parameters ''' </summary> Private Sub PopulateAttributeParameterControl(ByVal networkDataset As INetworkDataset) Dim solverSettings As INASolverSettings2 = TryCast(m_naLayer.Context.Solver, INASolverSettings2) ' Track if there are attribute parameters, to decide if the attribute parameter tab should be displayed Dim hasAttributeParameters As Boolean = False ' Iterate over all of the network attributes to search for parameters For attrIndex As Integer = 0 To networkDataset.AttributeCount - 1 Dim networkAttribute As INetworkAttribute3 = TryCast(networkDataset.Attribute(attrIndex), INetworkAttribute3) Dim attributeName As String = networkAttribute.Name ' Iterate over all of the parameters, to find their values For paramIndex As Integer = 0 To networkAttribute.Parameters.Count - 1 hasAttributeParameters = True ' Find the current attribute parameter value for this layer Dim attributeParameter As INetworkAttributeParameter2 = TryCast(networkAttribute.Parameters.Element(paramIndex), INetworkAttributeParameter2) Dim paramValue As Object = solverSettings.AttributeParameterValue(attributeName, attributeParameter.Name) Dim rowID As Integer = attributeParameterGrid.Rows.Add() attributeParameterGrid(CInt(AttributeParameterGridColumnType.ATTRIBUTE_NAME), rowID).Value = networkAttribute.Name attributeParameterGrid(CInt(AttributeParameterGridColumnType.PARAMETER_NAME), rowID).Value = attributeParameter.Name UpdateAttributeParameterValueCell(rowID, paramValue, DirectCast(attributeParameter.VarType, VARTYPE), attributeParameter.ParameterUsageType) Next Next ' Don't display the attribute parameters tab, if there are no attribute parameters If Not hasAttributeParameters Then tabPropPages.TabPages.Remove(tabAttributeParameters) End If End Sub Private Sub UpdateAttributeParameterValueCell(ByVal rowID As Integer, ByVal paramValue As Object, ByVal paramVarType As VARTYPE, Optional ByVal paramUsageType As esriNetworkAttributeParameterUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTGeneral) Dim cellText As String = ConvertAttributeParameterValueToString(paramValue, paramVarType, paramUsageType) ' Set up the combo box choices for restriction attribute parameters If paramUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTRestriction Then attributeParameterGrid(CInt(AttributeParameterGridColumnType.PARAMETER_VALUE), rowID) = CreateRestrictionParameterCell(paramValue, cellText, rowID) End If attributeParameterGrid(CInt(AttributeParameterGridColumnType.PARAMETER_VALUE), rowID).Value = cellText End Sub Private Function CreateStandardRestrictionParameterCell(ByVal rowID As Integer) As DataGridViewComboBoxCell Dim cbcRestriction As New DataGridViewComboBoxCell() cbcRestriction.Items.AddRange(m_restrictionParameterValues.Keys.ToArray()) cbcRestriction.DisplayStyle = DataGridViewComboBoxDisplayStyle.[Nothing] Return cbcRestriction End Function Private Function CreateRestrictionParameterCell(ByVal paramValue As Object, ByVal cellText As String, ByVal rowID As Integer) As DataGridViewComboBoxCell Dim comboBoxCell As DataGridViewComboBoxCell = CreateStandardRestrictionParameterCell(rowID) Dim isCustomRestrictionParamValue As Boolean = Not m_restrictionParameterValues.ContainsValue(CDbl(paramValue)) If isCustomRestrictionParamValue Then comboBoxCell.Items.Add(cellText) End If Return comboBoxCell End Function Private Function ConvertAttributeParameterValueToString(ByVal paramValue As Object, ByVal paramVarType As VARTYPE, Optional ByVal paramUsageType As esriNetworkAttributeParameterUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTGeneral) As String Dim paramValueString As String = "" ' Use bitwise arithmetic to determine if this parameter is an array. Dim vtBase As VARTYPE = DirectCast(CInt(paramVarType) And Not CInt(VARTYPE.VT_ARRAY), VARTYPE) Dim isArrayType As Boolean = (vtBase <> paramVarType) ' Null and DBNull should be represented as an empty string If Not System.DBNull.Value.Equals(paramValue) AndAlso paramValue IsNot Nothing Then ' For restriction attribute parameters, try to match the parameter double value with its associated ' text representation Dim isStandardRestrictionParamValue As Boolean = (paramUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTRestriction AndAlso m_restrictionParameterValues.ContainsValue(CDbl(paramValue))) If isStandardRestrictionParamValue Then If isStandardRestrictionParamValue Then ' Assign celltext to a key name matching the paramValue Dim matchingKeys As IEnumerable(Of String) = From pair In m_restrictionParameterValues _ Where (CDbl(paramValue).Equals(pair.Value)) _ Select pair.Key paramValueString = matchingKeys.First() End If ' For attribute parameters that are array types, determine the type of array, ' then convert the array to a string for display purposes. ElseIf isArrayType Then Select Case vtBase Case VARTYPE.VT_I2 paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, Short())) Exit Select Case VARTYPE.VT_I4 paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, Integer())) Exit Select Case VARTYPE.VT_R4 paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, Single())) Exit Select Case VARTYPE.VT_R8 paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, Double())) Exit Select Case VARTYPE.VT_DATE paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, DateTime())) Exit Select Case VARTYPE.VT_BSTR paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, String())) Exit Select Case VARTYPE.VT_BOOL paramValueString = ConvertGenericArrayToString(DirectCast(paramValue, Boolean())) Exit Select Case Else Throw New Exception("Unexpected array base type") End Select Else paramValueString = paramValue.ToString() End If End If Return paramValueString End Function ''' <summary> ''' Take generic arrays and convert them to a string ''' </summary> Private Shared Function ConvertGenericArrayToString(Of T)(ByVal values As T()) As String Dim sValues As String() = System.Array.ConvertAll(values, Function(p) p.ToString()) Return [String].Join(",", sValues) End Function ''' <summary> ''' Take string values and convert them to generic arrays ''' </summary> Private Shared Function ConvertStringToGenericArray(Of T)(ByVal cellValue As String) As T() Dim list As New List(Of T)() Dim values As String() = cellValue.Split(","c) For Each value As String In values list.Add(DirectCast(Convert.ChangeType(value, GetType(T)), T)) Next Return list.ToArray() End Function ''' <summary> ''' Updates the NALayer based on the current controls. ''' This will update the solver settings for the solver referenced by the NALayer. ''' </summary> Private Sub UpdateNALayer(ByVal naLayer As INALayer) Dim layer As ILayer = TryCast(naLayer, ILayer) Dim naContext As INAContext = naLayer.Context Dim networkDataset As INetworkDataset = naContext.NetworkDataset Dim naLocator As INALocator2 = TryCast(naContext.Locator, INALocator2) Dim naSolver As INASolver = naContext.Solver Dim naSolverSettings As INASolverSettings = TryCast(naSolver, INASolverSettings2) Dim naTimeAwareSolverSettings As INATimeAwareSolverSettings = TryCast(naSolver, INATimeAwareSolverSettings) Dim routeSolver As INARouteSolver2 = TryCast(naSolver, INARouteSolver2) Dim cfSolver As INAClosestFacilitySolver = TryCast(naSolver, INAClosestFacilitySolver) Dim odSolver As INAODCostMatrixSolver = TryCast(naSolver, INAODCostMatrixSolver) Dim saSolver As INAServiceAreaSolver2 = TryCast(naSolver, INAServiceAreaSolver2) Dim vrpSolver As INAVRPSolver = TryCast(naSolver, INAVRPSolver) Dim laSolver As INALocationAllocationSolver = TryCast(naSolver, INALocationAllocationSolver) ' Set Layer properties layer.Name = txtLayerName.Text naLocator.MaxSnapTolerance = Convert.ToDouble(txtMaxSearchTolerance.Text) naLocator.SnapToleranceUnits = CType(cboMaxSearchToleranceUnits.SelectedIndex, esriUnits) SetAttributeParameters(networkDataset) ' Set Solver properties If routeSolver IsNot Nothing Then ' ROUTE LAYER ' INARouteSolver routeSolver.FindBestSequence = chkRouteFindBestSequence.Checked routeSolver.PreserveFirstStop = chkRoutePreserveFirstStop.Checked routeSolver.PreserveLastStop = chkRoutePreserveLastStop.Checked routeSolver.UseTimeWindows = chkRouteUseTimeWindows.Checked routeSolver.UseStartTime = chkRouteUseStartTime.Checked Try routeSolver.StartTime = System.Convert.ToDateTime(txtRouteStartTime.Text) Catch e As Exception MessageBox.Show("Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy.") End Try routeSolver.OutputLines = CType(cboRouteOutputLines.SelectedIndex, esriNAOutputLineType) ' INASolverSettings naSolverSettings.ImpedanceAttributeName = cboRouteImpedance.Text naSolverSettings.UseHierarchy = chkRouteUseHierarchy.Checked naSolverSettings.IgnoreInvalidLocations = chkRouteIgnoreInvalidLocations.Checked naSolverSettings.RestrictUTurns = CType(cboRouteRestrictUTurns.SelectedIndex, esriNetworkForwardStarBacktrack) naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstRouteAccumulateAttributeNames) naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstRouteRestrictionAttributeNames) ElseIf cfSolver IsNot Nothing Then ' CLOSEST FACILITY LAYER If txtCFDefaultCutoff.Text.Length = 0 Then cfSolver.DefaultCutoff = Nothing Else cfSolver.DefaultCutoff = Convert.ToDouble(txtCFDefaultCutoff.Text) End If If txtCFDefaultTargetFacilityCount.Text.Length = 0 Then cfSolver.DefaultTargetFacilityCount = 1 Else cfSolver.DefaultTargetFacilityCount = Convert.ToInt32(txtCFDefaultTargetFacilityCount.Text) End If cfSolver.TravelDirection = CType(cboCFTravelDirection.SelectedIndex, esriNATravelDirection) cfSolver.OutputLines = CType(cboCFOutputLines.SelectedIndex, esriNAOutputLineType) ' INASolverSettings naSolverSettings.ImpedanceAttributeName = cboCFImpedance.Text naSolverSettings.UseHierarchy = chkCFUseHierarchy.Checked naSolverSettings.IgnoreInvalidLocations = chkCFIgnoreInvalidLocations.Checked naSolverSettings.RestrictUTurns = CType(cboCFRestrictUTurns.SelectedIndex, esriNetworkForwardStarBacktrack) naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstCFAccumulateAttributeNames) naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstCFRestrictionAttributeNames) ' INATimeAwareSolverSettings Try naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtCFUseTime.Text) Catch e As Exception MessageBox.Show("Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy.") End Try naTimeAwareSolverSettings.TimeOfDayUsage = CType(cboCFTimeUsage.SelectedIndex, esriNATimeOfDayUsage) ElseIf odSolver IsNot Nothing Then ' OD COST MATRIX LAYER If txtODDefaultCutoff.Text.Length = 0 Then odSolver.DefaultCutoff = Nothing Else odSolver.DefaultCutoff = Convert.ToDouble(txtODDefaultCutoff.Text) End If If txtODDefaultTargetDestinationCount.Text.Length = 0 Then odSolver.DefaultTargetDestinationCount = Nothing Else odSolver.DefaultTargetDestinationCount = Convert.ToInt32(txtODDefaultTargetDestinationCount.Text) End If odSolver.OutputLines = CType(cboODOutputLines.SelectedIndex, esriNAOutputLineType) ' INASolverSettings naSolverSettings.ImpedanceAttributeName = cboODImpedance.Text naSolverSettings.UseHierarchy = chkODUseHierarchy.Checked naSolverSettings.IgnoreInvalidLocations = chkODIgnoreInvalidLocations.Checked naSolverSettings.RestrictUTurns = CType(cboODRestrictUTurns.SelectedIndex, esriNetworkForwardStarBacktrack) naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstODAccumulateAttributeNames) naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstODRestrictionAttributeNames) ' INATimeAwareSolverSettings Try naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtODUseTime.Text) Catch e As Exception MessageBox.Show("Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy.") End Try If (chkODUseTime.Checked) Then naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime End If ElseIf saSolver IsNot Nothing Then ' SERVICE AREA SOLVER Dim defaultBreaks As IDoubleArray = saSolver.DefaultBreaks defaultBreaks.RemoveAll() Dim breaks As String = txtSADefaultBreaks.Text.Trim() breaks.Replace(" ", " ") Dim values() As String = breaks.Split(" "c) For iBreak As Integer = values.GetLowerBound(0) To values.GetUpperBound(0) defaultBreaks.Add(System.Convert.ToDouble(values.GetValue(iBreak))) Next iBreak saSolver.DefaultBreaks = defaultBreaks saSolver.TravelDirection = CType(cboSATravelDirection.SelectedIndex, esriNATravelDirection) saSolver.OutputPolygons = CType(cboSAOutputPolygons.SelectedIndex, esriNAOutputPolygonType) saSolver.OverlapPolygons = chkSAOverlapPolygons.Checked saSolver.SplitPolygonsAtBreaks = chkSASplitPolygonsAtBreaks.Checked saSolver.MergeSimilarPolygonRanges = chkSAMergeSimilarPolygonRanges.Checked saSolver.TrimOuterPolygon = chkSATrimOuterPolygon.Checked saSolver.TrimPolygonDistance = Convert.ToDouble(Me.txtSATrimPolygonDistance.Text) saSolver.TrimPolygonDistanceUnits = CType(cboSATrimPolygonDistanceUnits.SelectedIndex, esriUnits) If cboSAOutputLines.SelectedIndex = 0 Then saSolver.OutputLines = CType(cboSAOutputLines.SelectedIndex, esriNAOutputLineType) Else ' Does not support Straight lines, so not in combobox, up by one to account for this saSolver.OutputLines = CType(cboSAOutputLines.SelectedIndex + 1, esriNAOutputLineType) End If saSolver.OverlapLines = chkSAOverlapLines.Checked saSolver.SplitLinesAtBreaks = chkSASplitLinesAtBreaks.Checked saSolver.IncludeSourceInformationOnLines = Me.chkSAIncludeSourceInformationOnLines.Checked ' INASolverSettings naSolverSettings.ImpedanceAttributeName = cboSAImpedance.Text naSolverSettings.IgnoreInvalidLocations = chkSAIgnoreInvalidLocations.Checked naSolverSettings.RestrictUTurns = CType(cboSARestrictUTurns.SelectedIndex, esriNetworkForwardStarBacktrack) naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstSAAccumulateAttributeNames) naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstSARestrictionAttributeNames) ' INATimeAwareSolverSettings Try naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtSAUseTime.Text) Catch e As Exception MessageBox.Show("Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy.") End Try If (chkSAUseTime.Checked) Then naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime End If ElseIf vrpSolver IsNot Nothing Then naSolverSettings.ImpedanceAttributeName = cboVRPTimeAttribute.Text naSolverSettings.AccumulateAttributeNames.RemoveAll() Dim strArray As IStringArray = naSolverSettings.AccumulateAttributeNames strArray.RemoveAll() strArray.Add(cboVRPDistanceAttribute.Text) naSolverSettings.AccumulateAttributeNames = strArray vrpSolver.CapacityCount = Convert.ToInt32(txtVRPCapacityCount.Text) Try vrpSolver.DefaultDate = Convert.ToDateTime(txtVRPDefaultDate.Text) Catch e As Exception MessageBox.Show("Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy.") End Try vrpSolver.TimeFieldUnits = CType((cboVRPTimeFieldUnits.SelectedIndex + 20), esriNetworkAttributeUnits) ' there cannot be unknown units for a VRP, so the index is offset by 1 vrpSolver.DistanceFieldUnits = CType((cboVRPDistanceFieldUnits.SelectedIndex + 1), esriNetworkAttributeUnits) naSolverSettings.RestrictUTurns = CType(cboVRPAllowUTurns.SelectedIndex, esriNetworkForwardStarBacktrack) vrpSolver.OutputLines = CType(cboVRPOutputShapeType.SelectedIndex, esriNAOutputLineType) vrpSolver.TimeWindowViolationPenaltyFactor = cboVRPTimeWindow.SelectedIndex vrpSolver.ExcessTransitTimePenaltyFactor = cboVRPTransitTime.SelectedIndex naSolverSettings.UseHierarchy = chkVRPUseHierarchy.Checked naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstVRPRestrictionAttributeNames) ElseIf laSolver IsNot Nothing Then ' Location-Allocation LAYER If txtLACutOff.Text.Length = 0 Then laSolver.DefaultCutoff = Nothing ElseIf Convert.ToDouble(txtLACutOff.Text) = 0.0 Then laSolver.DefaultCutoff = Nothing Else laSolver.DefaultCutoff = Convert.ToDouble(txtLACutOff.Text) End If If txtLAFacilitiesToLocate.Text.Length = 0 Then laSolver.NumberFacilitiesToLocate = 1 Else laSolver.NumberFacilitiesToLocate = Convert.ToInt32(txtLAFacilitiesToLocate.Text) End If laSolver.ProblemType = CType(cboLAProblemType.SelectedIndex, esriNALocationAllocationProblemType) laSolver.ImpedanceTransformation = CType(cboLAImpTransformation.SelectedIndex, esriNAImpedanceTransformationType) laSolver.TransformationParameter = Convert.ToDouble(txtLAImpParameter.Text) laSolver.TargetMarketSharePercentage = Convert.ToDouble(txtLATargetMarketShare.Text) laSolver.TravelDirection = CType(cboLATravelDirection.SelectedIndex, esriNATravelDirection) laSolver.OutputLines = CType(cboLAOutputLines.SelectedIndex, esriNAOutputLineType) '// INASolverSettings naSolverSettings.ImpedanceAttributeName = cboLAImpedance.Text naSolverSettings.UseHierarchy = chkLAUseHierarchy.Checked naSolverSettings.AccumulateAttributeNames = GetCheckedAttributeNamesFromControl(chklstLAAccumulateAttributeNames) naSolverSettings.RestrictionAttributeNames = GetCheckedAttributeNamesFromControl(chklstLARestrictionAttributeNames) naSolverSettings.IgnoreInvalidLocations = chkLAIgnoreInvalidLocations.Checked ' INATimeAwareSolverSettings Try naTimeAwareSolverSettings.TimeOfDay = DateTime.Parse(txtLAUseTime.Text) Catch e As Exception MessageBox.Show("Invalid Time specified. Use the format HH:mm:ss MM/dd/yyyy.") End Try If (chkLAUseTime.Checked) Then naTimeAwareSolverSettings.TimeOfDayUsage = esriNATimeOfDayUsage.esriNATimeOfDayUseAsStartTime End If End If End Sub ''' <summary> ''' Populate the attribute parameter values based on the data grid rows. ''' </summary> Private Sub SetAttributeParameters(ByVal networkDataset As INetworkDataset) Dim solverSettings As INASolverSettings2 = TryCast(m_naLayer.Context.Solver, INASolverSettings2) ' The parameter values will be updated for every row in the data grid view For rowIndex As Integer = 0 To attributeParameterGrid.Rows.Count - 1 Dim row As DataGridViewRow = attributeParameterGrid.Rows(rowIndex) ' Use the first cell value to find the appropriate network attribute Dim netAttribute As INetworkAttribute3 = TryCast(networkDataset.AttributeByName(row.Cells(CInt(AttributeParameterGridColumnType.ATTRIBUTE_NAME)).Value.ToString()), INetworkAttribute3) Dim attributeName As String = netAttribute.Name For paramIndex As Integer = 0 To netAttribute.Parameters.Count - 1 Dim parameter As INetworkAttributeParameter2 = TryCast(netAttribute.Parameters.Element(paramIndex), INetworkAttributeParameter2) Dim paramName As String = parameter.Name Try ' Get the base type for the parameter. For example, if the type is a double array, ' then the base type is double. Dim vt As VARTYPE = DirectCast(parameter.VarType, VARTYPE) Dim vtBase As VARTYPE = DirectCast(CInt(vt) And Not CInt(VARTYPE.VT_ARRAY), VARTYPE) ' Determine if the parameter is an array Dim isArrayType As Boolean = (vtBase <> vt) ' Use the second cell value to find the appropriate parameter If parameter.Name = row.Cells(CInt(AttributeParameterGridColumnType.PARAMETER_NAME)).Value.ToString() Then Dim paramValue As Object = System.DBNull.Value Dim cellValue As Object = row.Cells(CInt(AttributeParameterGridColumnType.PARAMETER_VALUE)).Value If Not System.DBNull.Value.Equals(cellValue) AndAlso cellValue IsNot Nothing Then paramValue = ConvertStringToAttributeParameterValue(cellValue.ToString(), DirectCast(parameter.VarType, VARTYPE), parameter.ParameterUsageType) End If solverSettings.AttributeParameterValue(attributeName, paramName) = paramValue End If Catch e As Exception Throw New Exception(("Invalid attribute parameter value." & vbLf & "Attribute: " & attributeName & vbLf & "Parameter: " & paramName & vbLf & "Error Message: ") + e.Message) End Try Next Next End Sub Private Function ConvertStringToAttributeParameterValue(ByVal paramValueText As String, ByVal paramVarType As VARTYPE, Optional ByVal paramUsageType As esriNetworkAttributeParameterUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTGeneral) As Object Dim paramValue As Object = System.DBNull.Value ' Regardless of the VarType, the parameter value can be DBNull ' Use bitwise arithmetic to determine if this parameter is an array. Dim vtBase As VARTYPE = DirectCast(CInt(paramVarType) And Not CInt(VARTYPE.VT_ARRAY), VARTYPE) Dim isArrayType As Boolean = (vtBase <> paramVarType) If paramValueText <> "" Then ' Restriction parameters are specially handled, due to the conversion between displayed text values ' and stored double values Dim isRestrictionParm As Boolean = (paramUsageType = esriNetworkAttributeParameterUsageType.esriNAPUTRestriction) ' For restriction parameters that have text values in the list, use the associated double values If isRestrictionParm AndAlso m_restrictionParameterValues.ContainsKey(paramValueText) Then paramValue = m_restrictionParameterValues(paramValueText) ' For attribute parameters that are array types, determine the type of array, ' then convert the string to the appropriate array type. ElseIf isArrayType Then Select Case vtBase Case VARTYPE.VT_I2 paramValue = ConvertStringToGenericArray(Of Short)(paramValueText) Exit Select Case VARTYPE.VT_I4 paramValue = ConvertStringToGenericArray(Of Integer)(paramValueText) Exit Select Case VARTYPE.VT_R4 paramValue = ConvertStringToGenericArray(Of Single)(paramValueText) Exit Select Case VARTYPE.VT_R8 paramValue = ConvertStringToGenericArray(Of Double)(paramValueText) Exit Select Case VARTYPE.VT_DATE paramValue = ConvertStringToGenericArray(Of DateTime)(paramValueText) Exit Select Case VARTYPE.VT_BSTR paramValue = ConvertStringToGenericArray(Of String)(paramValueText) Exit Select Case VARTYPE.VT_BOOL paramValue = ConvertStringToGenericArray(Of Boolean)(paramValueText) Exit Select Case Else Throw New Exception("Unexpected array base type") End Select Else ' Simple type ' Conversion for simple types is handled automatically, if the string can be converted to the VARTYPE paramValue = paramValueText End If End If Return paramValue End Function ''' <summary> ''' Update the Impedance control based on the network dataset cost attributes ''' </summary> Private Sub PopulateImpedanceNameControl(ByVal cboImpedance As ComboBox, ByVal networkDataset As INetworkDataset, ByVal impedanceName As String) cboImpedance.Items.Clear() For i As Integer = 0 To networkDataset.AttributeCount - 1 Dim networkAttribute As INetworkAttribute = networkDataset.Attribute(i) If networkAttribute.UsageType = esriNetworkAttributeUsageType.esriNAUTCost Then cboImpedance.Items.Add(networkAttribute.Name) End If Next i If cboImpedance.Items.Count > 0 Then cboImpedance.Text = impedanceName End If End Sub ''' <summary> ''' Update the CheckedListBox control based on the network dataset attributes (checking the ones currently chosen by the solver) ''' </summary> Private Sub PopulateAttributeControl(ByVal chklstBox As CheckedListBox, ByVal networkDataset As INetworkDataset, ByVal strArray As IStringArray, ByVal usageType As esriNetworkAttributeUsageType) chklstBox.Items.Clear() ' Loop through the newtork dataset attributes For i As Integer = 0 To networkDataset.AttributeCount - 1 Dim networkAttribute As INetworkAttribute = networkDataset.Attribute(i) If networkAttribute.UsageType = usageType Then Dim attributeName As String = networkAttribute.Name Dim checkState As CheckState = checkState.Unchecked ' If the attribute is in the strArray, it should be checked For j As Integer = 0 To strArray.Count - 1 If strArray.Element(j) = attributeName Then checkState = checkState.Checked End If Next j ' Add the attribute to the control chklstBox.Items.Add(attributeName, checkState) End If Next i End Sub ''' <summary> ''' Returns the attribute names checked. ''' </summary> Private Function GetCheckedAttributeNamesFromControl(ByVal chklstBox As CheckedListBox) As IStringArray Dim attributeNames As IStringArray = New StrArrayClass() For i As Integer = 0 To chklstBox.CheckedItems.Count - 1 attributeNames.Add(chklstBox.Items(chklstBox.CheckedIndices(i)).ToString()) Next i Return attributeNames End Function ''' <summary> ''' Encapsulates returning an empty string if the object is NULL. ''' </summary> Private Function GetStringFromObject(ByVal value As Object) As String If value Is Nothing Then Return "" Else Return value.ToString() End If End Function Private Sub chkRouteUseStartTime_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles chkRouteUseStartTime.CheckedChanged txtRouteStartTime.Enabled = chkRouteUseStartTime.Checked End Sub Private Sub chkRouteFindBestSequence_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles chkRouteFindBestSequence.CheckedChanged chkRoutePreserveFirstStop.Enabled = chkRouteFindBestSequence.Checked chkRoutePreserveLastStop.Enabled = chkRouteFindBestSequence.Checked End Sub ' Enable/Disable SA Polygon controls if not generating polygons Private Sub cboSAOutputPolygons_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cboSAOutputPolygons.SelectedIndexChanged Dim bOutputPolygons As Boolean = (cboSAOutputPolygons.SelectedIndex > 0) chkSAOverlapPolygons.Enabled = bOutputPolygons chkSASplitPolygonsAtBreaks.Enabled = bOutputPolygons chkSAMergeSimilarPolygonRanges.Enabled = bOutputPolygons chkSATrimOuterPolygon.Enabled = bOutputPolygons txtSATrimPolygonDistance.Enabled = bOutputPolygons cboSATrimPolygonDistanceUnits.Enabled = bOutputPolygons End Sub ' Enable/Disable SA Line controls if not generating lines Private Sub cboSAOutputLines_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cboSAOutputLines.SelectedIndexChanged Dim bOutputLines As Boolean = (cboSAOutputLines.SelectedIndex > 0) chkSAOverlapLines.Enabled = bOutputLines chkSASplitLinesAtBreaks.Enabled = bOutputLines chkSAIncludeSourceInformationOnLines.Enabled = bOutputLines End Sub Private Sub cboLAProblemType_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cboLAProblemType.SelectedIndexChanged If (cboLAProblemType.SelectedIndex = 5) OrElse (cboLAProblemType.SelectedIndex = 2) Then txtLAFacilitiesToLocate.Enabled = False Else txtLAFacilitiesToLocate.Enabled = True End If If cboLAProblemType.SelectedIndex = 5 Then txtLATargetMarketShare.Enabled = True Else txtLATargetMarketShare.Enabled = False End If End Sub Private Sub btnOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOK.Click m_okClicked = True Try ' Get the NAContext and NetworkDataset Dim naContext As INAContext = m_naLayer.Context Dim networkDataset As INetworkDataset = naContext.NetworkDataset ' Update the layer properties based on the items chosen UpdateNALayer(m_naLayer) ' Update the Context so it can respond to changes made to the solver settings Dim gpMessages As IGPMessages = New GPMessagesClass() Dim deNetworkDataset As IDENetworkDataset = TryCast((CType(networkDataset, IDatasetComponent)).DataElement, IDENetworkDataset) naContext.Solver.UpdateContext(naContext, deNetworkDataset, gpMessages) Me.Close() Catch ex As Exception MessageBox.Show("Failed to update the layer. " + ex.Message) End Try End Sub Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click m_okClicked = False Me.Close() End Sub Private Sub btnReset_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnReset.Click Dim networkDataset As INetworkDataset = m_naLayer.Context.NetworkDataset Dim solverSettings As INASolverSettings2 = TryCast(m_naLayer.Context.Solver, INASolverSettings2) ' The parameter values will be reset for every row in the data grid view For rowID As Integer = 0 To attributeParameterGrid.Rows.Count - 1 Dim row As DataGridViewRow = attributeParameterGrid.Rows(rowID) ' Use the first cell value to find the appropriate network attribute Dim netAttribute As INetworkAttribute3 = TryCast(networkDataset.AttributeByName(row.Cells(CInt(AttributeParameterGridColumnType.ATTRIBUTE_NAME)).Value.ToString()), INetworkAttribute3) Dim attributeParameters As IArray = netAttribute.Parameters Dim attributeName As String = netAttribute.Name ' Check every parameter to find the matching one For paramIndex As Integer = 0 To netAttribute.Parameters.Count - 1 Dim attributeParameter As INetworkAttributeParameter2 = TryCast(attributeParameters.Element(paramIndex), INetworkAttributeParameter2) If attributeParameter.Name = row.Cells(CInt(AttributeParameterGridColumnType.PARAMETER_NAME)).Value.ToString() Then solverSettings.AttributeParameterValue(attributeName, attributeParameter.Name) = attributeParameter.DefaultValue UpdateAttributeParameterValueCell(rowID, attributeParameter.DefaultValue, DirectCast(attributeParameter.VarType, VARTYPE), attributeParameter.ParameterUsageType) End If Next Next End Sub End Class End Namespace