ThinkGeo.com    |     Documentation    |     Premium Support

QueryTools Null until I zoom in and out

 Hello!


Hope all is well in thinkGeo land!


I am running into a pecular error...  When using :



 Collection<Feature> features = shapeFileFeatureLayer.QueryTools.GetFeaturesWithin(e.CurrentExtent, ReturningColumnsType.AllColumns);

QueryTools throws an error saying it is null and doesn't collect any of the information from the table in the shapefile selected.  Once I zoom in and back out it works ??? It doesn't do this all the time either, only sometimes.


 


Thanks in adavnce,


Kevin



Kevin, 
  
 Can you provide a simple sample to us so that we can reproduce your problem properly? Currently, we cannot reproduce your problem on my side, I guessed maybe the problem is from your shape file, maybe there are several invalid records. So please provide your sample with the shape files. 
  
 Thanks, 
  
 Scott,

 Hey Scott,


 
Thanks for helping with this issue!
 
The code I am using looks like this: 
 
 

protected void Map1_ExtentChanged(object sender, ExtentChangedEventArgs e)
        {
            string shapePath;
            string shapePathName;
            string shapeFileName;
            shapePath = "~/img/LevelOne/";
         
            string CityName = "";
            LayerOverlay layerOverlay = (LayerOverlay)Map1.CustomOverlays["Shape Overlay"];
            ShapeFileFeatureLayer shapeFileFeatureLayer = (ShapeFileFeatureLayer)layerOverlay.Layers[0];
           
            shapeFileFeatureLayer.FeatureSource.Open();
            
            Collection<Feature> features = shapeFileFeatureLayer.QueryTools.GetFeaturesWithin(e.CurrentExtent, ReturningColumnsType.AllColumns);
                   
            shapeFileFeatureLayer.FeatureSource.Close();

                    for (int x = 0; x < features.Count(); x++)
                    {
                        CityName = CityName + features[x].ColumnValues["MapPage"] + ", ";
                    }
             
                //visibleLabel.Text = CityName;
                CityName = CityName.ToLower();
                if (CityName.ToLower().Contains("ab") && CityName.ToLower().Contains("bc") && CityName.ToLower().Contains("sk"))
                {
                    string[] filePaths = Directory.GetFiles(MapPath(shapePath));
                    string[] imagePath = RandomPermutation(filePaths);
                    int i = 0;
                    foreach (string arrayLine in imagePath)
                    {
                        string[] temp = arrayLine.Split('\\');
                        imagePath[i++] = temp[10];
                    }

                    adImage.ImageUrl = shapePath + imagePath[0];
                    adImage2.ImageUrl = shapePath + imagePath[1];
                    adImage3.ImageUrl = shapePath + imagePath[2];

                    adImage.Visible = true;
                    adImage2.Visible = true;
                    adImage3.Visible = true;
                                   
                }
                else if(CityName.ToLower().Contains("ab") || CityName.ToLower().Contains("bc") || CityName.ToLower().Contains("sk"))
                {
                    if (CityName.ToLower().Contains("ab"))
                    {
                        adImage.Visible = false;
                        adImage2.Visible = false;
                        adImage3.Visible = false;
                    }
                    else if (CityName.ToLower().Contains("sk"))
                    {
                        adImage.Visible = false;
                        adImage2.Visible = false;
                        adImage3.Visible = false;
                    }
                    else if (CityName.ToLower().Contains("bc"))
                    {
                        adImage.Visible = false;
                        adImage2.Visible = false;
                        adImage3.Visible = false;
                    }

                }
            }

And you can get the shapefile here:
 
files.me.com/kevin.riddell/d8m6hx 
 
This shapefile was put at the top " .Layers[0] " of 128 other layer files but I don't think that would create a problem... I've also tried with caching on and off cleared it several times....Deleted the .idx / ids files and it works intermittently ??? 
 
Let me know what you think!
 
Cheers,
Kevin

Kevin, 
  
 I would like to ask you which version did you use? I just tested your sample code with your shape file, it works fine, the GetFeaturesWithin method worked fine and returned valid results. I tried zoom in, zoom out and pan, but I still cannot reproduce your problem exactly, so: 
  
 1, Please make sure the version what you used is the latest version, if not, please get the latest version to try again, the latest version number is 4.5.164.0. 
  
 2, If you still can reproduce the problem, please tell me your test steps? How to test and operate it so that the error will be occurred. 
  
 Thanks, 
  
 Scott,


 Hey Scott, 
  
 Thanks for checking… I’ve been playing allot with the code and it works intermittently.  These are the worst kind of bugs cause I have no idea what’s going on.  But I do have some follow up questions :) 
  
 I am incorporating ajax and update panels and cache.  Would any of these have adverse effects and cause this function: 
  
 Collection<Feature> features = shapeFileFeatureLayer.QueryTools.GetFeaturesWithin(e.CurrentExtent, ReturningColumnsType.AllColumns); 
  
 to fail ??? 
  
 I’ve tried turning it all off and all on.  I’ve also tried a mash up of different things. 
  
 Ill upgrade to the latest version and let me know what you think! 
  
 Thanks a bunch, 
 Kev 


Kevin, 
  
 Thanks for your responses, actually, I tested the sample what you provided so many times, I didn’t encounter any exceptions, I tried to reproduce it intermittently, but I cannot. About your question, the ajax and updated panels will not affect and cause the function GetFeaturesWithin. Also the update panel will not affect any other server-side events of map control, so I believe your error is from the other things.  
  
 Now please upgrade to the latest version and try again, this period of time we fixed several bugs and added some enhancements for the May public release, 
  
 Thanks, 
  
 Scott, 
  


Hey Scott, 
  
 Thanks for the help!  Upgrading to the newest version did fix the problem.   
  
 Cheers, 
 Kevin

Kevin, 
  
 You are welcome, if you have any more questions please let us know again, 
  
 Thanks, 
  
 Scott,