ClosestFacilityTask Not Working

921
4
05-08-2013 03:23 PM
JordanParfitt
Occasional Contributor
I'm new to this but my ClosestFacilityTask isn't working. I can't find a working example online so I'm not sure what I'm doing wrong. I don't get an error but it isn't firing off in Fiddler either. Any help?


Thanks in Advance.


    dojo.connect(gsvc, "onBufferComplete", function (geometries) {
    
        var facilities = new esri.tasks.FeatureSet();
        facilities.features = [new esri.Graphic(geometries[0])]; ;

        var params = new esri.tasks.ClosestFacilityParameters();
        params.facilities = facilities;
        params.outSpatialReference = map.spatialReference;

        var closestFacilityTask = new esri.tasks.ClosestFacilityTask("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Network/USA/NAServer/Closest Facility")
        closestFacilityTask.solve(params, function (solveResult) {
            alert('success');
        });
    });

0 Kudos
4 Replies
derekswingley1
Frequent Contributor
If you post a more complete code sample to reproduce your problem we can provide more help. It's hard to say what's going wrong with the code you posted.

Here's a sample that shows how to use the closest facility task:  http://developers.arcgis.com/en/javascript/jssamples/routetask_closest_facility.html
0 Kudos
JordanParfitt
Occasional Contributor
Here is my complete code:

function mapClickHandler(evt) {
    //build query
    var queryTask = new esri.tasks.QueryTask("http://192.168.7.114/arcgis/rest/services/FiberNet/Base/MapServer/0");

    var incidents = new esri.tasks.FeatureSet();
    incidents.features = [new esri.Graphic(new esri.geometry.Point(evt.mapPoint.x, evt.mapPoint.y, map.spatialReference))];

    //build query filter
    var query = new esri.tasks.Query();
    query.where = "1=1";
    query.returnGeometry = true;
    query.outFields = ["*"];

    queryTask.execute(query, function (queryResult) {
        var facilities = new esri.tasks.FeatureSet();
        facilities.features.push(new esri.Graphic(new esri.geometry.Point(-13625960, 4549921, map.spatialReference)));
       //facilities.features = queryResult.features;

        var params = new esri.tasks.ClosestFacilityParameters();
        params.defaultCutoff = 3.0;
        params.returnIncidents = false;
        params.returnRoutes = true;
        params.returnDirections = true;
        params.facilities = facilities;
        params.outSpatialReference = map.spatialReference;

        params.incidents = incidents;

        //solve 
        closestFacilityTask.solve(params, function (solveResult) {
            var directions = solveResult.directions;
            dojo.forEach(solveResult.routes, function (route, index) {
                //build an array of route info
                var attr = dojo.map(solveResult.directions[index].features, function (feature) {
                    return feature.attributes.text;
                });
                routeGraphicLayer.add(route);
                dojo.byId("directionsDiv").innerHTML = "Hover over the route to view directions";
            });

        });
    });
}      


It works when I use:

        facilities.features.push(new esri.Graphic(new esri.geometry.Point(-13625960, 4549921, map.spatialReference)));

It breaks when I use:

       facilities.features = queryResult.features;

I'm not getting an error... the task never even fires off in fiddler. I've tried looping through and adding them to the array manually it still never fires
0 Kudos
JordanParfitt
Occasional Contributor
It breaks when I upload more than 10 facilities.
0 Kudos
JordanParfitt
Occasional Contributor
Does ArcGIS publish a 10.1 service I can try?
0 Kudos