com.esri.arcgis.networkanalyst
Class NALocatorFeatureAgent

java.lang.Object
  extended by com.esri.arcgis.networkanalyst.NALocatorFeatureAgent
All Implemented Interfaces:
com.esri.arcgis.interop.RemoteObjRef, INALocatorAgent, INALocatorAgent2, INALocatorFeatureAgent, INALocatorFeatureAgent2, IClone, IPersist, IPersistStream, IXMLSerialize, Externalizable, Serializable

public class NALocatorFeatureAgent
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, INALocatorFeatureAgent, INALocatorFeatureAgent2, INALocatorAgent, INALocatorAgent2, IPersistStream, IClone, IXMLSerialize, Externalizable

Finds network feature locations for analysis.

Remarks

The NALocatorFeatureAgent object performs spatial searches on features to find network locations.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
NALocatorFeatureAgent()
          Constructs a NALocatorFeatureAgent using ArcGIS Engine.
NALocatorFeatureAgent(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
NALocatorFeatureAgent theNALocatorFeatureAgent = (NALocatorFeatureAgent) obj;
 
Method Summary
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 void bind(INetworkDataset pNetworkDataset, IGPMessages pGPMessages)
          Re-associate the locator with the given network dataset and its schema.
 void deserialize(IXMLSerializeData data)
          Deserializes an object from XML.
 boolean equals(Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 String getFullWhereClause()
          The full where clause including the subtype predicate in the UseSubtype case.
 String getName()
          The name of the locator agent.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 int getSnapType()
          The method of snapping used.
 String getSourceName()
          The network source name.
 int getSubtypeCode()
          The subtype to be used to locate features.
 String getWhereClause()
          The where clause to filter candidate locations not including the subtype predicate in the UseSubtype case.
 int hashCode()
          the hashcode for this object
 void isDirty()
          isDirty
 boolean isEqual(IClone other)
          Returns TRUE when the receiver and other have the same properties.
 boolean isIdentical(IClone other)
          Returns TRUE when the receiver and other are the same object.
 boolean isUseSubtype()
          Indicates if subtypes should be used to locate features.
 void load(IStream pstm)
          load
 void queryGeometry(INALocation location, IGeometry[] geometry)
          The geometry for the given network location.
 void queryLocationByPoint(IPoint point, double tolerance, INALocation[] location, IPoint[] outPoint, double[] distanceFromPoint)
          Find a network location from a point.
 void queryLocationByRow(IRow row, double tolerance, INALocation[] location, double[] distanceFromPoint)
          Find a network location from a row.
 void queryPoint(INALocation location, IPoint[] point)
          The point for the given network location.
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void serialize(IXMLSerializeData data)
          Serializes an object to XML.
 void setSnapType(int pHitPartType)
          The method of snapping used.
 void setSourceName(String sourceName)
          The network source name.
 void setSubtypeCode(int subtypeCode)
          The subtype to be used to locate features.
 void setUseSubtype(boolean useSubtype)
          Indicates if subtypes should be used to locate features.
 void setWhereClause(String whereClause)
          The where clause to filter candidate locations not including the subtype predicate in the UseSubtype case.
 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

NALocatorFeatureAgent

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

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

NALocatorFeatureAgent

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

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

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

setSourceName

public void setSourceName(String sourceName)
                   throws IOException,
                          AutomationException
The network source name.

Remarks

The SourceName is the feature class name to be searched.

Product Availability

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

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

getSourceName

public String getSourceName()
                     throws IOException,
                            AutomationException
The network source name.

Remarks

The SourceName is the feature class name to be searched.

Product Availability

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

Specified by:
getSourceName in interface INALocatorFeatureAgent
Returns:
The sourceName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSnapType

public void setSnapType(int pHitPartType)
                 throws IOException,
                        AutomationException
The method of snapping used.

Remarks

The SnapType property determines where along the feature the location will be found. You can snap to endpoints or vertices (junctions) or anywhere along the line (edges).

Product Availability

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

Specified by:
setSnapType in interface INALocatorFeatureAgent
Parameters:
pHitPartType - A com.esri.arcgis.geometry.esriGeometryHitPartType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSnapType

public int getSnapType()
                throws IOException,
                       AutomationException
The method of snapping used.

Remarks

The SnapType property determines where along the feature the location will be found. You can snap to endpoints or vertices (junctions) or anywhere along the line (edges).

Product Availability

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

Specified by:
getSnapType in interface INALocatorFeatureAgent
Returns:
A com.esri.arcgis.geometry.esriGeometryHitPartType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUseSubtype

public void setUseSubtype(boolean useSubtype)
                   throws IOException,
                          AutomationException
Indicates if subtypes should be used to locate features.

Remarks

Setting the UseSubtype property to true allows you to snap only to features of a specific subtype. It is used in conjunction with the SubtypeCode property which specifies which subtype to snap to.

Product Availability

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

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

isUseSubtype

public boolean isUseSubtype()
                     throws IOException,
                            AutomationException
Indicates if subtypes should be used to locate features.

Remarks

Setting the UseSubtype property to true allows you to snap only to features of a specific subtype. It is used in conjunction with the SubtypeCode property which specifies which subtype to snap to.

Product Availability

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

Specified by:
isUseSubtype in interface INALocatorFeatureAgent
Returns:
The useSubtype
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSubtypeCode

public void setSubtypeCode(int subtypeCode)
                    throws IOException,
                           AutomationException
The subtype to be used to locate features.

Remarks

The SubtypeCode property determines which subtype to snap to when the associated property UseSubtype is true.

Product Availability

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

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

getSubtypeCode

public int getSubtypeCode()
                   throws IOException,
                          AutomationException
The subtype to be used to locate features.

Remarks

The SubtypeCode property determines which subtype to snap to when the associated property UseSubtype is true.

Product Availability

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

Specified by:
getSubtypeCode in interface INALocatorFeatureAgent
Returns:
The subtypeCode
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setWhereClause

public void setWhereClause(String whereClause)
                    throws IOException,
                           AutomationException
The where clause to filter candidate locations not including the subtype predicate in the UseSubtype case.

Remarks

The WhereClause specifies the user-defined portion of the where clause on the spatial filter that is used to constrain the features searched within the source feature class when finding the closest network location.

This is useful if you don't want to locate on features that may be restricted or otherwise undesirable to search on. For example, if you are using StreetMap network data, streets with a Speed of 1 are considered restricted. Thus, you may want to specify a where clause of "SPEED > 1" to ensure there streets are not considered when finding network locations.

Product Availability

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

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

getWhereClause

public String getWhereClause()
                      throws IOException,
                             AutomationException
The where clause to filter candidate locations not including the subtype predicate in the UseSubtype case.

Remarks

The WhereClause specifies the user-defined portion of the where clause on the spatial filter that is used to constrain the features searched within the source feature class when finding the closest network location.

This is useful if you don't want to locate on features that may be restricted or otherwise undesirable to search on. For example, if you are using StreetMap network data, streets with a Speed of 1 are considered restricted. Thus, you may want to specify a where clause of "SPEED > 1" to ensure there streets are not considered when finding network locations.

Product Availability

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

Specified by:
getWhereClause in interface INALocatorFeatureAgent2
Returns:
The whereClause
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFullWhereClause

public String getFullWhereClause()
                          throws IOException,
                                 AutomationException
The full where clause including the subtype predicate in the UseSubtype case.

Remarks

The FullWhereClause returns the where clause on the spatial filter that is used to constrain the features searched within the source feature class when finding the closest network location.

It is a concatenation of the WhereClause property and the subtype constraint set by the UseSubtype and SubytpeCode properties.

Product Availability

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

Specified by:
getFullWhereClause in interface INALocatorFeatureAgent2
Returns:
The fullWhereClause
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getName

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

Remarks

The Name of the locator agent.

Product Availability

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

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

queryLocationByPoint

public void queryLocationByPoint(IPoint point,
                                 double tolerance,
                                 INALocation[] location,
                                 IPoint[] outPoint,
                                 double[] distanceFromPoint)
                          throws IOException,
                                 AutomationException
Find a network location from a point.

Remarks

QueryLocationByPoint searches for network locations based upon an input point. The corresponding NALocation, the point where the location was found, and the distance from the input point to the source feature found are all returned.

When the NALocatorFeatureAgent is used, the distance returned is from the point to the feature, not from the point to the actual network location on the feature. It is important to know the distance to the feature as a whole because this is the feature on which you want to locate the endpoint/midpoint. If you need to determine the distance from the input point to the actual network location point, use IProximityOperator::ReturnDistance between the input point and the output point.

The NALocatorLocationFieldsAgent should not be used with this method.

Product Availability

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

Specified by:
queryLocationByPoint in interface INALocatorAgent
Parameters:
point - A reference to a com.esri.arcgis.geometry.IPoint (in)
tolerance - The tolerance (in)
location - A reference to a com.esri.arcgis.networkanalyst.INALocation (in/out: use single element array)
outPoint - A reference to a com.esri.arcgis.geometry.IPoint (in/out: use single element array)
distanceFromPoint - The distanceFromPoint (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLocationByRow

public void queryLocationByRow(IRow row,
                               double tolerance,
                               INALocation[] location,
                               double[] distanceFromPoint)
                        throws IOException,
                               AutomationException
Find a network location from a row.

Remarks

QueryLocationByRow searches for network locations based upon the inbound Row. The result is returned as an INALocation.

For a NALocatorFeatureAgent, if the row is a feature, QueryLocationByRow uses the feature geometry to populate the INALocation.

For a NALocatorLocationFieldsAgent, QueryLocationByRow uses the field names specified on INALocatorLocationFieldsAgent to populate the INALocation.

Product Availability

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

Specified by:
queryLocationByRow in interface INALocatorAgent
Parameters:
row - A reference to a com.esri.arcgis.geodatabase.IRow (in)
tolerance - The tolerance (in)
location - A reference to a com.esri.arcgis.networkanalyst.INALocation (in/out: use single element array)
distanceFromPoint - The distanceFromPoint (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryPoint

public void queryPoint(INALocation location,
                       IPoint[] point)
                throws IOException,
                       AutomationException
The point for the given network location.

Remarks

The result of calling QueryLocationByPoint or QueryLocationByRow is an INALocation. Use QueryPoint to get the Point that represents this location.

Product Availability

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

Specified by:
queryPoint in interface INALocatorAgent
Parameters:
location - A reference to a com.esri.arcgis.networkanalyst.INALocation (in)
point - A reference to a com.esri.arcgis.geometry.IPoint (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

bind

public void bind(INetworkDataset pNetworkDataset,
                 IGPMessages pGPMessages)
          throws IOException,
                 AutomationException
Re-associate the locator with the given network dataset and its schema.

Remarks

Bind re-associates the NALocator with a network dataset. This method must be called before calling any of the Query functions.

Product Availability

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

Specified by:
bind in interface INALocatorAgent
Parameters:
pNetworkDataset - A reference to a com.esri.arcgis.geodatabase.INetworkDataset (in)
pGPMessages - 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.

queryGeometry

public void queryGeometry(INALocation location,
                          IGeometry[] geometry)
                   throws IOException,
                          AutomationException
The geometry for the given network location.

Remarks

QueryGeometry is used to get the source feature geometry of the network location. For example, if a network location is referencing a position along a line feature, the line feature's Polyline geometry will be returned by this method.

The INALocation must already be located, in which case INALocation::IsLocated returns true.

When QueryGeometry is called from a NALocatorFeatureAgent class, the INALocation::SourceID must match the SourceID of the NALocatorFeatureAgent.

Product Availability

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

Specified by:
queryGeometry in interface INALocatorAgent2
Parameters:
location - A reference to a com.esri.arcgis.networkanalyst.INALocation (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in/out: use single element array)
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.

esri_clone

public IClone esri_clone()
                  throws IOException,
                         AutomationException
Clones the receiver and assigns the result to *clone.

Product Availability

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

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

assign

public void assign(IClone src)
            throws IOException,
                   AutomationException
Assigns the properties of src to the receiver.

Description

Use Assign method to assign the properties of source object to receiver object. Both objects need to have the same CLSIDs. Both source and receiver objects need to be instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

isEqual

public boolean isEqual(IClone other)
                throws IOException,
                       AutomationException
Returns TRUE when the receiver and other have the same properties.

Description

IsEqual returns True if the receiver and the source have the same properties. Note, this does not imply that the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEqual in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The equal
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isIdentical

public boolean isIdentical(IClone other)
                    throws IOException,
                           AutomationException
Returns TRUE when the receiver and other are the same object.

Description

IsIdentical returns true if the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isIdentical in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The identical
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

serialize

public void serialize(IXMLSerializeData data)
               throws IOException,
                      AutomationException
Serializes an object to XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

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

deserialize

public void deserialize(IXMLSerializeData data)
                 throws IOException,
                        AutomationException
Deserializes an object from XML.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
deserialize in interface IXMLSerialize
Parameters:
data - A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
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