code: private Point createPoint(double[] input, CrsId crsIdValue) {
          if (input == null) {
              return null;
          }
          if (input.length == 2) {
              return Points.create2D(input[0], input[1], crsIdValue);
          } else if(input.length == 3){
              return Points.create3D(input[0], input[1], input[2], crsIdValue);
          } else {
              double z = input[2];
              double m = input[3];
              if(Double.isNaN(z)) {
                  return Points.create2DM(input[0],input[1],m,crsIdValue);
              } else {
                  return Points.create3DM(input[0], input[1], z, m, crsIdValue);
              }
          }
      }
docs: Helpermethod that creates a point starting from its geojsonto coordinate array
  
  @param input      the coordinate array to convert to a point
  @param crsIdValue the sridvalue of the crs in which the point is defined
  @return an instance of a geolatte point corresponding to the given to or null if the given array is null