Rub21 left a comment (openstreetmap/openstreetmap-website#7089)

Thanks @1ec5 for opening this. Here is a short summary of what I found about 
the current status.

**TL;DR:** The four current levels (`private`, `public`, `trackable`, 
`identifiable`) do not protect privacy as their names suggest, `trackable` is 
barely used (3.4%), and the mix of ordered and unordered points is the main 
reason trackpoint pagination is slow. Below is the data and the historical 
context I collected. The proposal will go in a follow-up comment.



## Problems we are trying to solve

The current four levels (`private`, `public`, `trackable`, `identifiable`) 
cause a few problems:

1. **The names suggest more privacy than the system gives.** `private` and 
`trackable` sound private, but their points are still served by the API. Most 
users do not know this — specially for `private`.

2. **`public` can be de-anonymized in a few clicks.** From the anonymous points 
in JOSM/iD, you can find the uploader on `/traces` and download the original 
GPX with username and timestamps.

3. **`trackable` is barely used** (3.4% of all traces). Almost nobody picks it 
on purpose.

4. **Four levels make pagination slow on large areas.** The trackpoints query 
splits into ordered and anonymous subqueries joined with `UNION ALL`, then 
pages by offset over billions of rows.

5. **iD and JOSM already load local GPX as a background layer.** So a 
server-side `private` level is no longer needed for that use case — users can 
open their traces directly in iD or JOSM without uploading them.


Looking at old tickets 
([#1002](https://github.com/openstreetmap/trac-tickets/issues/1002), 
[#2242](https://github.com/openstreetmap/trac-tickets/issues/2242)), users were 
confused by the old `public` checkbox and asked for more privacy. Later that 
same year (August 2009), [commit 
5651714](https://github.com/openstreetmap/openstreetmap-website/commit/565171486f6d90321e0291d5ccc3cf6a1c12e730)
 replaced the boolean with the four levels we have today. those may come from 
two binary axes (listed publicly or not × identifiable in the API or not)


## How each level behaves today

| Level | Listed at `/traces` | File downloadable | Points in API |
|---|---|---|---|
| `private` | No | No | Yes, anonymous and unordered |
| `public` | Yes | Yes | Yes, anonymous and unordered |
| `trackable` | No | No | Yes, anonymous but ordered with timestamps |
| `identifiable` | Yes | Yes | Yes, with user and timestamps |

## Distribution of all GPS traces (2026, thanks to @gravitystorm for the data)

| Level | Traces | Share |
|---|---|---|
| `identifiable` | 6.8M | 59.7% |
| `private` | 2.6M | 23.2% |
| `public` | 1.5M | 13.6% |
| `trackable` | 384k | 3.4% |

So `identifiable` is the most used, `trackable` is barely used, and `private` 
is the second largest — but its points are still served by the API anyway.


-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/7089#issuecomment-4461801560
You are receiving this because you are subscribed to this thread.

Message ID: 
<openstreetmap/openstreetmap-website/issues/7089/[email protected]>
_______________________________________________
rails-dev mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/rails-dev

Reply via email to