MLS requests should have combined WiFi and 3GPP tower data
Currently, MLS geolocation requests are made independently for WiFi Access Points data and 3GPP tower data: the code does two separate MLS requests if both are available, each containing only either WiFi AP data or 3GPP tower data.
This results in two different location determinations. And if these two locations differ (which happens often) the Geoclue location jumps between these two locations as WiFi and 3GPP location sources are refreshed.
There is also a problem of reduced accuracy since with two separate requests the MLS backend can't cross-correlate data between both.
Instead, one is supposed to send a MLS query containing all the collected data at the same time, like the example at MLS API page shows.
All of the above is also true for MLS location submissions.
From a few weeks of testing I can confirm that sending WiFi and 3GPP tower data combined indeed makes Geoclue location determination significantly more stable when both of these sources are active.