C# 将纬度和经度转换为43分区中的utm点

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) {

我有纬度和经度点,比如(23.7019973789308,72.5465551902882) 像这样,我有很多点,都是用户在我的应用程序中输入的, 我只想把它们转换成C#中43区的米。 我没有得到任何合适的代码,谁可以转换这些点。 我也通过这个链接,但没有得到解决方案。

我也试过这个代码

  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上发布