Open data
European Camera Index
The European Camera Index counts speed, red light, average speed and variable limit cameras per country, from the enforcement cameras drivers have reported to MapMetrics. This release is built from the snapshot of 2024-05-21: 108,008 unique cameras, of which 106,646 fall inside one of 106 countries and territories. The counts, the per-country GeoJSON files and the method below are free to reuse under CC BY 4.0.
- Snapshot
- 2024-05-21
- Unique cameras
- 108,008
- Countries and territories
- 106
- Licence
- CC BY 4.0
Three findings
- Italy holds the most cameras in Europe, 10,707 in the 2024-05-21 snapshot, ahead of the United Kingdom (5,806) and Germany (4,714).
- Belgium has 884.8 cameras per 10,000 km², the highest density in the table after Monaco and San Marino, which together cover 63 km².
- In 5 of the 11 countries we checked against OpenStreetMap (Switzerland, Austria, France, the Netherlands and Germany), two independently built camera counts land within 10 percent of each other.
Browse every camera on the speed camera map, or jump to the downloads.
What the index counts
Drivers report enforcement cameras to MapMetrics from the road. The index keeps four classes, named after what the device does. For the 106,646 cameras attributed to a country, the split is:
- Fixed point speed cameras: 74,435
- Red light cameras: 27,430
- Average speed sections: 3,270
- Variable limit cameras: 1,511
In the GeoJSON files each camera is one point with a stable reference, its class and, where a reporter recorded it, the enforced limit, the direction it faces and its active hours. The full field list is in catalog.json.
Cameras by European country
40 European countries, which together hold 42,762 of the 106,646 attributed cameras. Area is the land area used for the figure in our cartogram article, so the density column matches it. Select a column heading to sort.
| Data | ||||||||
|---|---|---|---|---|---|---|---|---|
| Italy | 10,707 | 8,043 | 2,512 | 152 | 0 | 302,073 | 354.5 | GeoJSON |
| United Kingdom | 5,806 | 3,670 | 1,044 | 787 | 305 | 242,495 | 239.4 | GeoJSON |
| Germany | 4,714 | 3,585 | 856 | 1 | 272 | 357,588 | 131.8 | GeoJSON |
| France | 3,853 | 3,039 | 743 | 70 | 1 | 551,695 | 69.8 | GeoJSON |
| Belgium | 2,701 | 1,151 | 1,042 | 498 | 10 | 30,528 | 884.8 | GeoJSON |
| Sweden | 2,455 | 2,453 | 0 | 2 | 0 | 450,295 | 54.5 | GeoJSON |
| Spain | 2,104 | 1,532 | 407 | 121 | 44 | 505,990 | 41.6 | GeoJSON |
| Austria | 1,457 | 1,205 | 195 | 20 | 37 | 83,879 | 173.7 | GeoJSON |
| Finland | 1,089 | 1,031 | 58 | 0 | 0 | 338,455 | 32.2 | GeoJSON |
| Poland | 875 | 540 | 248 | 86 | 1 | 312,696 | 28.0 | GeoJSON |
| Czechia | 859 | 271 | 98 | 487 | 3 | 78,871 | 108.9 | GeoJSON |
| Netherlands | 844 | 286 | 501 | 55 | 2 | 41,543 | 203.2 | GeoJSON |
| Switzerland | 638 | 255 | 370 | 2 | 11 | 41,291 | 154.5 | GeoJSON |
| Belarus | 616 | 613 | 0 | 2 | 1 | 207,600 | 29.7 | GeoJSON |
| Croatia | 486 | 466 | 20 | 0 | 0 | 56,594 | 85.9 | GeoJSON |
| Lithuania | 370 | 223 | 22 | 124 | 1 | 65,300 | 56.7 | GeoJSON |
| Hungary | 366 | 355 | 8 | 1 | 2 | 93,030 | 39.3 | GeoJSON |
| Greece | 362 | 311 | 50 | 0 | 1 | 131,957 | 27.4 | GeoJSON |
| Ukraine | 348 | 339 | 8 | 1 | 0 | 603,550 | 5.8 | GeoJSON |
| Bosnia and Herzegovina | 316 | 291 | 25 | 0 | 0 | 51,197 | 61.7 | GeoJSON |
| Norway | 290 | 246 | 0 | 42 | 2 | 323,782 | 9.0 | GeoJSON |
| Bulgaria | 270 | 103 | 167 | 0 | 0 | 110,879 | 24.4 | GeoJSON |
| Republic of Serbia | 234 | 162 | 66 | 6 | 0 | 77,474 | 30.2 | GeoJSON |
| Moldova | 177 | 60 | 109 | 8 | 0 | 33,851 | 52.3 | GeoJSON |
| Portugal | 174 | 152 | 0 | 19 | 3 | 92,212 | 18.9 | GeoJSON |
| Latvia | 147 | 109 | 5 | 33 | 0 | 64,589 | 22.8 | GeoJSON |
| Slovenia | 147 | 144 | 3 | 0 | 0 | 20,273 | 72.5 | GeoJSON |
| Romania | 80 | 53 | 27 | 0 | 0 | 238,398 | 3.4 | GeoJSON |
| Estonia | 75 | 73 | 2 | 0 | 0 | 45,227 | 16.6 | GeoJSON |
| Iceland | 48 | 29 | 19 | 0 | 0 | 103,000 | 4.7 | GeoJSON |
| Luxembourg | 37 | 29 | 4 | 4 | 0 | 2,586 | 143.1 | GeoJSON |
| Malta | 25 | 25 | 0 | 0 | 0 | 316 | 791.1 | GeoJSON |
| Andorra | 23 | 11 | 3 | 9 | 0 | 468 | 491.5 | GeoJSON |
| Slovakia | 21 | 18 | 0 | 1 | 2 | 49,035 | 4.3 | GeoJSON |
| Denmark | 20 | 19 | 0 | 1 | 0 | 42,933 | 4.7 | GeoJSON |
| San Marino | 13 | 13 | 0 | 0 | 0 | 61 | 2,131.1 | GeoJSON |
| Ireland | 6 | 0 | 2 | 4 | 0 | 69,825 | 0.9 | GeoJSON |
| Monaco | 5 | 3 | 1 | 1 | 0 | 2 | 25,000.0 | GeoJSON |
| North Macedonia | 3 | 2 | 0 | 1 | 0 | 25,713 | 1.2 | GeoJSON |
| Liechtenstein | 1 | 0 | 1 | 0 | 0 | 160 | 62.5 | GeoJSON |
Density divides cameras by land area and ignores road length and traffic. Microstates produce extreme values: Monaco has 5 cameras on 2 km².
Also in the downloads, without an area figure here: Russia (17,681), Turkey (1,710), Northern Cyprus (167) and Gibraltar (3).
Compared with OpenStreetMap
OpenStreetMap contributors map enforcement cameras as highway=speed_camera nodes. On 2026-08-27 we counted those nodes inside each country's admin_level=2 boundary with the Overpass API, for 11 European countries, and set them next to the driver-reported snapshot.
| Country | Driver reports (2024-05-21) | OpenStreetMap nodes (2026-08-27) | Ratio | Within 10% |
|---|---|---|---|---|
| Italy | 10,707 | 5,150 | 2.08 | No |
| Belgium | 2,701 | 1,562 | 1.73 | No |
| United Kingdom | 5,806 | 3,453 | 1.68 | No |
| Poland | 875 | 631 | 1.39 | No |
| Switzerland | 638 | 595 | 1.07 | Yes |
| Austria | 1,457 | 1,398 | 1.04 | Yes |
| France | 3,853 | 3,928 | 0.98 | Yes |
| Netherlands | 844 | 875 | 0.96 | Yes |
| Germany | 4,714 | 5,192 | 0.91 | Yes |
| Spain | 2,104 | 2,553 | 0.82 | No |
| Portugal | 174 | 292 | 0.60 | No |
OpenStreetMap counts © OpenStreetMap contributors, available under the Open Database Licence. They are shown for comparison and are not part of the CC BY 4.0 downloads.
The two counts come from different people using different tools: drivers reporting from the road, and mappers editing a public database. In Switzerland, Austria, France, the Netherlands and Germany they land within 10 percent of each other, a useful cross-check for data of this kind. The larger gaps run toward the driver reports in Italy, Belgium, the United Kingdom and Poland, and toward OpenStreetMap in Spain and Portugal.
The snapshot is from May 2024 and the OpenStreetMap counts from August 2026, and neither source contains the other. A ratio near 1 therefore means similar coverage; matching individual cameras would need a point by point comparison, which this page does not attempt. The full comparison, and how cameras are tagged in OpenStreetMap, is in our article on traffic enforcement cameras.
Method
Source. Four collections of driver reports (fixed, section, red light and variable limit), exported from the MapMetrics database. Together they hold 147,864 rows.
Deduplication. The collections are merged and deduplicated on rounded coordinates, which leaves 108,008 unique cameras. It matters most for the variable limit collection, which stores each camera once per speed value: 38,250 rows for 1,528 cameras.
Country attribution. Each camera is matched to a country by point in polygon against ISO 3166-1 country boundaries (the datasets/geo-countries file). 1,362 points fall outside every polygon, mostly on coastlines, and are left out, which gives 106,646 cameras in 106 countries and territories. An earlier pass matched a 107th polygon, the UN buffer zone in Cyprus, which is not a country, so the published files report 106. The catalog row with code CY is labelled Northern Cyprus, following the boundary file, and there is no separate row for the Republic of Cyprus.
OpenStreetMap counts. Nodes tagged highway=speed_camera inside each country's admin_level=2 boundary, counted with the Overpass API on 2026-08-27. Bounding box counts were discarded: a box around France returned 11,170 nodes against 3,928 inside the actual border.
Known quirks in the source
- Every record carries the same date, 2024-05-21. It is the export timestamp, so the counts describe what the snapshot held, and no camera has its own survey date.
- The source schema has a field for confirming that a camera is still there. It was never filled in, so no camera in the index is marked as confirmed.
- About 80 records carry the literal text "Error: 429" or "Error: 504" in the heading field of the source export, left over from an earlier geocoding pass.
What these numbers cannot tell you
- Reporting and enforcement are mixed together. A country with few cameras in the index may be lightly enforced or lightly reported (Ireland has 6 and Denmark has 20), and this data alone cannot separate the two.
- Mobile enforcement is largely missing. A report of a van that has since driven away describes a moment rather than a place.
- No approval status. Nothing in the index says whether a device is on a national approved list or calibrated. National registries hold that.
- Age. The snapshot is from May 2024. Cameras installed since then are missing, and cameras removed since then may still be counted.
Download the data
- counts-2024-05-21.csv
106 rows, one per country or territory: camera total and the four classes. The file name carries the snapshot date, so a cited link keeps pointing at these numbers.
- catalog.json
Dataset metadata, class and field definitions, and the same counts.
Camera points come as one GeoJSON file per country. The European files are linked from the table above and here; files for the other 62 countries and territories are in the list below.
- Andorra AD.geojson
- Austria AT.geojson
- Belarus BY.geojson
- Belgium BE.geojson
- Bosnia and Herzegovina BA.geojson
- Bulgaria BG.geojson
- Croatia HR.geojson
- Czechia CZ.geojson
- Denmark DK.geojson
- Estonia EE.geojson
- Finland FI.geojson
- France FR.geojson
- Germany DE.geojson
- Gibraltar GI.geojson
- Greece GR.geojson
- Hungary HU.geojson
- Iceland IS.geojson
- Ireland IE.geojson
- Italy IT.geojson
- Latvia LV.geojson
- Liechtenstein LI.geojson
- Lithuania LT.geojson
- Luxembourg LU.geojson
- Malta MT.geojson
- Moldova MD.geojson
- Monaco MC.geojson
- Netherlands NL.geojson
- North Macedonia MK.geojson
- Northern Cyprus CY.geojson
- Norway NO.geojson
- Poland PL.geojson
- Portugal PT.geojson
- Republic of Serbia RS.geojson
- Romania RO.geojson
- Russia RU.geojson
- San Marino SM.geojson
- Slovakia SK.geojson
- Slovenia SI.geojson
- Spain ES.geojson
- Sweden SE.geojson
- Switzerland CH.geojson
- Turkey TR.geojson
- Ukraine UA.geojson
- United Kingdom GB.geojson
Other countries and territories (62)
- Afghanistan (1)
- Algeria (257)
- Argentina (1,286)
- Armenia (328)
- Australia (1,322)
- Azerbaijan (438)
- Bahrain (83)
- Belize (2)
- Brazil (17,883)
- Canada (1,285)
- Chile (183)
- China (1)
- Colombia (391)
- Curaçao (2)
- Ecuador (234)
- Egypt (164)
- Fiji (13)
- Georgia (191)
- Guatemala (41)
- Honduras (2)
- Hong Kong S.A.R. (328)
- India (26)
- Iran (1,687)
- Iraq (137)
- Israel (201)
- Japan (183)
- Jordan (90)
- Kazakhstan (407)
- Kuwait (376)
- Kyrgyzstan (50)
- Laos (2)
- Lebanon (21)
- Malaysia (146)
- Mauritius (62)
- Mexico (339)
- Mongolia (2)
- Morocco (543)
- Namibia (9)
- New Zealand (96)
- Oman (723)
- Pakistan (87)
- Panama (5)
- Paraguay (1)
- Peru (28)
- Philippines (1)
- Qatar (765)
- Rwanda (147)
- Saudi Arabia (458)
- Singapore (263)
- South Africa (425)
- South Korea (13)
- Taiwan (1,157)
- Thailand (333)
- Trinidad and Tobago (4)
- Tunisia (24)
- United Arab Emirates (2,563)
- United States of America (8,067)
- Uruguay (167)
- Uzbekistan (257)
- Vietnam (2)
- Zambia (17)
- Zimbabwe (4)
Licence
CC BY 4.0, attribute: MapAtlas / MapMetrics driver reports. You may copy, adapt and use the data commercially, with credit and a link to this page.
Suggested citation
MapAtlas (2026). European Camera Index, MapMetrics driver reports, snapshot 2024-05-21. https://mapatlas.eu/camera-index. CC BY 4.0.
Files released 2026-08-27. Page last updated 2026-09-27. Data snapshot 2024-05-21.
Related
- Speed camera mapEvery camera in the index on one map, filterable by class, with per-country downloads.
- Traffic enforcement camerasThe camera types, how they are tagged in OpenStreetMap, and the full comparison.
- Cartogram mapsThe same European counts drawn as a Dorling cartogram, sized by area and by cameras.