示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        MeshGeometry3D getMeshGeometry3D()
        {
            //Latitude point Distribution.
            double phiStart = this.GetPhiStart();
            double phiEnd   = this.GetPhiEnd();

            int tDiv = 0x10; //16
            int pDiv = 0x10; //16

            double radius = 1.0;

            //Longitude point Distribution.
            double thetaStart = (((double)this.Column) / ((double)ZoomManager.ZoomLevelColumns(this.ZoomLevel))) * 360.0;
            double thetaEnd   = ((this.Column + 1.0) / ((double)ZoomManager.ZoomLevelColumns(this.ZoomLevel))) * 360.0;

            return(Tessellate(tDiv, pDiv, radius, thetaStart, phiStart, thetaEnd, phiEnd));
        }
示例#2
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 double GetPhiStart()
 {
     if (double.IsNaN(this.phiStart))
     {
         double num  = 7.1288559127654789;
         double num3 = (GISHelper.LatitudeToMercatorY(GISHelper.DegToRad(45.0)) * num) / 2.0;
         double num4 = -num3;
         double num5 = num3 - num4;
         double num6 = ((double)this.Row) / ((double)ZoomManager.ZoomLevelRows(this.ZoomLevel));
         double num1 = (this.Row + 1.0) / ((double)ZoomManager.ZoomLevelRows(this.ZoomLevel));
         GISHelper.RadToDeg(GISHelper.MercatorYToLatitude(1.0));
         ZoomManager.ZoomLevelRows(this.ZoomLevel);
         double y = (num6 - 0.5) * num5;
         this.phiStart = GISHelper.RadToDeg(GISHelper.MercatorYToLatitude(y)) + 90.0;
     }
     return(this.phiStart);
 }