How To: Optimize a MapObjects IMS application


Ideas for improving the performance of a MapObjects IMS application.


  • Make the visibility of layers scale-dependent so that layers only draw when zoomed to a scale that is appropriate for displaying the layer.
  • Create generalized datasets of major features for display at small scales. For example, when the client is looking at the entire United States, display a layer showing only generalized (low-detail) interstate highways. As the client zooms in, replace the interstate layer with more detailed layers for specific geographic areas, for example, load the layer that displays the streets of a town.
  • A redraw of the Map takes time. Avoid unnecessary redraws by setting Map1.Visible = False just before processing the client's request to pan, zoom, remove, or add layers, etc. Set Map1.Visible equal to True just before issuing the ExportMap method. This technique avoids unnecessary redraws caused by some of the Map control methods.
  • Use MapObjects to Export some of the base layers into a single ImageLayer, and display that ImageLayer instead of the actual base layers when the client is zoomed out. Turn off the image and turn on the base layers when the client zooms in to a larger scale.
  • Smaller datasets can be processed much faster than large datasets for certain operations such as SearchExpression and geocoding. Consider breaking large datasets up into smaller pieces.
  • Avoid setting the AllowSharing property of any GeoDataset to True, as this will greatly impact performance.
  • For large datasets (more than 100,000 features), consider using ESRI's ArcSDE.
  • When possible, stream images directly to the client using WebLink.WriteFile, instead of sending HTML, which references the image. This will avoid an extra hit on your Web server machine.
  • Review the other optimization techniques listed in the MapObjects Help and search the Index for "optimization".