Google's Geolocation Services used to charge 4$ for 1000 requests to their Cellular/Wi-Fi Geolocationing Service. Essentially you send a list of Wi-Fi MAC addresses and their associated RSSI values and get back a latitude and longitude with an accuracy metric. It was surprisingly good, when GPS wasn't available (sub 50 meters accuracy).