/// <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)); }
/// <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); }