code: public static Point2D getBitmapCoordinate(double latitude, double longitude, int zoomLevel, TileFactoryInfo info)
      {
          double x = info.getMapCenterInPixelsAtZoom(zoomLevel).getX() + longitude
                  * info.getLongitudeDegreeWidthInPixels(zoomLevel);
          double e = Math.sin(latitude * (Math.PI / 180.0));
          if (e > 0.9999)
          {
              e = 0.9999;
          }
          if (e < -0.9999)
          {
              e = -0.9999;
          }
          double y = info.getMapCenterInPixelsAtZoom(zoomLevel).getY() + 0.5 * Math.log((1 + e) / (1 - e)) * -1
                  * (info.getLongitudeRadianWidthInPixels(zoomLevel));
          return new Point2D.Double(x, y);
      }
docs: Given a position (latitude/longitude pair) and a zoom level, return the appropriate point in <em>pixels</em>. The
  zoom level is necessary because pixel coordinates are in terms of the zoom level
  @param latitude the latitude
  @param longitude the longitude
  @param zoomLevel the zoom level to extract the pixel coordinate for
  @param info the tile factory info
  @return the coordinate