nRFCloud API: /location/ground-fix endpoint, fulfilledWith response

Hello.

I'm using the /location/ground-fix endpoint with both lte and wifi data. My understanding is that the endpoint returns the best location it can.

My question is around my expected value in the `fulfilledWith` attribute in the response.

Here's my example:

I try with this input of just wifi data --

{
  "wifi": [
    {
      "macAddress": "C6:17:A5:6C:65:85",
      "signalStrength": -81,
      "channel": 11,
      "age": 1898287
    },
    {
      "macAddress": "C6:17:A5:4C:65:85",
      "signalStrength": -82,
      "channel": 11,
      "age": 1898287
    },
    {
      "macAddress": "D0:66:7B:01:51:C5",
      "signalStrength": -91,
      "channel": 11,
      "age": 1898287
    },
    {
      "macAddress": "C6:17:A5:2C:65:85",
      "signalStrength": -81,
      "channel": 11,
      "age": 1898287
    }
  ]
}

The response is a 422. This is indication to me that the endpoint is unable to find a location based on this wifi data.

But we have both cell and wifi, so I add the lte data

{
  "ltecatm": [
    {
      "eci": 46718481,
      "mcc": 310,
      "mnc": 410,
      "tac": null,
      "earfcn": 5110,
      "pci": 309,
      "rsrp": -116,
      "rsrq": -16
    }
  ],
  "wifi": [
    {
      "macAddress": "C6:17:A5:6C:65:85",
      "signalStrength": -81,
      "channel": 11,
      "age": 1898287
    },
    {
      "macAddress": "C6:17:A5:4C:65:85",
      "signalStrength": -82,
      "channel": 11,
      "age": 1898287
    },
    {
      "macAddress": "D0:66:7B:01:51:C5",
      "signalStrength": -91,
      "channel": 11,
      "age": 1898287
    },
    {
      "macAddress": "C6:17:A5:2C:65:85",
      "signalStrength": -81,
      "channel": 11,
      "age": 1898287
    }
  ]
}        
    

I get a response this time!

{
  "lat": 31.47999287,
  "lon": -92.48657942,
  "uncertainty": 2316,
  "fulfilledWith": "WIFI"
}        
    

However, the response is fulfilledWith WIFI. My expectation was that this location was determined using SCELL since it was unable to determine a location using wifi APs alone. Also if I input this

{
  "ltecatm": [
    {
      "eci": 46718481,
      "mcc": 310,
      "mnc": 410,
      "tac": null,
      "earfcn": 5110,
      "pci": 309,
      "rsrp": -116,
      "rsrq": -16
    }
  ],
  "wifi": []
}           
    

I also get the same response

{
  "lat": 31.47999287,
  "lon": -92.48657942,
  "uncertainty": 2316,
  "fulfilledWith": "WIFI"
}        
    

But if I omit the "wifi" input all together

{
  "ltecatm": [
    {
      "eci": 46718481,
      "mcc": 310,
      "mnc": 410,
      "tac": null,
      "earfcn": 5110,
      "pci": 309,
      "rsrp": -116,
      "rsrq": -16
    }
  ]
}           
    

Then I get the same location

{
  "lat": 31.47999287,
  "lon": -92.48657942,
  "uncertainty": 2316,
  "fulfilledWith": "SCELL"
}        
    

The fact that I was unable to receive a location with just wifi, as well as the fact that it returns fulfilledWith WIFI even when I send an empty wifi array leads me to believe this location has been determined using SCELL only.

Is that not necessarily the case? My goal is to be able to make just a single API call with all the data but still differentiate between which piece of data was used to determine the location using the response, if possible. Thanks!!

Parents Reply Children
No Data
Related