parseWKBPoint function

LatLng parseWKBPoint(
  1. String wkbString
)

Implementation

LatLng parseWKBPoint(String wkbString) {
  // Convert the hex string to bytes
  final bytes = Uint8List.fromList(
    List<int>.generate(
      wkbString.length ~/ 2,
      (index) => int.parse(
        wkbString.substring(index * 2, index * 2 + 2),
        radix: 16,
      ),
    ),
  );

  final byteData = bytes.buffer.asByteData();

  // Assuming little endian byte order
  final isLittleEndian = byteData.getUint8(0) == 1;

  // Skip the first 5 bytes (1 for byte order, 4 for type indicator)
  final lon = byteData.getFloat64(
    5,
    isLittleEndian ? Endian.little : Endian.big,
  );
  final lat = byteData.getFloat64(
    13,
    isLittleEndian ? Endian.little : Endian.big,
  );

  return LatLng(lat, lon);
}