chumma

Zoom and Pan MAP is very slow when used with World Base Map

Discussion created by chumma on Mar 11, 2014
Latest reply on Mar 19, 2014 by chumma
Hi,

Am using the following basemap "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" in my WPF application. Whenever I do ZOOM or PAN map the application is very slow. But if I remove the base map it is very faster. I already tried setting up the pan and map duration to 0. But it doesn't help. Can anyone suggest me how to fix this issue.

I have tried using the same base map from ARCGIS DESKTOP and it is faster like anything. So we can eliminate the possibilities like network or firewall issue. This slowness issue occurs only when I use the ZOOM  and PAN with in the WPF application. Please let us know is there anything can be done to fasten it up. The following code is used for ZOOM.

---------------  ZOOM (Zoomfactor used is 2)

                double currentResolution = mapMain.Resolution;
                mapMain.ZoomFactor = this.myZoomFactor;
                // Calculate the ZoomIn Ratio. It is the inverse of the ZoomFactor (ex: 1 / 2 = 0.5).
                double myZoomInRatio = 1 / myZoomFactor;
                // Calculate the ZoomIn Resolution. The current Map.Resolution * ZoomIn Ratio.
                double myZoomInResolution = currentResolution * myZoomInRatio;

                // Use the ZoomToResolution Method to perform the zoom and center. - WORKING SAME AS
                //CenterAndZoom_via_ZoomToResolution(e.MapPoint, myZoomInResolution);

                // Use the ZoomTo Methdod to perform the zoom and center.
                CenterAndZoom_via_ZoomTo(e.MapPoint, myZoomInResolution);
--------------

   private void CenterAndZoom_via_ZoomTo(ESRI.ArcGIS.Client.Geometry.MapPoint myMapPoint, double myResolution)
        {
            try
            {
                // Calculate the bounding extents of the zoom centered on the users point click on the Map.
                double xMin = myMapPoint.X - (mapMain.ActualWidth * myResolution * 0.5);
                double yMin = myMapPoint.Y - (mapMain.ActualHeight * myResolution * 0.5);
                double xMax = myMapPoint.X + (mapMain.ActualWidth * myResolution * 0.5);
                double yMax = myMapPoint.Y + (mapMain.ActualHeight * myResolution * 0.5);

                // Construct an Envelope from the bounding extents.
                ESRI.ArcGIS.Client.Geometry.Envelope myEnvelope = new ESRI.ArcGIS.Client.Geometry.Envelope(xMin, yMin, xMax, yMax);

                // Adjust the Map.Extent using the ZoomTo Method. It will be centered where the user clicked.
                mapMain.ZoomTo(myEnvelope);
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }

Regards
Nedu. M

Outcomes