GPS & IP Geolocation Accuracy

Test position accuracy, altitude, and update speed.

Operations and parameters

Not listening

Return data (Position)

No location data yet. After clicking "Get Once" or "Start Monitoring", information such as coordinates, accuracy and timestamp will be displayed here.

Availability and Permissions

Geolocation API
Not available
Security context (HTTPS)
No (may cause positioning to be unavailable)
Positioning permissions (Permissions API)
Not supported (Permissions API is not available)
The current environment does not support positioning: please confirm the browser version and operating environment.

Event log (last 30 entries)

No logs yet

Tips

First look at the "Security Context (HTTPS)" and "Location Permission": when it is not HTTPS or the permission is denied, subsequent operations will most likely fail directly.
The difference between "get once" and "start monitoring": one-time positioning is suitable for quick verification; monitoring is suitable for observing movement/signal changes and return frequency.
The smaller the accuracy, the more "true" it is: indoor, Wi-Fi/base station positioning, and system power saving strategies will all affect accuracy and update frequency.
Pay attention to the "data age (now - timestamp)": if the age is consistently large, it may be that the system is returning the cache location (maximumAge) or the sensor is not updated.

GPS Guide

Check permissions and acquire coordinates.

Step 1

Check environment and permissions

about 10 seconds

Confirm HTTPS and view the location permission status.

Make sure the page is accessed under HTTPS; otherwise most browsers will limit location capabilities
View the status displayed by "Positioning Permissions (Permissions API)": granted/prompt/denied
If it is denied: Go to the browser address bar/site settings to allow positioning again and try again.
Tip: Some browsers/privacy modes may not support the Permissions API, but you can still click "Get Once" to trigger the authorization pop-up window.
Step 2

Get a positioning

About 5–15 seconds

Use getCurrentPosition to quickly verify whether you can get the coordinates and accuracy.

(Optional) First turn on "High Precision", set timeout to 8-15 seconds, and set maximumAge to 0 (try to get the latest data)
Click "Get Once" and wait for the browser to return coordinates/accuracy/timestamp
Observation accuracy: Outdoor GPS is usually smaller; indoors may be larger
If it times out or is unavailable: try increasing the timeout, turning off VPN/proxy, and switching to other browsers for comparison.
Step 3

Start listening and observe changes

about 20 seconds

Use watchPosition to observe movement, update frequency and logs.

Click "Start Monitoring" and observe whether the "Event Log" on the right continues to generate pos updates.
Pay attention to whether the "data age (now - timestamp)" is close to 0 (updated in time)
Comparison in scenarios such as moving/walking to the window: whether accuracy becomes smaller and updates more frequently
Click "Stop Monitoring" to end to avoid continuous power consumption

FAQ

Have questions? We have the answer! The following is a collection of frequently asked questions about geolocation testing.

1.

What can this page test?

It uses the browser Geolocation API to check whether positioning is available, and displays the permission status, whether it is a secure context (HTTPS), and the coordinates, accuracy, and timestamp returned by the positioning.

2.

Why does it have to be HTTPS?

Positioning is a sensitive capability, and modern browsers generally only allow it in a secure context. Non-HTTPS pages are often rejected or downgraded outright.

3.

Why do I get the message "Permission Denied" after I click "Get Once/Start Monitoring"?

This means that the site location permission has been denied by you. Please change the positioning to "Allow" in the site permissions/settings of the browser address bar, then refresh the page and try again.

4.

Why is "Permissions API Unavailable" displayed?

Some browsers/modes (e.g. privacy mode) may not support the Permissions API and therefore cannot pre-read permission status. But you can still click "Get Once/Start Listening" to have the browser pop up an authorization prompt and return the result.

5.

What is the difference between "get once" and "start listening"?

"Get once" calls getCurrentPosition and only returns the result once; "Start monitoring" calls watchPosition, which will continue to call back when the position changes or the system updates. It is suitable for observing update frequency, precision changes during movement, etc.

6.

Is the smaller the accuracy (positioning accuracy), the better?

Generally speaking, the smaller the value, the smaller the estimation error, but it is affected by indoor/outdoor, GPS/Wi‑Fi/base stations, system power saving strategies, etc. It is more meaningful to do comparative testing on the same device.

7.

Why is "data age (now - timestamp)" large?

It could be that the system returns a cache location (maximumAge allows caching), or the sensor is not updating/throttled by system power saving. You can try setting maximumAge to 0, increasing timeout, and retesting outdoors/by a window.

8.

What is the impact of "high precision"?

enableHighAccuracy=true may trigger a more power-consuming but more accurate positioning path (depending on the device and system). There may be limited improvement indoors, but it will be slower or more power-hungry; it is recommended to do a control test with it.

9.

Why does positioning time out (TIMEOUT)?

Common reasons are weak signal (indoor/obstructed), the system is saving power, or the browser/system service is temporarily unavailable. You can increase the timeout (for example, 15-30 seconds), or switch networks/turn off VPN/proxy, change browsers and try again.

10.

Is privacy safe? Will my location be uploaded?

The page just calls the browser positioning interface and displays the results on the front end. This page does not need to upload the location information to the server (unless you manually copy/submit it).