docs: public boolean contains(double lat, double lon) {
          if (lat < minLat || lat > maxLat || lon < minLon || lon > maxLon) {
              return false;
          }
  
          double rayStartLat = maxLat - (minLat / 2);
          double rayStartLon = minLon - epsilon;
  
          boolean inside = false;
          int len = this.lat.length;
          for (int i = 0; i < len; i++) {
              if (edgesAreIntersecting(rayStartLon, rayStartLat, lon, lat, this.lon[i], this.lat[i], this.lon[(i + 1) % len], this.lat[(i + 1) % len]))
                  inside = !inside;
          }
          return inside;
  
      }