C# 将纬度和经度转换为43分区中的utm点
我有纬度和经度点,比如(23.7019973789308,72.5465551902882) 像这样,我有很多点,都是用户在我的应用程序中输入的, 我只想把它们转换成C#中43区的米。 我没有得到任何合适的代码,谁可以转换这些点。 我也通过这个链接,但没有得到解决方案。 我也试过这个代码C# 将纬度和经度转换为43分区中的utm点,c#,c#-4.0,c#-3.0,arcgis,arcgis-server,C#,C# 4.0,C# 3.0,Arcgis,Arcgis Server,我有纬度和经度点,比如(23.7019973789308,72.5465551902882) 像这样,我有很多点,都是用户在我的应用程序中输入的, 我只想把它们转换成C#中43区的米。 我没有得到任何合适的代码,谁可以转换这些点。 我也通过这个链接,但没有得到解决方案。 我也试过这个代码 static public IPoint FromLatLonToUTM(double lon, double lat, out double UTM_x, out double UTM_y) {
static public IPoint FromLatLonToUTM(double lon, double lat, out double UTM_x, out double UTM_y)
{
ISpatialReferenceFactory2 pSpatRefFact;
IProjectedCoordinateSystem pToPCS;
IGeographicCoordinateSystem pFromGCS;
IGeometry pGeo ;
IPoint pPoint;
UTM_x = 0;
UTM_y = 0;
pPoint = new PointClass();
pPoint.PutCoords(lon, lat);
pSpatRefFact = new SpatialReferenceEnvironmentClass();
pFromGCS = pSpatRefFact.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_NAD1983);
pToPCS = pSpatRefFact.CreateProjectedCoordinateSystem((int)esriSRProjCSType.esriSRProjCS_NAD1983UTM_17N);
pGeo = pPoint;
pGeo.SpatialReference = pFromGCS;
pGeo.Project (pToPCS);
pPoint = (IPoint) pGeo;
UTM_x = pPoint.X;
UTM_y = pPoint.Y;
Debug.Write(UTM_x);
Debug.WriteLine("");
Debug.Write(UTM_y);
Debug.WriteLine("");
return pPoint;
}
帮帮我………三件事:1)你确定你的源代码应该使用NAD1983吗?你的lat/LONG来源于哪里?2) 如果您试图转换为UTM区域43N,为什么要使用
ESRISPROJCS\u NAD1983UTM\u 17N
?3) 为什么要使用北美投影来显示(从您的示例坐标)在印度的数据?这是一个老问题,但对于任何偶然发现它的人,您可能希望尝试在gis.stackexchange.com上发布