Find near features REST SOE


Purpose
This sample illustrates the basic framework for creating a server object extension (SOE) that will be hosted as an ArcGIS Server REST SOE. The SOE extends the functionality of a map service with a basic geospatial operation—namely the ability to find features in all feature layers via a user-defined location and distance.

All the information needed to deploy the SOE is included in this sample encapsulated in a .soe file. Deploying the SOE from this file does not require you to open Visual Studio. However, you can open the Visual Studio solution included with this sample to explore the coding patterns used in the SOE.
The instructions below assume that you have installed the developer kit on the machine running ArcGIS Server Manager. If you installed the developer kit on some other machine, you'll need to copy the .soe file to the machine running Manager, or otherwise make the .soe file visible to Manager by placing it in a shared folder.

How to use

See How to use ArcGIS samples for help on compiling, setting up the debugger, and running the sample. If the sample has associated data, you will find that the sample's zip file includes a "data" folder alongside the language folders. However, you will need to update the sample to point to the location of the data once you have extracted all the files.

Deploy the SOE
  1. Log in to ArcGIS Server Manager and click Site.
  2. Click Extensions.
  3. Click Add Extension.
  4. Click Browse and navigate to the .soe file, which by default is located at <ArcGIS DeveloperKit install location>\Samples\ArcObjectsNet\ServerFindNearRESTSOE\CSharp\FindNearFeaturesRestSOE\bin\Debug\NetFindNearFeaturesRESTSOE.soe.
  5. Click OK.

Enable the SOE on a service
  1. Start ArcMap and click File > Open.
  2. Browse to or type the location of USA.mxd, which is located in <ArcGIS Developer Kit Location>\Samples\data\Usa.
  3. Click File > Share As > Service.
  4. Click Save a service definition and click Next.
  5. Choose "No available connection" and check "Include data in service definition when publishing".
  6. Change the Server type to ArcGIS Server.
  7. Leave the Service name as USA and click Next.
  8. Choose a location where you want to save the service definition, then click Continue.
  9. Click Stage to create the service definition. In the success message, note the path of your service definition (.sd).
  10. Copy the USA.sd file to the machine running ArcGIS Server Manager.
  11. On the machine running ArcGIS Server Manager, log in to Manager and click Services.
  12. If necessary, click the Manage Services tab.
  13. Click Publish Service.
  14. Click Browse, browse to the location of USA.sd on the local machine, and click Open. Then click Next.
  15. Accept the default properties for the service by clicking Next.
  16. Click Publish. This creates the USA map service.
  17. On the Services tab of Manager, select the USA map service, then select Capabilities. In the list of available capabilities, find ".NET Find Near Features REST SOE" and check the box to enable it. If there is a list of available operations allowed, select all of them.
  18. Click Save, then click Restart to restart the service.

Test the SOE in the ArcGIS Server Services Directory
  1. Open a browser and navigate to the root REST services endpoint for ArcGIS Server (for example: http://<server name>:6080/arcgis/rest/services). You'll see a list of services, including the USA map service created in the previous section.
  2. Click the USA map service created in the previous section and scroll to the bottom of the map service description page. The section titled Supported Extensions includes the SOE NetFindNearFeaturesRestSOE.
  3. Click the SOE name. The REST SOE description page displays a list of layers in the map service.
  4. Click a layer to display a layer description and a list of supported operations. One supported operation is listed: findNearFeatures.
  5. Click the operation to display the interactive dialog box to define a location and distance to use when searching for features in this layer.
  6. Define a location in ArcGIS JavaScript Object Notation (JSON) format; for example: {x:-112,y:35}. Do not include spatial reference in the location JSON.
  7. Define a distance in map units; for example: 1.
  8. Click either the findNearFeatures (GET) or findNearFeatures (POST) button to initiate the request. A response containing the features and attributes for features within the search distance is returned.

NetFindNearFeaturesRestSOE\NetFindNearFeaturesRestSOE.cs Core SOE implementation for REST Web service
NetFindNearFeaturesRestSOE\CustomLayerInfo.cs Custom layer type that describes feature layers in a map service host
FindNearFeaturesRestSOE\bin\Debug\NetFindNearFeaturesRESTSOE.soe The deployable SOE file
Download the C# files

Download the files for all languages