com.esri.arcgis.networkanalyst
Class NALocationAllocationSolver

java.lang.Object
  extended by com.esri.arcgis.networkanalyst.NALocationAllocationSolver
All Implemented Interfaces:
com.esri.arcgis.interop.RemoteObjRef, INALocationAllocationSolver, INASolver, INASolverForwardStar, INASolverOutputGeneralization, INASolverSettings, INASolverSettings2, IPersist, IPersistStream, ISupportErrorInfo, Externalizable, Serializable

public class NALocationAllocationSolver
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, INASolver, INASolverSettings, INASolverSettings2, INALocationAllocationSolver, INASolverOutputGeneralization, IPersistStream, ISupportErrorInfo, INASolverForwardStar, Externalizable

Solves various location-allocation problem types

Remarks

NALocationAllocationSolver is a Network Analyst solver that finds the best set of locations to which a set of demand points can be allocated based on the shortest path distances. The goal of picking the best set depends on the type of problem to be solved such as minimize weighted impedance, maximize coverage, etc. It can find the best set of locations minimizing the shortest path on any suitable cost attribute scaled as needed based on the impedance transformation and write the results to an in-memory feature class, which can then be exported to a table. It has options to limit the number of facilities to compute or find the optimal number needed based on a cutoff value.

For example, location-allocation can be used to find the minimum number of facilities needed to cover the maximum number of demand locations within a 4 minute travel time. It can also generate straight-line geometries connecting each facility-demand point pair. The NALocationAllocationSolver honors all of the settings of the INASolverSettings interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface com.esri.arcgis.networkanalyst.INASolver
IID, IIDbfd9e9d5_cd3c_4f1c_b39d_40a4134e4b36, xxDummy
 
Fields inherited from interface com.esri.arcgis.networkanalyst.INASolverSettings2
IID, IIDd3696546_2831_4aa5_a879_acd66e50a938, xxDummy
 
Fields inherited from interface com.esri.arcgis.networkanalyst.INASolverSettings
IID5a8dc105_0e57_45c8_a01d_0188ce7f7b52
 
Constructor Summary
NALocationAllocationSolver()
          Constructs a NALocationAllocationSolver using ArcGIS Engine.
