2016-05-31 307 views
0

我尝试从WellKnownBinary和CoordinateSystemId转换来获取纬度和经度。如何将WellKnownBinary和CoordinateSystemId转换为经度和纬度

我有一个名为GeometriaDTO自定义类:

 GeometriaDTO geoDTO = oInstDTO.Geometria; 
     DbGeography DBGeo = DbGeography.FromBinary(geoDTO.WellKnownBinary,(int) geoDTO.SRID); 

但最后一行抛出一个错误:

An exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll but was not handled in user code 

我要做到这一点:

double? latitude = DBGeo.Latitude; 
double? longitude = DBGeo.Longitude; 

如何转换为经度和纬度?

在此先感谢。

回答

0

我解决了这个问题。我使用的是类DbGeography而不是DbGeometry。 正确的实现是:

GeometriaDTO geoDTO = oInstDTO.Geometria; 
DbGeometry DBGeo=DbGeometry.FromBinary(geoDTO.WellKnownBinary, (int)geoDTO.SRID); 
double? latitude = DBGeo.XCoordinate; 
double? longitude = DBGeo.YCoordinate; 

我希望这将是有用的人。