Provides access to methods that perform network analysis in a stateless environment within a MapServer.
Product Availability
Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server. Requires Network Analyst Extension.
Members
Description | ||
---|---|---|
GetNALayerNames | Array of network analysis layers of a particular analysis type. | |
GetNetworkDescription | Description of the network dataset associated with the specified network analysis layer. | |
GetSolverParameters | Default solver parameters for the specified network analysis layer. | |
Solve | Perform network analysis based on the input solve parameters. |
CoClasses that implement INAServer
CoClasses and Classes | Description |
---|---|
NAServer | A MapServer object extension for performing network analysis within a stateless environment. |
NAServerIP | NAServer Proxy for IP Messages. |
NAServerLP | NAServer Proxy for LAN messages. |
Remarks
INAServer has been superseded by INAServer2.
[C#]
SanFrancisco_NAServer pNAServer = new SanFrancisco_NAServer();
pNAServer.Url = "http://localhost/ArcGIS/Services/SanFrancisco/MapServer/NAServer";
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
IGISServerConnection pGISServerCon = new GISServerConnection();
pGISServerCon.Connect("localhost");
IServerObjectManager pSOM = pGISServerCon.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco","MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();
ServerConnection conn = new ESRI.ArcGIS.Server.WebControls.ServerConnection("localhost",true);
IServerObjectManager pSOM = conn.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco", "MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();
This example illustrates connecting to an NAServer web service via a web reference and getting the names of the route layers.
// Assumes you've created a web reference to web service named "SanFrancisco"SanFrancisco_NAServer pNAServer = new SanFrancisco_NAServer();
pNAServer.Url = "http://localhost/ArcGIS/Services/SanFrancisco/MapServer/NAServer";
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
This example illustrates connecting to an NAServer within a map server object named "SanFrancisco" and getting the names of the route layers.
// Connect to ArcGIS Server and get the MapServer's ServerContextIGISServerConnection pGISServerCon = new GISServerConnection();
pGISServerCon.Connect("localhost");
IServerObjectManager pSOM = pGISServerCon.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco","MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();
This demonstrates how to connect to an NAServer object using the ADF web controls and getting the names of the route layers.
//Get the ServerContext from the WebControl and get the MapServer's ServerContextServerConnection conn = new ESRI.ArcGIS.Server.WebControls.ServerConnection("localhost",true);
IServerObjectManager pSOM = conn.ServerObjectManager;
IServerContext pServerContext = pSOM.CreateServerContext("SanFrancisco", "MapServer");
// Get the NAServer server object extension
IServerObjectExtensionManager pSOEM = pServerContext.ServerObject as IServerObjectExtensionManager;
INAServer pNAServer = pSOEM.FindExtensionByName("NAServer") as INAServer;
// Use NAServer to get analysis layer names
string[] routeLayerNames = pNAServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer);
// Release the context since you're done with it
pServerContext.ReleaseContext();