コード例 #1
0
        /// <summary>
        /// 构造函数,以两点初始化一个线段
        /// </summary>
        public MercatorSegment(MercatorPoint point1, MercatorPoint point2)
        {
            m_point1 = point1;
            m_point2 = point2;

            MaxY = Math.Max(m_point1.Y, m_point2.Y);
            MinY = Math.Min(m_point1.Y, m_point2.Y);
            MaxX = Math.Max(m_point1.X, m_point2.X);
            MinX = Math.Min(m_point1.X, m_point2.X);

            A = m_point1.Y - m_point2.Y;
            B = m_point2.X - m_point1.X;
            C = (m_point1.X * (m_point2.Y - m_point1.Y)) + (m_point1.Y * (m_point1.X - m_point2.X));
        }
コード例 #2
0
        /// <summary>
        /// 墨卡托坐標轉經緯度坐標
        /// </summary>
        /// <param name="point"></param>
        /// <returns>经度, 纬度</returns>
        public Coordinate MercatorToCoordinate(MercatorPoint point)
        {
            double[] mc  = null;
            var      abs = Math.Abs(point.Y);

            for (var i = 0; i < _mcband.Length; i++)
            {
                if (abs >= _mcband[i])
                {
                    mc = _mc2Ll[i];
                    break;
                }
            }

            var location = Convertor(point.X, point.Y, mc);

            return(new Coordinate
            {
                Longitude = location[0],
                Latitude = location[1]
            });
        }