|
Algorithm 1 KNNSAP |
-
1:
Inputs: (LocalizationRequest, RadioMapDatabase, MinOverlapThreshold)
-
2:
Extract valid APs from LocalizationRequest to DetectedAPs
-
3:
ValidFingerprints = []
-
4:
for fingerprint in RadioMapDatabase do
-
5:
Calculate the overlap between detected APs and APs in fingerprint
-
6:
if overlap ≥ MinOverlapThreshold then
-
7:
ValidFingerprints.append(fingerprint)
-
8:
end if
-
9:
end for
-
10:
if length(ValidFingerprints) < 1 then
-
11:
Return: Localization failed
-
12:
else
-
13:
EstimatedPosition = KNN(LocalizationRequest, ValidFingerprints)
-
14:
Use the KNN algorithm to estimate position based on valid fingerprints
-
15:
Euclidean distance is computed only with valid fingerprints
-
16:
Return EstimatedPosition
-
17:
end if
|