Generally for the Testing of Plugins we need to verify in the real device, but as your original question about using it in Emulators, for this to work out ,
Try to clear the cordova Cache ( if you are using Visual Studio , you can do it like Tools->Options )
Try to add watchPosition function with enableHighAccuracy : true
navigator.geolocation.watchPosition(onSuccess, onError, {
timeout:40000,
enableHighAccuracy: true
});
Update :
After a quick googling , found this link , It states that :
Starting with Chrome 50, Chrome no longer supports obtaining the
user's location using the HTML5 Geolocation API from pages delivered
by non-secure connections. This means that the page that's making the
Geolocation API call must be served from a secure context such as
HTTPS.
A possible solution can be like :
By adding appropriate permissions on Android platform, open your project, search for AndroidManifest.xml
and add these lines:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
For more Info Read this article and this thread