Map control's Scale property always returns NaN if its MapResourceManager contains an ArcIMS ArcMapImage service.
最後に公開された状態: August 25, 2014No Product Found
不具合 ID 番号
NIM010520
送信されました
July 24, 2007
最終更新日
June 5, 2024
適用対象
No Product Found
見つかったバージョン
9.2
ステータス
Will Not Be Addressed
開発チームは、この問題またはリクエストを検討した結果、これに対処しないことに決定しました。 問題の「参考情報」セクションに、さらに詳細な説明が示されていることがあります。
参考情報
No Public Explanation
対処法
//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;