Reputation: 498
I am trying to build an algorithm for locating a WiFi networks approximate location (Lat/Lon) using latitude, longitude and RSSI.
I built a NodeJS wifi scanner that constantly scans for wifi networks. Each network is tracked by mac address and has a tracking array that contains RSSI, Lat coordinate and Lon coordinate that is captured each time the scanner encounters a network.
Using this information, I want to calculate an approximate Lat/Lon coordinate/location for a particular network using the information contained in the tracking array for each access point.
Is there an existing implementation/algorithm for doing this?
"mac": "so:me:ra:nd:om:ac",
"ssid": "elcasa",
"channel": 5,
"tracking": [
{
"rssi": -79, // RSSI of signal when encountered by scanner
"lat": "some-lat-coord", // Latitude of network when encountered by scanner using GPS
"lon": "some-lon-coord" // Longitude of network when encountered by scanner using GPS
},
{
"rssi": -80,
"lat": "some-lat-coord",
"lon": "some-lon-coord"
},
{
"rssi": -76,
"lat": "some-lat-coord",
"lon": "some-lon-coord"
},
{
"rssi": -78,
"lat": "some-lat-coord",
"lon": "some-lon-coord"
},
{
"rssi": -75,
"lat": "some-lat-coord",
"lon": "some-lon-coord"
},
{
"rssi": -77,
"lat": "some-lat-coord",
"lon": "some-lon-coord"
},
{
"rssi": -74,
"lat": "some-lat-coord",
"lon": "some-lon-coord"
}
]
Upvotes: 1
Views: 520
Reputation: 11
An rssi value does not provide enough info to give you a lat and lon.
For large scale cases like cell towers, you need at least two different listening posts to determine a lat and lon and a third if you want to know a depth coordinate.
In most settings where 2.4Ghz and 5Ghz are used, there is a lot of interference and you would need a considerable number of listening posts to determine an approximate coordinate.
Upvotes: 1