code: function forward(p) {
          var lon = p.x;
          var lat = p.y;
          // convert to radians
          if (lat * R2D > 90 && lat * R2D < -90 && lon * R2D > 180 && lon * R2D < -180) {
              return null;
          }
  
          var x, y;
          if (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN) {
              return null;
          }
          else {
              if (this.sphere) {
                  x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);
                  y = this.y0 + this.a * this.k0 * Math.log(Math.tan(FORTPI + 0.5 * lat));
              }
              else {
                  var sinphi = Math.sin(lat);
                  var ts = tsfnz(this.e, lat, sinphi);
                  x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);
                  y = this.y0 - this.a * this.k0 * Math.log(ts);
              }
              p.x = x;
              p.y = y;
              return p;
          }
      }
docs: /* Mercator forward equations--mapping lat,long to x,y
  --------------------------------------------------