示例#1
0
 /// <summary>
 /// 经纬度转墨卡托坐标
 /// </summary>
 /// <param name="longitude">经度</param>
 /// <param name="latitude">纬度</param>
 /// <returns></returns>
 public static Vector2D ConvertLL2MC(double longitude, double latitude)
 {
     longitude = MathCommon.GetLoop(longitude, -180, 180);
     latitude  = MathCommon.GetRange(latitude, -74, 74);
     double[] cg = null;
     for (int cf = 0; cf < LLBAND.Length; cf++)
     {
         if (latitude >= LLBAND[cf])
         {
             cg = LL2MC[cf].ToArray();
             break;
         }
     }
     if (cg == null)
     {
         for (int cf = LLBAND.Length - 1; cf >= 0; cf--)
         {
             if (latitude <= -LLBAND[cf])
             {
                 cg = LL2MC[cf].ToArray();
                 break;
             }
         }
     }
     return(Convertor(longitude, latitude, cg));
 }
示例#2
0
 /// <summary>
 /// 墨卡托坐标转经纬度坐标
 /// </summary>
 /// <param name="vector2D">MC坐标</param>
 /// <returns></returns>
 public static Vector2D ConvertMC2LL(Vector2D vector2D)
 {
     vector2D.x = MathCommon.GetRange(vector2D.x, -20037726.3691722, 20037726.3691722);
     vector2D.y = MathCommon.GetRange(vector2D.y, -12474104.1741421, 12474104.1741421);
     return(ConvertMC2LL(vector2D.x, vector2D.y));
 }