Skip to main content
. 2024 Nov 28;24(23):7624. doi: 10.3390/s24237624
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