/// <summary> /// 使用指定的上下文和区域性信息将给定的对象转换为此转换器的类型[从显示文本转换为真实对象] /// </summary> /// <param name="context">提供格式上下文</param> /// <param name="culture">用作当前区域性的 CultureInfo</param> /// <param name="value">要转换的 Object</param> /// <returns>表示转换的 value 的 Object</returns> public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { if (context.PropertyDescriptor.PropertyType == ClrSystemType.DoubleType) { double realValue; if (PostureCommon.ConvertCoordStrToCoord(value, out realValue)) { return(realValue); } else { return(base.ConvertFrom(context, culture, value)); } } else { return(base.ConvertFrom(context, culture, value)); } }
/// <summary> /// 转换经纬度坐标字符串为经纬度坐标值[转换成功返回true,否则返回false] /// </summary> /// <param name="objLongitude">经度坐标字符串值</param> /// <param name="objLatitude">纬度坐标字符串值</param> /// <param name="longitude">经度值</param> /// <param name="latitude">纬度值</param> /// <returns>转换成功返回true,否则返回false</returns> public static bool ConvertCoordStrToCoord(object objLongitude, object objLatitude, out double longitude, out double latitude) { longitude = 0; latitude = 0; try { //80°20′52″ if (!PostureCommon.ConvertCoordStrToCoord(objLongitude, out longitude)) { return(false); } return(PostureCommon.ConvertCoordStrToCoord(objLatitude, out latitude)); } catch (Exception ex) { Loger.Debug(ex); return(false); } }