如何将WellKnownBinary和CoordinateSystemId转换为经度和纬度
问题描述:
我尝试从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;
如何转换为经度和纬度?
在此先感谢。
答
我解决了这个问题。我使用的是类DbGeography而不是DbGeometry。 正确的实现是:
GeometriaDTO geoDTO = oInstDTO.Geometria;
DbGeometry DBGeo=DbGeometry.FromBinary(geoDTO.WellKnownBinary, (int)geoDTO.SRID);
double? latitude = DBGeo.XCoordinate;
double? longitude = DBGeo.YCoordinate;
我希望这将是有用的人。