<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>
<![endif]-->
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>
<![endif]-->
一般空間參考ISpatialReferencemSpa;一般可從AE控制項axMapControl得到
ESRI.ArcGIS.Controls.AxMapControlaxMapControl;
mSpa= axMapControl. SpatialReference;
投影座標係為
mGeographic =(int)esriSRGeoCSType.esriSRGeoCS_WGS1984;
mProject=
(int)esriSRProjCSType.esriSRProjCS_Beijing1954GK_23N;
經緯度點轉換為平面座標:
public static IPoint GetProject(double x, double y)<br /> {<br />ISpatialReferenceFactory2 sprf = new SpatialReferenceEnvironmentClass();<br />IPoint pt = new PointClass();<br />pt.PutCoords(x, y);<br />IGeometry geo = (IGeometry)pt;<br />IGeographicCoordinateSystem pGeoSys<br />= sprf.CreateGeographicCoordinateSystem(mGeographic);<br />geo.SpatialReference = pGeoSys;<br />//建立你希望投影到的平面座標系統統<br />IProjectedCoordinateSystem pProSys<br /> = sprf.CreateProjectedCoordinateSystem(mSpa.FactoryCode);<br />geo.Project(pProSys);<br />return pt;<br />}<br />
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>
<![endif]-->
平面座標轉換為經緯度
:
public static IPoint GetGeo(double x, double y)<br />{<br />ISpatialReferenceFactory2 sprf= new SpatialReferenceEnvironmentClass();<br />IPoint pt=new PointClass();<br />pt.PutCoords(x,y);<br />IGeometry geo = (IGeometry)pt;<br />if(null==mSpa)<br />{<br /> IProjectedCoordinateSystem pProSys<br />= sprf.CreateProjectedCoordinateSystem(mProject);<br /> geo.SpatialReference = pProSys;<br />}<br />else<br />{<br />geo.SpatialReference = mSpa;<br />}<br />IGeographicCoordinateSystem pGeoSys<br />=sprf.CreateGeographicCoordinateSystem(mGeographic);<br />geo.Project(pGeoSys);<br />return pt;<br />}<br />
<!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 9]><![endif]--><!-- [if gte mso 10]>
<![endif]-->
Ps :
FactoryCode 是把空間參考轉換為相應的數值。預設為
0