writePoint(coords, layout) {
    /**
     * @type {Object}
     * @property {number} X NoData value for X
     * @property {number} Y NoData value for Y
     * @property {number} [Z] NoData value for Z
     * @property {number} [M] NoData value for M
     */
    const coordsObj = Object.assign.apply(
      null,
      layout.split('').map((axis, idx) => ({[axis]: coords[idx]})),
    );

    for (const axis of this.layout_) {
      this.writeDouble(
        axis in coordsObj ? coordsObj[axis] : this.nodata_[axis],
      );
    }
  }
@param {import('../coordinate.js').Coordinate} coords coords
@param {import("../geom/Geometry.js").GeometryLayout} layout layout