writeValues static method
void
writeValues(})
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));
}
}
}