With the increasing relevance of the Internet of Things and large-scale location-based services, LoRa localization has been attractive due to its low-cost, low-power, and long-range properties. However, existing localization approaches based on received signal strength indicators are either easily affected by signal fading of different land-cover types or labor intensive. In this work, we propose SateLoc, a LoRa localization system that utilizes satellite images to generate virtual fingerprints. Specifically, SateLoc first uses high-resolution satellite images to identify land-cover types. With the path loss parameters of each land-cover type, SateLoc can automatically generate a virtual fingerprinting map for each gateway. We then propose a novel multi-gateway combination strategy, which is weighted by the environmental interference of each gateway, to produce a joint likelihood distribution for localization and tracking. We implement SateLoc with commercial LoRa devices without any hardware modification, and evaluate its performance in a 227,500-m
urban area. Experimental results show that SateLoc achieves a median localization error of 43.5 m, improving more than 50% compared to state-of-the-art model-based approaches. Moreover, SateLoc can achieve a median tracking error of 37.9 m with the distance constraint of adjacent estimated locations. More importantly, compared to fingerprinting-based approaches, SateLoc does not require the labor-intensive fingerprint acquisition process.