经纬度点与投影坐标系下坐标点的互相转换
来源:http://bbs.esrichina-bj.cn/ESRI/thread-39778-1-1.html
WGS84 和北京54的经纬度点与投影坐标系下坐标点的互相转换VB.NET源码如下:
1''' <summary>
2 ''' 将经纬度点转换为某投影下的坐标点
3 ''' </summary>
4 ''' <param name="pPoint">经纬度点</param>
5 ''' <returns>某投影下的坐标点</returns>
6 ''' <remarks>其中pPoint的X是经度,Y是纬度,单位都是度,千万不要搞错,否则转换出来的值是不对的或转换不出值</remarks>
7 Private Function GetProjectPoint(ByVal pPoint As IPoint) As IPoint
8 Dim pSRF As ISpatialReferenceFactory = New SpatialReferenceEnvironment
9 pPoint.SpatialReference = pSRF.CreateGeographicCoordinateSystem(esriSRGeoCSType.esriSRGeoCS_WGS1984)
10 pPoint.Project(pSRF.CreateProjectedCoordinateSystem(esriSRProjCSType.esriSRProjCS_Beijing1954GK_23N))
11 Return pPoint
12 End Function
13 ''' <summary>
14 ''' 将点转换为经纬度点
15 ''' </summary>
16 ''' <param name="x">点X坐标</param>
17 ''' <param name="y">点Y坐标</param>
18 ''' <returns>经纬度点</returns>
19 ''' <remarks></remarks>
20 Private Function GetGeoPoint(ByVal x As Double, ByVal y As Double) As IPoint
21 Dim pProPoint As IPoint = New Point
22 pProPoint.PutCoords(x, y)
23 Dim pSRF As ISpatialReferenceFactory = New SpatialReferenceEnvironment
24 pProPoint.SpatialReference = pSRF.CreateProjectedCoordinateSystem(esriSRProjCSType.esriSRProjCS_Beijing1954GK_23N)
25 pProPoint.Project(pSRF.CreateGeographicCoordinateSystem(esriSRGeoCSType.esriSRGeoCS_WGS1984))
26 Return pProPoint
27 End Function
2 ''' 将经纬度点转换为某投影下的坐标点
3 ''' </summary>
4 ''' <param name="pPoint">经纬度点</param>
5 ''' <returns>某投影下的坐标点</returns>
6 ''' <remarks>其中pPoint的X是经度,Y是纬度,单位都是度,千万不要搞错,否则转换出来的值是不对的或转换不出值</remarks>
7 Private Function GetProjectPoint(ByVal pPoint As IPoint) As IPoint
8 Dim pSRF As ISpatialReferenceFactory = New SpatialReferenceEnvironment
9 pPoint.SpatialReference = pSRF.CreateGeographicCoordinateSystem(esriSRGeoCSType.esriSRGeoCS_WGS1984)
10 pPoint.Project(pSRF.CreateProjectedCoordinateSystem(esriSRProjCSType.esriSRProjCS_Beijing1954GK_23N))
11 Return pPoint
12 End Function
13 ''' <summary>
14 ''' 将点转换为经纬度点
15 ''' </summary>
16 ''' <param name="x">点X坐标</param>
17 ''' <param name="y">点Y坐标</param>
18 ''' <returns>经纬度点</returns>
19 ''' <remarks></remarks>
20 Private Function GetGeoPoint(ByVal x As Double, ByVal y As Double) As IPoint
21 Dim pProPoint As IPoint = New Point
22 pProPoint.PutCoords(x, y)
23 Dim pSRF As ISpatialReferenceFactory = New SpatialReferenceEnvironment
24 pProPoint.SpatialReference = pSRF.CreateProjectedCoordinateSystem(esriSRProjCSType.esriSRProjCS_Beijing1954GK_23N)
25 pProPoint.Project(pSRF.CreateGeographicCoordinateSystem(esriSRGeoCSType.esriSRGeoCS_WGS1984))
26 Return pProPoint
27 End Function