Considering there is a subset of APs within a floor, we can measure the signal strength of different APs on several points. Then we can build a signal strength vector, i.e. the vector where each component represents the signal strength to a given AP.
Based on the signal strength vector, we can:
- Localization: Calculate the position of a random point according to the AP signal strength measured on that point.
- Prediction: Predict the AP signal strength on a random point according to the position of that point.
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport eth0 -s
You can also use my script AP_signal.sh (I created a soft link to airport)
Click the button "Localize" and choose the test file target_location_signal.txt
-
Find nearby points to the target point:
1.1 Calculate average RSSI of different AP signal on the target point
1.2 Find all AP whose signal strength is stronger than the average RSSI from step 1.1
1.3 Find nearby points which can receive the AP signal from step 2.
-
Calculate the coordinate of target point according to distance

- Accuracy is high if the target point is surrounding by other points and is low when there is no point on the one side of the target point. For example, accuracy is low when target point is on windows. This algorithm is like trilateration, using triangle to localize. I think that having test points on window could guarantee all target point is surrounding by test points, and then increase accuracy.
- Due to the blocking by bookshelfs and walls, using the distance between target point to test point is naive.





