ThinkGeo.com    |     Documentation    |     Premium Support

Map is not showing all features

Hi,


This might be very simple.


I cannot get the map show all features from the shape file. The shapefile has over 3000 rows of data but it is only show 115 on the map. Is this a setting problem or is there a problem with the shapefile? I just don't want to call the person who gave me the shapefile before comfirming it is the problem with the shapefile.


I have tried using the Map Suite Explorer and also in my only .net application, it is only show about the same amount of dots on the screen. I can easily tell the different between 3000 dots and 115 dots. Is there a property I can set to have it show all the dots. I do get an error when I use Map Suite Explorer to build the index, but it loads fine after I restart Map Suite Explorer, just not showing all the features.


Any idea?


Thanks.



Ok, I set the requireindex to false, and now it’s showing all 3000 dots. 
 I got indexoutofboundsofarray error when I tried to build index for the shapefile. 
 How to work around this?

Hi, Ching 
  
 We can’t recreate your problem. Please send us the data and so we could address it quickly. If the data is big; please send it to support@thinkgeo.com and ask him forward to me. 
  
 Thanks, 
 Khalil

I just sent the shapefile to support@thinkgeo.com. Let me know if you figure out the problem.


Thanks



Ching, 
  
 Sorry for the delay, we have ask the shpefile for our support. Please wait a moment. 
  
 Thanks, 
  
 Johnny

Ching,


Yes, as you already found, there are thousands of points is not valid, there x & y values are huge. Try following code to build a RTree file for those valid features.
 

string shapeFile = @"..\CrashReport_Locations.shp";
   ShapeFileFeatureSource shapeFileFeatureSource = new ShapeFileFeatureSource(shapeFile, ShapeFileReadWriteMode.ReadOnly);
   shapeFileFeatureSource.RequireIndex = false;
   shapeFileFeatureSource.Open();
   Collection<Feature> allFeatuers = shapeFileFeatureSource.GetAllFeatures(ReturningColumnsType.NoColumns);
    shapeFileFeatureSource.Close();
 
    Collection<Feature> validateFeatues = new Collection<Feature>();
   foreach (Feature feature in allFeatuers)
   {
        PointShape pointShape = (PointShape)feature.GetShape();
        if (Math.Abs(pointShape.X) != double.MaxValue && Math.Abs(pointShape.Y) != double.MaxValue)
        {
             validateFeatues.Add(feature);
        }
   }
 
  ShapeFileFeatureLayer.BuildIndexFile(validateFeatues, idxFileName, BuildIndexMode.Rebuild);

 
Any more questions just feel free to let me know.
 
Thanks.
 
Yale

It is working now. The index file built without error.


Thank you for your effort to make this work!


Ching



Ching, 
  
 You are welcome. Please feel free to let us know if you have any problem about our products. 
  
 Thanks, 
 Khalil