I am following demo app textLoc to explore GPS locationing. I realized that if I added le_gnss_Start() to start GNSS service at beginning for le_gnss_GetLocation(), then le_posCtrl_Request() working fine in the original demo code will return failure.
What could be the reason? Why Location and GNSS are two different groups of APIs in Legato?
The Positioning API is more generic, so code that uses that API will be portable to devices that obtain position information from non-GNSS sources (like dead-reckoning, WiFi, or other sources). The GNSS API exposes more details about things like satellite constellations.
Also, the Positioning API is designed to be used by multiple client processes at the same time, while the GNSS API is not (yet). Furthermore, the Positioning API is built on top of the GNSS API, so if you use the GNSS API, directly, it will sometimes interfere with the operation of the Positioning API.