ArcGIS Developers

NmeaLocationDataSource QML Type

A NMEA location data source object. More...

Import Statement: import Esri.ArcGISRuntime 100.11
Since: Esri.ArcGISRuntime 100.10





Detailed Description

This object will parse specific NMEA messages pushed into it. Valid GGA, GSA, GST, GSV, RMC, VTG messages are parsed and, a AbstractLocationDataSource::locationChanged may be raised. The AbstractLocationDataSource::locationChanged will return a NmeaLocation object. This data source is based on NMEA version 4.11 (November 2018).

Property Documentation

outputDatumTransformation : DatumTransformation

The DatumTransformation to be used in the project operation.

If set, this property will be used as the DatumTransformation in the call to GeometryEngine::project(Geometry, SpatialReference). For this property to be used, the outputSpatialReference also must be set.

outputSpatialReference : SpatialReference

If set, calls the GeometryEngine::project(Geometry, SpatialReference) method to generate the output spatial reference.

The projected point will be stored in NmeaLocation::position. If this property is null the NmeaLocation::position will be contain the original incoming x,y,z values from the NMEA data sentence and the receiverSpatialReference.

receiverSpatialReference : SpatialReference

The SpatialReference to be assigned to the output NmeaLocation, the default is WGS84.

By default this will be WGS84 for its horizontal (WKID=4326) and vertical reference systems (WKID=115700), this can be set to a different SpatialReference if a receiver returns locations in a different reference system.

Signal Documentation

void outputDatumTransformationChanged()

Emitted when the outputDatumTransformation property changes.

Note: The corresponding handler is onOutputDatumTransformationChanged.

void outputSpatialReferenceChanged()

Emitted when the outputSpatialReference property changes.

Note: The corresponding handler is onOutputSpatialReferenceChanged.

void receiverSpatialReferenceChanged()

Emitted when the receiverSpatialReference property changes.

Note: The corresponding handler is onReceiverSpatialReferenceChanged.

Method Documentation

void pushData(string data)

Reads the input NMEA data, with which it creates a NmeaLocation.

  • data - The data buffer that contains NMEA data.

When pushing data

  • Each sentence needs to begins with a '$'
  • Each sentence needs to end with carriage return/line feed sequence
  • Single or multiple sentences can be pushed at one time. All strings in the buffer will be parsed.
  • There is no explicit limit on the amount of data that can pushed at one time
  • If a partial sentences are pushed, the data source accumulates (and concatenates) the pushed data until a carriage return/line feed sequence is reached
  • The data source parses these messages types: GGA, GSA, GST, GSV, RMC, VTG
  • Each sentence's checksum is validated
  • Unknown/bad/incorrect sentences are ignored (they do not produce any location, satellite updates etc.)
  • Sentences support up to 256 characters (this is beyond the NMEA spec's 82 character limit to support receiver's that output longer sentences)
  • Messages should be of the form: "$XXYYY,[data]*[checksum]\r\n"

Example: $GPGGA, 092750.000, 5321.6802,N, 00630.3372,W, 1, 8, 1.03, 61.7,M, 55.2,M,,*76 $GPGSA,A, 3, 10, 07, 05, 02, 29, 04, 08, 13,,,,, 1.72, 1.03,1.38*0A $GPGSV, 3, 1, 11, 10, 63, 137, 17, 07, 61, 098, 15, 05, 59, 290, 20, 08, 54, 157,30*70 see for more information on the NMEA standard.

Feedback on this topic?