add geolocation api. close #2