ArcGIS Engine代码共享投影SpatialReference对象操作.docx
- 文档编号:29483391
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:17
- 大小:19.71KB
ArcGIS Engine代码共享投影SpatialReference对象操作.docx
《ArcGIS Engine代码共享投影SpatialReference对象操作.docx》由会员分享,可在线阅读,更多相关《ArcGIS Engine代码共享投影SpatialReference对象操作.docx(17页珍藏版)》请在冰豆网上搜索。
ArcGISEngine代码共享投影SpatialReference对象操作
ArcGISEngine代码共享-投影(SpatialReference)对象操作
分类:
ArcGISEngine2012-01-1614:
37 3547人阅读 评论
(1) 收藏 举报
exceptionsystemstringnulldomain360
1.public class SpatialReferenceHelper
2. {
3. // Fields
4. private const double ParaC = 6399596.65198801;
5. private const double ParaE1 = 0.00669438499958795;
6. private const double Parak0 = 1.57048687472752E-07;
7. private const double Parak1 = 0.00505250559291393;
8. private const double Parak2 = 2.98473350966158E-05;
9. private const double Parak3 = 2.41627215981336E-07;
10. private const double Parak4 = 2.22241909461273E-09;
11.
12. // Methods
13.
14. public static double DistanceOfTwoEarthPoints(double lng1, double lat1, double lng2, double lat2, GaussSphere gs)
15. {
16. double d = Rad(lat1);
17. double num2 = Rad(lat2);
18. double num3 = d - num2;
19. double num4 = Rad(lng1) - Rad(lng2);
20. double num5 = 2.0 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(num3 / 2.0), 2.0) + ((Math.Cos(d) * Math.Cos(num2)) * Math.Pow(Math.Sin(num4 / 2.0), 2.0))));
21. num5 *= (gs == GaussSphere.WGS84) ?
6378137.0 :
((gs == GaussSphere.Xian80) ?
6378140.0 :
6378245.0);
22. return (Math.Round((double)(num5 * 10000.0)) / 10000.0);
23. }
24.
25. public static string FormatJWD(double pJWD)
26. {
27. int num = (int)pJWD;
28. double num2 = (pJWD - num) * 60.0;
29. int num3 = (int)num2;
30. num2 = (num2 - num3) * 60.0;
31. int num4 = (int)num2;
32. return string.Concat(new object[] { num, "\x00b0", num3, "'", num4, "\"" });
33. }
34.
35. public static string FormatJWDEx(double pJWD)
36. {
37. int num = (int)pJWD;
38. double num2 = (pJWD - num) * 60.0;
39. int num3 = (int)num2;
40. num2 = (num2 - num3) * 60.0;
41. int num4 = (int)num2;
42. return string.Concat(new object[] { num, "度", num3, "分", num4, "秒" });
43. }
44.
45. public static string FormatSpatialReference(ISpatialReference sr)
46. {
47. try
48. {
49. if (sr == null)
50. {
51. return "";
52. }
53. StringBuilder builder = new StringBuilder();
54. if (sr is UnknownCoordinateSystemClass)
55. {
56. builder.Append("UnknownCoordinateSystem");
57. }
58. else
59. {
60. if (sr.Name == "Unknown")
61. {
62. builder.Append("UnknownCoordinateSystem");
63. }
64. else
65. {
66. IGeographicCoordinateSystem system2;
67. if (sr is IProjectedCoordinateSystem)
68. {
69. Exception exception;
70. IProjectedCoordinateSystem system = sr as IProjectedCoordinateSystem;
71. builder.Append("投影坐标系:
\n");
72. builder.Append(" Name:
").Append(system.Name).Append("\n");
73. builder.Append(" Alias:
").Append(system.Alias).Append("\n");
74. builder.Append(" Abbreviation:
").Append(system.Abbreviation).Append("\n");
75. builder.Append(" Remarks:
").Append(system.Remarks).Append("\n");
76. builder.Append("投影:
").Append(system.Projection.Name).Append("\n");
77. builder.Append("投影参数:
\n");
78. builder.Append(" False_Easting:
").Append(system.FalseEasting).Append("\n");
79. builder.Append(" False_Northing:
").Append(system.FalseNorthing).Append("\n");
80. builder.Append(" Central_Meridian:
").Append(system.get_CentralMeridian(true)).Append("\n");
81. try
82. {
83. builder.Append(" Scale_Factor:
").Append(system.ScaleFactor).Append("\n");
84. }
85. catch { }
86. builder.Append(" Latitude_Of_Origin:
0\n");
87. builder.Append("Linear Unit:
").Append(system.CoordinateUnit.Name).Append("(").Append(system.CoordinateUnit.MetersPerUnit).Append(")\n");
88. builder.Append("Geographic Coordinate System:
\n");
89. system2 = system.GeographicCoordinateSystem;
90. builder.Append(" Name:
").Append(system2.Name).Append("\n");
91. builder.Append(" Alias:
").Append(system2.Alias).Append("\n");
92. builder.Append(" Abbreviation:
").Append(system2.Abbreviation).Append("\n");
93. builder.Append(" Remarks:
").Append(system2.Remarks).Append("\n");
94. builder.Append(" Angular Unit:
").Append(system2.CoordinateUnit.Name).Append("(").Append(system2.CoordinateUnit.RadiansPerUnit).Append(")\n");
95. builder.Append(" Prime Meridian:
").Append(system2.PrimeMeridian.Name).Append("(").Append(system2.PrimeMeridian.Longitude).Append(")\n");
96. builder.Append(" Datum:
").Append(system2.Datum.Name).Append("\n");
97. builder.Append(" Spheroid:
").Append(system2.Datum.Spheroid.Name).Append("\n");
98. builder.Append(" Semimajor Axis:
").Append(system2.Datum.Spheroid.SemiMajorAxis).Append("\n");
99. builder.Append(" Semiminor Axis:
").Append(system2.Datum.Spheroid.SemiMinorAxis).Append("\n");
100. builder.Append(" Inverse Flattening:
").Append((double)(1.0 / system2.Datum.Spheroid.Flattening)).Append("\n");
101. builder.Append("X/Y Domain:
\n");
102. try
103. {
104. double num = 0.0;
105. double num2 = 0.0;
106. double num3 = 0.0;
107. double num4 = 0.0;
108. double num5 = 0.0;
109. sr.GetDomain(out num, out num3, out num2, out num4);
110. sr.GetFalseOriginAndUnits(out num, out num2, out num5);
111. builder.Append(" Min X:
").Append(num).Append("\n");
112. builder.Append(" Min Y:
").Append(num2).Append("\n");
113. builder.Append(" Max X:
").Append(num3).Append("\n");
114. builder.Append(" Max Y:
").Append(num4).Append("\n");
115. builder.Append(" XYScale:
").Append(num5).Append("\n");
116. builder.Append("\n");
117. }
118. catch (Exception exception1)
119. {
120. exception = exception1;
121. }
122. builder.Append("Z Domain:
\n");
123. try
124. {
125. double num6;
126. double num7;
127. double num8 = 0.0;
128. sr.GetZDomain(out num6, out num7);
129. sr.GetZFalseOriginAndUnits(out num6, out num8);
130. builder.Append(" Min Z:
").Append(num6).Append("\n");
131. builder.Append(" Max Z:
").Append(num7).Append("\n");
132. builder.Append(" ZScale:
").Append(num8).Append("\n");
133. builder.Append("\n");
134. }
135. catch (Exception exception2)
136. {
137. exception = exception2;
138. }
139. try
140. {
141. double num9;
142. double num10;
143. builder.Append("M Domain:
\n");
144. double num11 = 0.0;
145. sr.GetMDomain(out num9, out num10);
146. sr.GetMFalseOriginAndUnits(out num9, out num11);
147. builder.Append(" Min M:
").Append(num9).Append("\n");
148. builder.Append(" Max M:
").Append(num10).Append("\n");
149. builder.Append(" MScale:
").Append(num11).Append("\n");
150. }
151. catch (Exception exception3)
152. {
153. exception = exception3;
154. }
155. }
156. else if (sr is IGeographicCoordinateSystem)
157.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ArcGIS Engine代码共享投影SpatialReference对象操作 Engine 代码 共享 投影 SpatialReference 对象 操作