NALocationAllocationSolver(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
NALocationAllocationSolver theNALocationAllocationSolver = (NALocationAllocationSolver) obj;
 
Method Summary
 void bind(INAContext context, IDENetworkDataset network, IGPMessages messages)
          Re-associate the solver with the given network dataset and its schema.
 INAContext createContext(IDENetworkDataset network, String name)
          Creates the analysis context for the solver.
 INetworkForwardStarEx createForwardStar(INAContext context, boolean isForwardTraversal)
          Creates a network dataset forward star which honors the current solver settings as well as any barriers.
 INALayer createLayer(INAContext context)
          Makes a new network analysis layer for the solver context.
 boolean equals(Object o)
          Compare this object with another
 IStringArray getAccumulateAttributeNames()
          The collection of network attribute names to be accumulated with the analysis.
 Object getAttributeParameterValue(String attributeName, String paramName)
          The value to use for an attribute parameter within the network dataset.
 INamedSet getClassDefinitions()
          The inputs and outputs defined by the solver.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 Object getDefaultCutoff()
          Determines the default cutoff beyond which no demand point can be allocated to a facility
 String getDisplayName()
          The display name of the solver.
 String getHierarchyAttributeName()
          The name of the hierarchy attribute to be used in analysis.
 int getHierarchyLevelCount()
          The number of levels in the hierarchy attribute.
 String getImpedanceAttributeName()
          The network attribute name to be used as the impedance attribute in analysis.
 int getImpedanceTransformation()
          Determines which formula will modify the impedance.
 int getMaxValueForHierarchy(int level)
          The maximum value of the hierarchy attribute.
 String getName()
          The name of the solver.
 int getNumberFacilitiesToLocate()
          Determines how many facilities will be present in the solution.
 int getNumTransitionToHierarchy(int toLevel)
          The number of lower level junctions to explore before searching the next hierarchy level.
 Object getOutputGeometryPrecision()
          Specifies the precision of the output geometry after generalization.
 int getOutputGeometryPrecisionUnits()
          Specifies the units of the output geometry precision.
 int getOutputLines()
          Specifies what if any shape geometry will be output
 int getProblemType()
          Specifies which location-allocation problem type to solve.
 IPropertySet getProperties()
          The properties for the solver.
 IStringArray getRestrictionAttributeNames()
          The collection of network attribute names to be used as restrictions with the analysis.
 int getRestrictUTurns()
          Indicates how U-Turns should be restricted in the analysis.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 double getTargetMarketSharePercentage()
          Applies to the target market share problem, the minimum number of facilites will be placed to obtain the target market share.
 double getTransformationParameter()
          Applies to the impedance transformation.
 int getTravelDirection()
          Specifies which direction the network will be traversed
 int hashCode()
          the hashcode for this object
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 boolean isCanAccumulateAttributes()
          Indicates if the solver supports using accumulate network attributes.
 boolean isCanUseHierarchy()
          Indicates if the solver supports using a hierarchy network attribute.
 void isDirty()
          isDirty
 boolean isIgnoreInvalidLocations()
          Indicates if invalid locations should be ignored or raise an error.
 boolean isResetHierarchyRangesOnBind()
          Indicates if the hierarchy ranges will be reset to the network dataset's hierarchy settings when the solver is bound.
 boolean isUseHierarchy()
          Indicates if the hierarchy attribute for the network should be used in analysis.
 void load(IStream pstm)
          load
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void setAccumulateAttributeNamesByRef(IStringArray attributeNames)
          The collection of network attribute names to be accumulated with the analysis.
 void setAttributeParameterValue(String attributeName, String paramName, Object value)
          The value to use for an attribute parameter within the network dataset.
 void setDefaultCutoff(Object value)
          Determines the default cutoff beyond which no demand point can be allocated to a facility
 void setHierarchyAttributeName(String attributeName)
          The name of the hierarchy attribute to be used in analysis.
 void setHierarchyLevelCount(int count)
          The number of levels in the hierarchy attribute.
 void setIgnoreInvalidLocations(boolean ignoreInvalidLocations)
          Indicates if invalid locations should be ignored or raise an error.
 void setImpedanceAttributeName(String attributeName)
          The network attribute name to be used as the impedance attribute in analysis.
 void setImpedanceTransformation(int value)
          Determines which formula will modify the impedance.
 void setMaxValueForHierarchy(int level, int value)
          The maximum value of the hierarchy attribute.
 void setNumberFacilitiesToLocate(int value)
          Determines how many facilities will be present in the solution.
 void setNumTransitionToHierarchy(int toLevel, int value)
          The number of lower level junctions to explore before searching the next hierarchy level.
 void setOutputGeometryPrecision(Object pValue)
          Specifies the precision of the output geometry after generalization.
 void setOutputGeometryPrecisionUnits(int pValue)
          Specifies the units of the output geometry precision.
 void setOutputLines(int value)
          Specifies what if any shape geometry will be output
 void setProblemType(int value)
          Specifies which location-allocation problem type to solve.
 void setResetHierarchyRangesOnBind(boolean value)
          Indicates if the hierarchy ranges will be reset to the network dataset's hierarchy settings when the solver is bound.
 void setRestrictionAttributeNamesByRef(IStringArray attributeName)
          The collection of network attribute names to be used as restrictions with the analysis.
 void setRestrictUTurns(int backtrack)
          Indicates how U-Turns should be restricted in the analysis.
 void setTargetMarketSharePercentage(double value)
          Applies to the target market share problem, the minimum number of facilites will be placed to obtain the target market share.
 void setTransformationParameter(double value)
          Applies to the impedance transformation.
 void setTravelDirection(int value)
          Specifies which direction the network will be traversed
 void setUseHierarchy(boolean useHierarchy)
          Indicates if the hierarchy attribute for the network should be used in analysis.
 boolean solve(INAContext nAContext, IGPMessages messages, ITrackCancel trackCancel)
          Perform the network analysis and construct results.
 void updateContext(INAContext nAContext, IDENetworkDataset network, IGPMessages messages)
          Update the analysis context for the solver.
 boolean updateLayer(INALayer layer)
          Updates the layer and indicates if the layer was updated.
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

NALocationAllocationSolver

public NALocationAllocationSolver()
                           throws IOException,
                                  UnknownHostException
Constructs a NALocationAllocationSolver using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

NALocationAllocationSolver

public NALocationAllocationSolver(Object obj)
                           throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
NALocationAllocationSolver theNALocationAllocationSolver = (NALocationAllocationSolver) obj;

Construct a NALocationAllocationSolver using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to NALocationAllocationSolver.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getName

public String getName()
               throws IOException,
                      AutomationException
The name of the solver.

Specified by:
getName in interface INASolver
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDisplayName

public String getDisplayName()
                      throws IOException,
                             AutomationException
The display name of the solver.

Specified by:
getDisplayName in interface INASolver
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassDefinitions

public INamedSet getClassDefinitions()
                              throws IOException,
                                     AutomationException
The inputs and outputs defined by the solver.

Specified by:
getClassDefinitions in interface INASolver
Returns:
A reference to a com.esri.arcgis.networkanalyst.INamedSet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanUseHierarchy

public boolean isCanUseHierarchy()
                          throws IOException,
                                 AutomationException
Indicates if the solver supports using a hierarchy network attribute.

Specified by:
isCanUseHierarchy in interface INASolver
Returns:
The canUseHierarchy
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanAccumulateAttributes

public boolean isCanAccumulateAttributes()
                                  throws IOException,
                                         AutomationException
Indicates if the solver supports using accumulate network attributes.

Specified by:
isCanAccumulateAttributes in interface INASolver
Returns:
The canAccumulateAttrs
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getProperties

public IPropertySet getProperties()
                           throws IOException,
                                  AutomationException
The properties for the solver.

Specified by:
getProperties in interface INASolver
Returns:
A reference to a com.esri.arcgis.system.IPropertySet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createLayer

public INALayer createLayer(INAContext context)
                     throws IOException,
                            AutomationException
Makes a new network analysis layer for the solver context.

Specified by:
createLayer in interface INASolver
Parameters:
context - A reference to a com.esri.arcgis.networkanalyst.INAContext (in)
Returns:
A reference to a com.esri.arcgis.networkanalyst.INALayer
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

updateLayer

public boolean updateLayer(INALayer layer)
                    throws IOException,
                           AutomationException
Updates the layer and indicates if the layer was updated.

Specified by:
updateLayer in interface INASolver
Parameters:
layer - A reference to a com.esri.arcgis.networkanalyst.INALayer (in)
Returns:
The layerUpdated
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

solve

public boolean solve(INAContext nAContext,
                     IGPMessages messages,
                     ITrackCancel trackCancel)
              throws IOException,
                     AutomationException
Perform the network analysis and construct results.

Specified by:
solve in interface INASolver
Parameters:
nAContext - A reference to a com.esri.arcgis.networkanalyst.INAContext (in)
messages - A reference to a com.esri.arcgis.geodatabase.IGPMessages (in)
trackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
Returns:
The isPartialSolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createContext

public INAContext createContext(IDENetworkDataset network,
                                String name)
                         throws IOException,
                                AutomationException
Creates the analysis context for the solver.

Specified by:
createContext in interface INASolver
Parameters:
network - A reference to a com.esri.arcgis.geodatabase.IDENetworkDataset (in)
name - The name (in)
Returns:
A reference to a com.esri.arcgis.networkanalyst.INAContext
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

updateContext

public void updateContext(INAContext nAContext,
                          IDENetworkDataset network,
                          IGPMessages messages)
                   throws IOException,
                          AutomationException
Update the analysis context for the solver.

Specified by:
updateContext in interface INASolver
Parameters:
nAContext - A reference to a com.esri.arcgis.networkanalyst.INAContext (in)
network - A reference to a com.esri.arcgis.geodatabase.IDENetworkDataset (in)
messages - A reference to a com.esri.arcgis.geodatabase.IGPMessages (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

bind

public void bind(INAContext context,
                 IDENetworkDataset network,
                 IGPMessages messages)
          throws IOException,
                 AutomationException
Re-associate the solver with the given network dataset and its schema.

Specified by:
bind in interface INASolver
Parameters:
context - A reference to a com.esri.arcgis.networkanalyst.INAContext (in)
network - A reference to a com.esri.arcgis.geodatabase.IDENetworkDataset (in)
messages - A reference to a com.esri.arcgis.geodatabase.IGPMessages (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAccumulateAttributeNames

public IStringArray getAccumulateAttributeNames()
                                         throws IOException,
                                                AutomationException
The collection of network attribute names to be accumulated with the analysis.

Specified by:
getAccumulateAttributeNames in interface INASolverSettings
Returns:
A reference to a com.esri.arcgis.system.IStringArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAccumulateAttributeNamesByRef

public void setAccumulateAttributeNamesByRef(IStringArray attributeNames)
                                      throws IOException,
                                             AutomationException
The collection of network attribute names to be accumulated with the analysis.

Specified by:
setAccumulateAttributeNamesByRef in interface INASolverSettings
Parameters:
attributeNames - A reference to a com.esri.arcgis.system.IStringArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setImpedanceAttributeName

public void setImpedanceAttributeName(String attributeName)
                               throws IOException,
                                      AutomationException
The network attribute name to be used as the impedance attribute in analysis.

Specified by:
setImpedanceAttributeName in interface INASolverSettings
Parameters:
attributeName - The attributeName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getImpedanceAttributeName

public String getImpedanceAttributeName()
                                 throws IOException,
                                        AutomationException
The network attribute name to be used as the impedance attribute in analysis.

Specified by:
getImpedanceAttributeName in interface INASolverSettings
Returns:
The attributeName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setIgnoreInvalidLocations

public void setIgnoreInvalidLocations(boolean ignoreInvalidLocations)
                               throws IOException,
                                      AutomationException
Indicates if invalid locations should be ignored or raise an error.

Specified by:
setIgnoreInvalidLocations in interface INASolverSettings
Parameters:
ignoreInvalidLocations - The ignoreInvalidLocations (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isIgnoreInvalidLocations

public boolean isIgnoreInvalidLocations()
                                 throws IOException,
                                        AutomationException
Indicates if invalid locations should be ignored or raise an error.

Specified by:
isIgnoreInvalidLocations in interface INASolverSettings
Returns:
The ignoreInvalidLocations
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRestrictionAttributeNames

public IStringArray getRestrictionAttributeNames()
                                          throws IOException,
                                                 AutomationException
The collection of network attribute names to be used as restrictions with the analysis.

Specified by:
getRestrictionAttributeNames in interface INASolverSettings
Returns:
A reference to a com.esri.arcgis.system.IStringArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRestrictionAttributeNamesByRef

public void setRestrictionAttributeNamesByRef(IStringArray attributeName)
                                       throws IOException,
                                              AutomationException
The collection of network attribute names to be used as restrictions with the analysis.

Specified by:
setRestrictionAttributeNamesByRef in interface INASolverSettings
Parameters:
attributeName - A reference to a com.esri.arcgis.system.IStringArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setRestrictUTurns

public void setRestrictUTurns(int backtrack)
                       throws IOException,
                              AutomationException
Indicates how U-Turns should be restricted in the analysis.

Specified by:
setRestrictUTurns in interface INASolverSettings
Parameters:
backtrack - A com.esri.arcgis.geodatabase.esriNetworkForwardStarBacktrack constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRestrictUTurns

public int getRestrictUTurns()
                      throws IOException,
                             AutomationException
Indicates how U-Turns should be restricted in the analysis.

Specified by:
getRestrictUTurns in interface INASolverSettings
Returns:
A com.esri.arcgis.geodatabase.esriNetworkForwardStarBacktrack constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUseHierarchy

public void setUseHierarchy(boolean useHierarchy)
                     throws IOException,
                            AutomationException
Indicates if the hierarchy attribute for the network should be used in analysis.

Specified by:
setUseHierarchy in interface INASolverSettings
Parameters:
useHierarchy - The useHierarchy (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUseHierarchy

public boolean isUseHierarchy()
                       throws IOException,
                              AutomationException
Indicates if the hierarchy attribute for the network should be used in analysis.

Specified by:
isUseHierarchy in interface INASolverSettings
Returns:
The useHierarchy
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setHierarchyAttributeName

public void setHierarchyAttributeName(String attributeName)
                               throws IOException,
                                      AutomationException
The name of the hierarchy attribute to be used in analysis.

Specified by:
setHierarchyAttributeName in interface INASolverSettings
Parameters:
attributeName - The attributeName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getHierarchyAttributeName

public String getHierarchyAttributeName()
                                 throws IOException,
                                        AutomationException
The name of the hierarchy attribute to be used in analysis.

Specified by:
getHierarchyAttributeName in interface INASolverSettings
Returns:
The attributeName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setHierarchyLevelCount

public void setHierarchyLevelCount(int count)
                            throws IOException,
                                   AutomationException
The number of levels in the hierarchy attribute.

Specified by:
setHierarchyLevelCount in interface INASolverSettings
Parameters:
count - The count (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getHierarchyLevelCount

public int getHierarchyLevelCount()
                           throws IOException,
                                  AutomationException
The number of levels in the hierarchy attribute.

Specified by:
getHierarchyLevelCount in interface INASolverSettings
Returns:
The count
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMaxValueForHierarchy

public void setMaxValueForHierarchy(int level,
                                    int value)
                             throws IOException,
                                    AutomationException
The maximum value of the hierarchy attribute.

Specified by:
setMaxValueForHierarchy in interface INASolverSettings
Parameters:
level - The level (in)
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMaxValueForHierarchy

public int getMaxValueForHierarchy(int level)
                            throws IOException,
                                   AutomationException
The maximum value of the hierarchy attribute.

Specified by:
getMaxValueForHierarchy in interface INASolverSettings
Parameters:
level - The level (in)
Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNumTransitionToHierarchy

public void setNumTransitionToHierarchy(int toLevel,
                                        int value)
                                 throws IOException,
                                        AutomationException
The number of lower level junctions to explore before searching the next hierarchy level.

Specified by:
setNumTransitionToHierarchy in interface INASolverSettings
Parameters:
toLevel - The toLevel (in)
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNumTransitionToHierarchy

public int getNumTransitionToHierarchy(int toLevel)
                                throws IOException,
                                       AutomationException
The number of lower level junctions to explore before searching the next hierarchy level.

Specified by:
getNumTransitionToHierarchy in interface INASolverSettings
Parameters:
toLevel - The toLevel (in)
Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isResetHierarchyRangesOnBind

public boolean isResetHierarchyRangesOnBind()
                                     throws IOException,
                                            AutomationException
Indicates if the hierarchy ranges will be reset to the network dataset's hierarchy settings when the solver is bound.

Specified by:
isResetHierarchyRangesOnBind in interface INASolverSettings2
Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setResetHierarchyRangesOnBind

public void setResetHierarchyRangesOnBind(boolean value)
                                   throws IOException,
                                          AutomationException
Indicates if the hierarchy ranges will be reset to the network dataset's hierarchy settings when the solver is bound.

Specified by:
setResetHierarchyRangesOnBind in interface INASolverSettings2
Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAttributeParameterValue

public Object getAttributeParameterValue(String attributeName,
                                         String paramName)
                                  throws IOException,
                                         AutomationException
The value to use for an attribute parameter within the network dataset.

Specified by:
getAttributeParameterValue in interface INASolverSettings2
Parameters:
attributeName - The attributeName (in)
paramName - The paramName (in)
Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAttributeParameterValue

public void setAttributeParameterValue(String attributeName,
                                       String paramName,
                                       Object value)
                                throws IOException,
                                       AutomationException
The value to use for an attribute parameter within the network dataset.

Specified by:
setAttributeParameterValue in interface INASolverSettings2
Parameters:
attributeName - The attributeName (in)
paramName - The paramName (in)
value - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTravelDirection

public void setTravelDirection(int value)
                        throws IOException,
                               AutomationException
Specifies which direction the network will be traversed

Remarks

TravelDirection can be set to travel from the facility (default) or travel to the facility. This can make a difference in finding the closest facility to a demand point if there are oneway restrictions, turn restrictions, or different travel cost attributes for each side of the street in the network. This property sets and gets the travel direction for the NALocationAllocationSolver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setTravelDirection in interface INALocationAllocationSolver
Parameters:
value - A com.esri.arcgis.networkanalyst.esriNATravelDirection constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTravelDirection

public int getTravelDirection()
                       throws IOException,
                              AutomationException
Specifies which direction the network will be traversed

Remarks

TravelDirection can be set to travel from the facility (default) or travel to the facility. This can make a difference in finding the closest facility to a demand point if there are oneway restrictions, turn restrictions, or different travel cost attributes for each side of the street in the network. This property sets and gets the travel direction for the NALocationAllocationSolver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getTravelDirection in interface INALocationAllocationSolver
Returns:
A com.esri.arcgis.networkanalyst.esriNATravelDirection constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOutputLines

public void setOutputLines(int value)
                    throws IOException,
                           AutomationException
Specifies what if any shape geometry will be output

Remarks

OutputLines specifies the type of lines to be generated by the location-allocation solver. The choice is to generate straight lines, or to generate no lines. This property sets and gets the output line type for the NALocationAllocationSolver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setOutputLines in interface INALocationAllocationSolver
Parameters:
value - A com.esri.arcgis.networkanalyst.esriNAOutputLineType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOutputLines

public int getOutputLines()
                   throws IOException,
                          AutomationException
Specifies what if any shape geometry will be output

Remarks

OutputLines specifies the type of lines to be generated by the location-allocation solver. The choice is to generate straight lines, or to generate no lines. This property sets and gets the output line type for the NALocationAllocationSolver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getOutputLines in interface INALocationAllocationSolver
Returns:
A com.esri.arcgis.networkanalyst.esriNAOutputLineType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setProblemType

public void setProblemType(int value)
                    throws IOException,
                           AutomationException
Specifies which location-allocation problem type to solve.

Remarks

ProblemType specifies the type of problem to be solved by the NALocationAllocationSolver.

The choices for the problem type are available via the enum esriNALocationAllocationProblemType are MinimizeWeightedImpedance, MaximizeCoverage, MaximizeCoverageMinimizeFacilities, MaximizeAttendance, MaximizeMarketShare, and TargetMarketShare. This property sets or gets the problem type for the NALocationAllocationSolver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setProblemType in interface INALocationAllocationSolver
Parameters:
value - A com.esri.arcgis.networkanalyst.esriNALocationAllocationProblemType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getProblemType

public int getProblemType()
                   throws IOException,
                          AutomationException
Specifies which location-allocation problem type to solve.

Remarks

ProblemType specifies the type of problem to be solved by the NALocationAllocationSolver.

The choices for the problem type are available via the enum esriNALocationAllocationProblemType are MinimizeWeightedImpedance, MaximizeCoverage, MaximizeCoverageMinimizeFacilities, MaximizeAttendance, MaximizeMarketShare, and TargetMarketShare. This property sets or gets the problem type for the NALocationAllocationSolver.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getProblemType in interface INALocationAllocationSolver
Returns:
A com.esri.arcgis.networkanalyst.esriNALocationAllocationProblemType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getNumberFacilitiesToLocate

public int getNumberFacilitiesToLocate()
                                throws IOException,
                                       AutomationException
Determines how many facilities will be present in the solution.

Remarks

The NumberFacilitiesToLocate specifies how many facilities to locate from the existing facilities. Solving for 10 facilities will select the 10 best sites from the existing facilities. Facilities with esriNALocationAllocationFacilityType of esriNALAFTRequired will be chosen before facilities with a status of esriNALAFTCandidate are selected. An error is returned if the number of facilities to locate is less than the number of required facilities.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getNumberFacilitiesToLocate in interface INALocationAllocationSolver
Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setNumberFacilitiesToLocate

public void setNumberFacilitiesToLocate(int value)
                                 throws IOException,
                                        AutomationException
Determines how many facilities will be present in the solution.

Remarks

The NumberFacilitiesToLocate specifies how many facilities to locate from the existing facilities. Solving for 10 facilities will select the 10 best sites from the existing facilities. Facilities with esriNALocationAllocationFacilityType of esriNALAFTRequired will be chosen before facilities with a status of esriNALAFTCandidate are selected. An error is returned if the number of facilities to locate is less than the number of required facilities.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setNumberFacilitiesToLocate in interface INALocationAllocationSolver
Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDefaultCutoff

public Object getDefaultCutoff()
                        throws IOException,
                               AutomationException
Determines the default cutoff beyond which no demand point can be allocated to a facility

Remarks

The DefaultCutoff specifies how far a facility should look to allocate demand points. Any facilities further than the default cutoff are not evaluated. Individual demand points can override this setting with their own cutoff length.

The MaximizeAttendance problem type does not require a cutoff. All other problem types require a cutoff to be specified.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getDefaultCutoff in interface INALocationAllocationSolver
Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultCutoff

public void setDefaultCutoff(Object value)
                      throws IOException,
                             AutomationException
Determines the default cutoff beyond which no demand point can be allocated to a facility

Remarks

The DefaultCutoff specifies how far a facility should look to allocate demand points. Any facilities further than the default cutoff are not evaluated. Individual demand points can override this setting with their own cutoff length.

The MaximizeAttendance problem type does not require a cutoff. All other problem types require a cutoff to be specified.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setDefaultCutoff in interface INALocationAllocationSolver
Parameters:
value - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getImpedanceTransformation

public int getImpedanceTransformation()
                               throws IOException,
                                      AutomationException
Determines which formula will modify the impedance.

Remarks

The ImpedanceTransformation specifies the type of scaling to be performed on the results of the OD Cost Matrix computed between the facilities and the demand points. The options for the distance scaling are linear, power and exponential and they can be specified by using the esriNAImpedanceTransformationType enum.

The amount of scaling for each transformation is specified by the TransformationParameter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getImpedanceTransformation in interface INALocationAllocationSolver
Returns:
A com.esri.arcgis.networkanalyst.esriNAImpedanceTransformationType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setImpedanceTransformation

public void setImpedanceTransformation(int value)
                                throws IOException,
                                       AutomationException
Determines which formula will modify the impedance.

Remarks

The ImpedanceTransformation specifies the type of scaling to be performed on the results of the OD Cost Matrix computed between the facilities and the demand points. The options for the distance scaling are linear, power and exponential and they can be specified by using the esriNAImpedanceTransformationType enum.

The amount of scaling for each transformation is specified by the TransformationParameter.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setImpedanceTransformation in interface INALocationAllocationSolver
Parameters:
value - A com.esri.arcgis.networkanalyst.esriNAImpedanceTransformationType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTransformationParameter

public double getTransformationParameter()
                                  throws IOException,
                                         AutomationException
Applies to the impedance transformation.

Remarks

The TransformationParameter specifies the amount of scaling to be done on the distances computed between the facilities and demand points. It type of transformation to be applied is specified by the ImpedanceTransformation.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getTransformationParameter in interface INALocationAllocationSolver
Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTransformationParameter

public void setTransformationParameter(double value)
                                throws IOException,
                                       AutomationException
Applies to the impedance transformation.

Remarks

The TransformationParameter specifies the amount of scaling to be done on the distances computed between the facilities and demand points. It type of transformation to be applied is specified by the ImpedanceTransformation.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setTransformationParameter in interface INALocationAllocationSolver
Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTargetMarketSharePercentage

public double getTargetMarketSharePercentage()
                                      throws IOException,
                                             AutomationException
Applies to the target market share problem, the minimum number of facilites will be placed to obtain the target market share.

Remarks

The TargetMarketSharePercentage specifies the target market share to achieve by the esriNALAPTTargetMarketShare problem type. The Location-Allocation solver finds the minimum number of facilities needed to achieve this market share. The market share is determined by using a Huff (gravity) model. If the target market share can not be achieved then it locates as many facilities to attain the maximum target share possible.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getTargetMarketSharePercentage in interface INALocationAllocationSolver
Returns:
The value
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setTargetMarketSharePercentage

public void setTargetMarketSharePercentage(double value)
                                    throws IOException,
                                           AutomationException
Applies to the target market share problem, the minimum number of facilites will be placed to obtain the target market share.

Remarks

The TargetMarketSharePercentage specifies the target market share to achieve by the esriNALAPTTargetMarketShare problem type. The Location-Allocation solver finds the minimum number of facilities needed to achieve this market share. The market share is determined by using a Huff (gravity) model. If the target market share can not be achieved then it locates as many facilities to attain the maximum target share possible.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setTargetMarketSharePercentage in interface INALocationAllocationSolver
Parameters:
value - The value (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOutputGeometryPrecision

public void setOutputGeometryPrecision(Object pValue)
                                throws IOException,
                                       AutomationException
Specifies the precision of the output geometry after generalization.

Remarks

The precision of the output geometry after generalization.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setOutputGeometryPrecision in interface INASolverOutputGeneralization
Parameters:
pValue - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOutputGeometryPrecision

public Object getOutputGeometryPrecision()
                                  throws IOException,
                                         AutomationException
Specifies the precision of the output geometry after generalization.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getOutputGeometryPrecision in interface INASolverOutputGeneralization
Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setOutputGeometryPrecisionUnits

public void setOutputGeometryPrecisionUnits(int pValue)
                                     throws IOException,
                                            AutomationException
Specifies the units of the output geometry precision.

Remarks

The length units that the OutputGeometryPrecision are in. If unknown, the units are assumed to be the same as the spatial reference of the geometries.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setOutputGeometryPrecisionUnits in interface INASolverOutputGeneralization
Parameters:
pValue - A com.esri.arcgis.system.esriUnits constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOutputGeometryPrecisionUnits

public int getOutputGeometryPrecisionUnits()
                                    throws IOException,
                                           AutomationException
Specifies the units of the output geometry precision.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getOutputGeometryPrecisionUnits in interface INASolverOutputGeneralization
Returns:
A com.esri.arcgis.system.esriUnits constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws IOException,
                    AutomationException
isDirty

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
isDirty in interface IPersistStream
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

load

public void load(IStream pstm)
          throws IOException,
                 AutomationException
load

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
load in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

save

public void save(IStream pstm,
                 int fClearDirty)
          throws IOException,
                 AutomationException
save

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws IOException,
                       AutomationException
getSizeMax

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassID

public void getClassID(GUID[] pClassID)
                throws IOException,
                       AutomationException
getClassID

Description

IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws IOException,
                                       AutomationException
interfaceSupportsErrorInfo

Description

Indicates whether the interface supports IErrorInfo.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Specified by:
interfaceSupportsErrorInfo in interface ISupportErrorInfo
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createForwardStar

public INetworkForwardStarEx createForwardStar(INAContext context,
                                               boolean isForwardTraversal)
                                        throws IOException,
                                               AutomationException
Creates a network dataset forward star which honors the current solver settings as well as any barriers.

Remarks

CreateForwardStar will generate a NetworkForwardStar object prepared with the settings specified on the current solver and the INAContext that is passed in. The returned NetworkForwardStar object will have the INetworkForwardStarEx::IsForwardTraversal value set to match the value of the IsForwardTraversal Boolean that is passed in to CreateForwardStar.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
createForwardStar in interface INASolverForwardStar
Parameters:
context - A reference to a com.esri.arcgis.networkanalyst.INAContext (in)
isForwardTraversal - The isForwardTraversal (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.INetworkForwardStarEx
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException