I found the solution in another question, check it here
thanks to user2147549, all credits to him.
this is what work in my case:
on cordova v5.3.3,you need to do this:
1、cordova plugin remove cordova-plugin-geolocation
2、cordova plugin add cordova-plugin-geolocation
3、copy your cordova-plugin-geolocation directory in your plguins dir to e:\
4、edit plugin.xml , add this:
<js-module src="www/Coordinates.js" name="Coordinates">
<clobbers target="Coordinates" />
</js-module>
<js-module src="www/PositionError.js" name="PositionError">
<clobbers target="PositionError" />
</js-module>
<js-module src="www/Position.js" name="Position">
<clobbers target="Position" />
</js-module>
<js-module src="www/geolocation.js" name="geolocation">
<clobbers target="navigator.geolocation" />
</js-module>
<config-file target="res/xml/config.xml" parent="/*">
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker"/>
</feature>
</config-file>
<config-file target="AndroidManifest.xml" parent="/*">
<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" />
</config-file>
5、cordova plugin remove cordova-plugin-geolocation
6、cordova plugin add e:\cordova-plugin-geolocation
7、cordova run android now, I got gps position well. thanks for WuZhonghua.