writeValues static method

void writeValues(
  1. Position position,
  2. StringSink buffer, {
  3. String delimiter = ',',
  4. int? decimals,
  5. bool compactNums = true,
  6. bool swapXY = false,
})

Writes coordinate values of position to buffer separated by delimiter.

Use decimals to set a number of decimals (not applied if no decimals).

If compactNums is true, any ".0" postfixes of numbers without fraction digits are stripped.

Set swapXY to true to print y (or latitude) before x (or longitude).

A sample with default parameters (for a 3D point): 10.1,20.3,30.3

To get WKT compatible text, set delimiter to : 10.1 20.2 30.3

Implementation

static void writeValues(
  Position position,
  StringSink buffer, {
  String delimiter = ',',
  int? decimals,
  bool compactNums = true,
  bool swapXY = false,
}) {
  if (decimals != null) {
    buffer
      ..write(
        toStringAsFixedWhenDecimals(
          swapXY ? position.y : position.x,
          decimals,
          compact: compactNums,
        ),
      )
      ..write(delimiter)
      ..write(
        toStringAsFixedWhenDecimals(
          swapXY ? position.x : position.y,
          decimals,
          compact: compactNums,
        ),
      );
    if (position.is3D) {
      buffer
        ..write(delimiter)
        ..write(
          toStringAsFixedWhenDecimals(
            position.z,
            decimals,
            compact: compactNums,
          ),
        );
    }
    if (position.isMeasured) {
      buffer
        ..write(delimiter)
        ..write(
          toStringAsFixedWhenDecimals(
            position.m,
            decimals,
            compact: compactNums,
          ),
        );
    }
  } else {
    buffer
      ..write(
        toStringCompact(
          swapXY ? position.y : position.x,
          compact: compactNums,
        ),
      )
      ..write(delimiter)
      ..write(
        toStringCompact(
          swapXY ? position.x : position.y,
          compact: compactNums,
        ),
      );
    if (position.is3D) {
      buffer
        ..write(delimiter)
        ..write(toStringCompact(position.z, compact: compactNums));
    }
    if (position.isMeasured) {
      buffer
        ..write(delimiter)
        ..write(toStringCompact(position.m, compact: compactNums));
    }
  }
}