Hi,
Gears can use a number of sources ('location providers') to try to
obtain your position. These include GPS or a server-based location
service. The getCurrentPosition and watchPosition methods support an
optional parameter of type PositionOptions which lets you specify
which sources to use. See
http://code.google.com/apis/gears/api_geolocation.html
for details.
With regard to getting a position from GPS, first make sure that
PositionOptions.enableHighAccuracy is set to true to instruct Gears to
use the GPS if present. Second, make sure your GPS is configured
correctly. Gears uses Windows Mobile's 'GPS Intermediate Driver' to
access the GPS. This should work with both onboard and bluetooth GPS
units, but may need configuring. See
http://blogs.msdn.com/windowsmobile/archive/2006/06/07/620387.aspx
for details.
By default, Gears also sends a request to a network server to get a
position fix using your device's IP address and any cell ID data (if
available). The default server is one provided by Google, but you can
set the server that gears should use by setting
PositionOptions.gearsLocationProviderUrls. You also can set this to
null to prevent the network request altogether.
Use of a network server means that Gears should be able to get a
position fix on a desktop computer, by using the IP address. The
accuracy is around 100km. However, it's possible that the Google
server can't locate your particular IP address, hence the error
'Network provider at
www.google.com/loc/json did not provide a good
position fix'. We're continually adding to and improving our database
of known IP addresses.
Let me know if you continue to have problems.
Steve