GPS location giving wrong positions

I am using the GNSS location service for the FX30S and occasionally the signal drop out.
The le_gnss_GetLocation() will return:
latitude: -27
longitude: 133
which is the exact central position of australia, no decimal points.

In my code, before printing the position I check:
// Get position state
result = le_gnss_GetPositionState(positionSampleRef, &state);
if(state == LE_GNSS_STATE_FIX_NO_POS)
{
le_gnss_ReleaseSampleRef(positionSampleRef);
return;
}

how can I check if a position is a valid one or the GNSS has lost signal?

have you compared with aT!GPSLOC?

I am not using AT commands, I am running the gnss API function so I would need to know this from the code, possibly using any of the gnss functions

I mean you can compare with the value you obtained with AT!GPSLOC and see if it is valid.

Or have you tried with “gnss get posInfo”?

which function is that one exactly?
Can`t see anything else then le_gnss_GetPositionState()

those info are all exposed with other functions, in this specific case calling the le_gnss_GetPositionState() is returning a physical position, even if I know that is not correct as it points to central australia.
Function is returning LE_OK or I will not print the value, so I was asking which function will actually tell me if that position is accurate, or the GNSS location will not know it?
Problem could be with the settings? Like the sampling time?

That is why you can try “gnss” command and see if that is your program problem.
If “gnss” command has problem, then you can try AT command and see if this is legato problem.

so you suggest to trigger an AT command from the C source through dev, then to parse the reply and to match the result with what I am reading using the le_gnss_GetPositionState?

just an idea or method to let you know where is the problem is.

@jyijyi many thanks for your feedback, I think I will wait to see if I get any other reply from someone who has worked with the GPS positioning service.