Select to view content in your preferred language

focus problem

782
0
11-22-2011 10:38 AM
TonyRopson
Emerging Contributor
Once the query task has been completed I am attempting to get the map to focus to a particular area which is at the 0 item in the parnums array.   However that map appears to be focusing other elements in that array (I would say about 1 in 5 times give or take) and I am not sure why. 

 <link href="http://serverapi.arcgisonline.com/jsapi/arcgis/2.5/js/dojo/dijit/themes/claro/claro.css" rel="stylesheet" type="text/css" >
    <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.5"></script>
    <script type="text/javascript">
        dojo.require("esri.tasks.query");
        dojo.require("esri.map");
        var featureCheck = 0;
        var featholding = new Array();
        var parnums = new Array();
        var j = "11006-80,11014-587,11006-80,11006-100,11014-665.B,11006-95.02,11006-78.A,11014-640,11006-107.B,11006-80.A,11006-78.A,11006-100,11006-95.01,11006-80,11006-80.A,11006-88.01,11006-101,11014-645.4,11006-81,11006-96,11006-136.1,11014-649.03,11006-75.03,11006-75.03,11006-162.01,11006-75.02,11006-103.A,11014-645.3,";
        parnums = j.split(",");
        parnums.sort();
        //this was added to make sure this parcel is the first one in the array
        parnums.unshift("11006-80")
        parnums = eliminateDuplicates(parnums);
     

          function init() {
            map = new esri.Map("mapDiv");
            var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://lrs.co.columbia.wi.us/ArcGIS/rest/services/LRS/TaxParcels_Parcels/MapServer")
            map.addLayer(layer);

            runQuery();
        }

        function runQuery() {
            
            
            for (j = 0; j < parnums.length; j++) {
                queryTask = new esri.tasks.QueryTask("http://lrs.co.columbia.wi.us/ArcGIS/rest/services/LRS/TaxParcels_Parcels/MapServer/1");
                query = new esri.tasks.Query();
                query.returnGeometry = true;
                query.text = parnums
                queryTask.execute(query, gettingResults);
            

            }

           
        }

        function gettingResults(resultFeatures) {
          
       featholding.push(resultFeatures)
            
            
                     //will not show results until it has gone through the array
            if (featholding.length > 0 && featholding.length == parnums.length - 1) {

                showResults();
                // zoom to the feature
                map.setExtent(esri.graphicsExtent(featholding[featureCheck].features).expand(5.2), true);
               
                 }
        }

        function showResults() {
            // console.log('result: ', resultFeatures);
           map.graphics.clear();
           //this starts at 1 so the first parcel will not be hi-lighted per customer
            for (j = 1; j < featholding.length; j++) {
                var resultFeatures1 = featholding
                var symbol = new esri.symbol.SimpleFillSymbol().setColor(new dojo.Color([255, 255, 0, 0.15]));
                for (var i = 0, il = resultFeatures1.features.length; i < il; i++) {
                    var graphic = resultFeatures1.features;
                   // this was added  to make sure it focusses on the first parcel
                   if (graphic.attributes.GIS_PIN == "11006-80"){
                        featureCheck = i;
                    }
                    graphic.setSymbol(symbol);
                    map.graphics.add(graphic);
                   
                }

            }

        }

        function eliminateDuplicates(arr) {
            var i,
      len = arr.length,
      out = [],
      obj = {};

            for (i = 0; i < len; i++) {
                obj[arr] = 0;
            }
            for (i in obj) {
                out.push(i);
            }
            return out;
        } 

       
       
        dojo.ready(init);
0 Kudos
0 Replies