NMEA extension. Get location. Beta. Testing

Hello friends,

I am building an extension (now Beta) to obtain the longitude and latitude of a location, using the data obtained from NMEA.

I have built two applications, one using the Kodular LocationSensor component
and another using my extension to get the NMEA data ($GNGGA and $GPGGA)

Applications are for drawing a route on Google maps.

Can you use the two applications and check which of the two you get two more exact location data?

1.- App with Kodular LocationSensor and Google Map.
p185D_nmea_Map_GoogleLS.aia (13.6 KB)
p185D_nmea_Map_GoogleLS.apk (5.4 MB)

2.- App with NMEA Extension and Google Map.
(Works: Android 5.1, Android 9)
(Doesn’t work: Android 7)
p185D_nmea_Map_Google.aia (15.5 KB)
p185D_nmea_Map_Google.apk (5.4 MB)

known errors: StopLocation does not work properly.



The App with NMEA Extension crashes when I press start. This happens in companion and also in installed test. It first shows the satellite view and then it crashes. The standard Kodular version works well on my phone, companion and installed test.
Samsung A3 2016 Android 7.01


Thanks Django for trying the extension.
I have built a new version, can you try it?

p185D_nmea_Map_GoogleV2.aia (17.5 KB)
p185D_nmea_Map_GoogleV2.apk (5.4 MB)

1 Like

This one is perfectly working. But why three dot.i didn’t understand what is the purpose of this button

The GPS of the mobiles have an accuracy of about 3 m, each time they pick up a signal can come with different data.

The information captured by this extension is in NMEA format, within that information we can obtain data sent by different groups of satellites.


If the information begins with GP they are American satellites, GL (Glonass Russian satellites), GA (Galileo, European satellites), GN set of several satellites, for example GP + GL.


I have put GPGGA to check if it can receive only that group of satellites.

This extension is based on the Class:
Used for receiving NMEA sentences from the GNSS.

Where is this option

My extension does not draw the route, it gets longitude and latitude. The route is drawn by the application code using Google Maps.


We can get longitude and latitude by your previous extention so why you creating this extention

Please take you a little time and read this whole thread again. Maybe you will get the idea why your last 2 questions are completly useless.
You may also use the translation button .

I wanted to check if you can get more accuracy in the location of the device by GPS than using the SensorLocation component of MIT App Inventor and Kodular.
I built the extension KIO4_LocationSensor.aix, which I could get:
Latitude, Longitude, Altitude, Speed ​​(m / s), bearing, bearingTo, distanceTo, getTime and convert.
bearingTo and distanceTo refers to the Properties: LatitudeTo and LongitudeTo
adminArea, countryCode, countryName, feature, locality, phone, postalCode, premises, subAdmin, subLocality, subThoroughfare, thoroughfare, url
declination, fieldStrength, horizontalStrength, inclination, x, y, z
all in the same extension, as we can see in:

Create Build Crear App Inventor Extensiones Extensions. Sensor de localización. Geo localización. Campo magnético. (here in Spanish)

I noticed that the accuracy is similar to that of the SensorLocation component, so I tried to obtain the location data through NMEA, for that I used the class:
GpsStatus.NmeaListener  |  Android Developers, was deprecated in API level 24.
Then I used the new class:
OnNmeaMessageListener  |  Android Developers

With this class we can obtain the Nmea data, the longitude and latitude data are similar to that of the LocationSensor component, but we can obtain other data such as number of satellites, hdop, geoidal, magnetic var., Course mg, therefore they are two different extensions .

1 Like

I actually thought to make a pedometer plus route drawer app but, when i tested the app without pedometer it worked great but with the pedometer component the accuracy dropped to 0 it made dots anywhere. Also how can i connect the dots to make it look more continuous please help

@juananton1991 , Thanks for your great jobs. I have a question. Can we connect an external RTK Gnss device via Bluetooth with Kodular?


Hi j,

If you can parse NMEA sentenses from the built-in GPS, could you teach me how to do it? I need to parse NMEA sentenses from an external bluetooth (GPS+GLONASS) device.

Tony Wu

Hi j,

My bluetooth device is Nordic 52833, GNSS device is MT3333, NMEA sentenses are streaming on my Android app now. I don’t know how to parse NMEA to Lat/Log, for google map. Should I use Android tutorial instead of MIT app inventer? I am a hardware engineer, sorry to ask such a basic question.

Tony Wu

hello, I tried these blocks but I find that the acquisition of the position remains much slower than when you open Google map, waze, or any other application using a gps. they have the position instantly. do you know why and what is different?

What a lame to put own name into gui.