Map control's Scale property always returns NaN if its MapResourceManager contains an ArcIMS ArcMapImage service.
Last Published: August 25, 2014No Product Found
Bug ID Number
NIM010520
Submitted
July 24, 2007
Last Modified
June 5, 2024
Applies to
No Product Found
Version found
9.2
Status
Will Not Be Addressed
The development team has considered the issue or request and concluded it will not be addressed. The issue's Additional Information section may contain further explanation.
Additional Information
No Public Explanation
Workaround
//Calculate the relative scale using the extent in map units and display units ...private double getMapScale() { int dpi = 96; //number of pixels per inch; default is 96 if ((_map.GetFunctionality(0).GetType()) == typeof(ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality)) { ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality funcMap = (ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality) _map.GetFunctionality(0); MapView viewMap = funcMap.MapView; dpi = viewMap.ImageDescriptor.Dpi; } //**Change the variable below to represent the current inches per map unit (meters, feet, degrees, etc.) int inchesPerMapUnit = 4371840; //number of inches in one degree latitude (or longitude at the equator) //* int inchesPerMapUnit = 12; //..feet //* int inchesPerMapUnit = 39.37; //..meters double mapW = _map.Extent.Width; //width of the map in decimal degrees int imgW = (int) _map.Width.Value; //width of the map image in pixels double inchesMap = mapW * inchesPerMapUnit; //width of the map in inches double inchesImg = imgW / dpi; //width of the map image in inches return (inchesMap / inchesImg); //number of ground inches per inch of the image }Or use MapView::Scale (to get the number of map units per pixel). For example: ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality funcMap = (ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality) Map1.GetFunctionality(0); MapView viewMap = funcMap.MapView; double scale = viewMap.Scale;