ThinkGeo.com    |     Documentation    |     Premium Support

Performance of V7

MapSuite Team,



In V6 I had a concern about performance.  However, V7 has greatly improved performance.  I can actually notice that the order of drawing of the layers is different and much faster.  My application has 25 shape file layers(within two Overlays) and 16 MrSid’s (within their own Overlay).  The final configuration will have approximately 50+ shape file layers.



Other issues that I had also appear to have been resolved.  For example, the real-time updating of an InMemoryFeatureLayer, used for AVL, had issues with committing updates, so far I do not see any of those issues.



Thanks for releasing V7.



Regards,

Dennis


That’s great, Dennis. Thanks for your feedback which always makes our products better and better. 
  
 Johnny

Im glad you have a good performance. I have 6 shapefiles of all the country. The big one has 2,000,000 blocks. But is very very slow. I have an overlay for each file in order to show or hide the information.


 


Ive already done the grid separation recommended on the performance guide. But im writing to you in order to see if I can get an adviced or what do you consider in your experience would be the initial steps in order to have a good performance.


 


Thank you very much I really appreciate your help



Hi Rodrigo, 
  
 For get better performance, the common solution is build index file and choose multiply tile mode then open tile cache. 
  
 How you did grid separation, does that works for you? 
  
 Regards, 
  
 Don

Thank you very much, ive already make the grid, the index and the open cache. ive already have a better performance based on your suggestions. The thing here is that when user is drawing a line between different points the map refresh on every line and is imposible to work like this.



Please…



enter on this page and then “zoom in” until you see Green points, this points are stores. After you see them on the map, please clic on every store first one and 1 or 2 secs after the second one. The system will start drawing a line between the stores. And you will note that on every clic the map refresh making difficult to work.



What can i do?



54.201.164.148/IDM/


Hi Rodrigo, 
  
 I noticeted that, I have two questions about your app. 
  
 1. Are you using wpf edition or web edition? 
 2. How you implement your red line, and how you refresh your map after line added? 
  
 Regards, 
  
 Don

Im using web edition and this is the code.


  protected void Map1_Click(object sender, MapClickedEventArgs e)
        {
             
            LayerOverlay Overlay = (LayerOverlay) Map1.CustomOverlays["Abarrotes"];
            MsSql2008FeatureLayer AbarrotesLayer = (MsSql2008FeatureLayer)(Overlay.Layers["Abarrotes"]);
            AbarrotesLayer.Open();
             
            System.Collections.ObjectModel.Collection<Feature> selectedFeatures = AbarrotesLayer.QueryTools.GetFeaturesNearestTo(e.Position,GeographyUnit.Meter,1,new string[] { "nom_estab""direccion""colonia" });
           AbarrotesLayer.Close();
           ruta(selectedFeatures[0].Id);
}
 
 
 protected void ruta(string id)
        {
            corrida Ruta = (corrida)Session["Ruta"];
 
            Tienda tienda1;
            LayerOverlay Overlay = (LayerOverlay)Map1.CustomOverlays["Abarrotes"];
            MsSql2008FeatureLayer abarrotes = (MsSql2008FeatureLayer)Overlay.Layers["Abarrotes"];
            tienda1 = new Tienda(abarrotes, id);
            Ruta.agrega(tienda1, 1);
            drawLine(Ruta);
        }
 
 
  protected void drawLine(corrida rutaADibujar)
        {
 
 
            Vertex vertice;
            LineShape ruta = new LineShape();
 
 
 
            foreach (Parada parada in rutaADibujar.Paradas)
            {
                vertice = new Vertex(parada.tienda.posicionX, parada.tienda.posicionY);
                ruta.Vertices.Add(vertice);
            }
 
            if (rutaADibujar.Paradas.Count > 1)
            {
 
                Feature feature = new Feature(ruta);
                LayerOverlay Rutas = (LayerOverlay)Map1.CustomOverlays["Rutas"];
 
                InMemoryFeatureLayer inMemoryLayer = (InMemoryFeatureLayer)Rutas.Layers["shapeLayer"];
                inMemoryLayer.InternalFeatures.Clear();
                inMemoryLayer.InternalFeatures.Add("Ruta", feature);
                 
            }
             
        }
 
DAO
 
 public class Tienda
    {
        public string id;
        public string d_llave;
        public string nombre;
        public double posicionX;
        public double posicionY;
 
        public Tienda(Layer layer, string idtienda)
        {
            MsSql2008FeatureLayer abarrotes = (MsSql2008FeatureLayer) layer;
            abarrotes.Open();
            Feature tienda = abarrotes.QueryTools.GetFeatureById(idtienda, ReturningColumnsType.AllColumns);
            id = tienda.ColumnValues["MI_PRINX"];
            d_llave = tienda.ColumnValues["d_llave"];
            nombre = tienda.ColumnValues["nom_estab"];
            posicionX = tienda.GetBoundingBox().GetCenterPoint().X;
            posicionY = tienda.GetBoundingBox().GetCenterPoint().Y;
        }
    }
 
    public class Parada
    {
        public Tienda tienda;
        public int orden;
    }
 
    public class corrida
    {
       public List<Parada> Paradas;
 
       public corrida()
       {
           Paradas = new List<Parada>();
       }
 
       public void agrega(Tienda tienda, int orden)
       {
           int lugar = 0;
           int i = 0;
           Parada Nueva = new Parada();
           Nueva.orden = 0;
           Nueva.tienda = tienda;
 
           foreach (Parada parada in Paradas)
           {
               if (parada.orden == orden)
               {
                   lugar = Paradas.IndexOf(parada);
               }
                    
           }
 
           Paradas.Insert(lugar, Nueva);
 
           foreach (Parada parada in Paradas)
           {
               parada.orden = i;
               i++;
           }
 
       }
 
    }


Hi Rodrigo, 
  
 You don’t want to refresh all overlays after feature added. 
  
 I think this topic is helpful for your situation. 
  
 thinkgeo.com/forums/MapSuite/tabid/143/aft/9676/Default.aspx 
  
 Regards, 
  
 Don