Overture Maps for Romania: divisions, places and buildings
docs.overturemaps.org/getting-data
The open map of Romania, clipped out of the Overture Maps Foundation’s public GeoParquet release: all 19,485 administrative entities (the country, its 42 counties/județe, its 3,179 municipalities/UATs and its 14,414 localities) with their territory polygons and border lines, 327,091 points of interest, and 12,474,972 building footprints. Geometry is published as WKT in WGS 84 alongside a bounding box and a Hilbert spatial key, so a map-window question reads only the part of the country it asks about. Overture conflates OpenStreetMap, machine-detected building footprints from Microsoft and Google, Esri Community Maps and commercial place providers; every row carries its own provenance and its own licence in the `sources` column. Three of Overture’s six themes are included — divisions, places and buildings. Addresses are absent because, measured, the theme contains no Romanian rows at all; transportation and base are deferred for the reasons given in the README. REFERENCED LIVE, NOT COPIED: all five tables are published as views over Overture’s own GeoParquet release on its public AWS Open Data bucket, so no row is stored in this directory’s lake and every query reads Overture directly. That means the data is always exactly the release the published view points at — a newer Overture release becomes visible the moment this connector is re-run — and it means there is no history here beyond that one release, no row counts or column statistics of this platform’s own making, and a query needs network access to s3://overturemaps-us-west-2 (public, no credentials) plus DuckDB’s `spatial` extension loaded locally, for reading the source as much as for turning `geometry_wkt` back into a geometry.
Attribution, terms and provenanceWhat you must carry if you reuse this
- Attribution
- © OpenStreetMap contributors, Overture Maps Foundation (overturemaps.org). The divisions, division_areas, division_boundaries and buildings tables are available under the Open Database License (ODbL) v1.0. The places table is available under CDLA-Permissive-2.0.
- Notes
- LICENSING IS PER THEME, AND THIS DATASET SHIPS TWO OF THEM. Overture states the terms theme by theme at https://docs.overturemaps.org/attribution/, and they are not the same. (1) The DIVISIONS theme — the tables divisions, division_areas and division_boundaries — is ODbL-1.0, because it is built on OpenStreetMap, with contributions from geoBoundaries, Esri Community Maps and LINZ under CC-BY-4.0. Required credit: "© OpenStreetMap contributors". (2) The BUILDINGS theme is ODbL-1.0 for the same reason, and it is the most genuinely mixed of the three: it conflates OpenStreetMap (ODbL-1.0) with Microsoft Global ML Building Footprints (ODbL-1.0), Google Open Buildings (CC-BY-4.0), Esri Community Maps (CC-BY-4.0), the USGS 3D Elevation Program and several national mapping agencies. The licence that governs an individual row is in that row: sources[].license, lifted out as primary_source_license. (3) The PLACES theme is CDLA-Permissive-2.0, from Meta, Microsoft, PinMeTo, Krick, RenderSEO, DAC and BrightQuery, with Foursquare data under Apache-2.0 and AllThePlaces under CC0-1.0. Required credit: "Available under CDLA Permissive 2.0". ODbL IS SHARE-ALIKE. A derived database built on the divisions or buildings tables must itself be offered under ODbL, and any public use of it must attribute OpenStreetMap. The places table carries no such obligation, so keep the two apart if that matters to you — joining them makes the result ODbL. WHAT WE PUBLISH AND WHAT WE DO NOT. This is a derived work: Overture’s own columns for three of six themes, clipped to Romania, with geometry converted from GeoParquet to WKT and with area, length, centroid and Hilbert-key columns computed here. Nothing is aggregated away and no row is filtered on quality. One column is deliberately dropped: places.emails. Overture publishes it as a business contact channel, but in Romania a great many places are sole traders (PFA, II) whose registered address is an individual’s personal mailbox, and an email address is the field most likely to be a natural person’s rather than a business’s. Websites, telephone numbers and social profiles are kept, being channels a business publishes in order to be contacted. A reuser who needs the emails can read them from the Overture bucket directly. ACCURACY. Overture is a conflation of contributed and machine-detected data, not a cadastre and not a public register. Places carry a confidence score and should be counted with a stated threshold; building attributes are absent far more often than they are wrong; population on a division row is an OpenStreetMap contribution with no date, not a census figure. Corrections belong upstream — primary_source_record_id identifies the record to fix in OpenStreetMap or in whichever provider supplied it.
- Version
- snapshot 2026-09-04 · 01M1NPWYYD0QR1MHKNF6QFQ2VV
- Machine-readable:
- llms.txtmanifest.json
Tables
Open a table for its columnsLoading the schema…
Queries
Copy a snippet, or run it in the playgroundQuery it yourselfConnection snippets for DuckDB — Parquet or the live lake
Generated from this exact manifest version, so the URLs are the ones actually published.
INSTALL spatial;
LOAD spatial;
CREATE OR REPLACE SECRET "overture_maps_us_west_2" (TYPE s3, SCOPE 's3://overturemaps-us-west-2', PROVIDER 'config', REGION 'us-west-2');
ATTACH IF NOT EXISTS ':memory:' AS "overture_maps_ro";
CREATE SCHEMA IF NOT EXISTS "overture_maps_ro"."main";
CREATE OR REPLACE VIEW "overture_maps_ro"."main"."divisions" AS SELECT
d.id AS division_id,
'2026-08-19.0' AS release,
d.subtype AS subtype,
d.class AS class,
d.names."primary" AS name,
lower(strip_accents(d.names."primary")) AS name_lc,
CASE WHEN d.names.common IS NULL THEN NULL ELSE to_json(d.names.common) END AS names_common,
d.admin_level AS admin_level,
d.country AS country,
d.region AS region,
d.parent_division_id AS parent_division_id,
list_filter(d.hierarchies[1], lambda h: h.subtype = 'region')[1].name AS region_name,
list_filter(d.hierarchies[1], lambda h: h.subtype = 'region')[1].division_id AS region_division_id,
list_filter(d.hierarchies[1], lambda h: h.subtype = 'county')[1].name AS county_name,
list_filter(d.hierarchies[1], lambda h: h.subtype = 'county')[1].division_id AS county_division_id,
to_json(d.hierarchies) AS hierarchies,
d.population AS population,
d.wikidata AS wikidata,
to_json(d.capital_division_ids) AS capital_division_ids,
ST_X(d.geometry) AS longitude,
ST_Y(d.geometry) AS latitude,
ST_Hilbert((d.bbox.xmin + d.bbox.xmax) / 2, (d.bbox.ymin + d.bbox.ymax) / 2, {'min_x': 20.2, 'min_y': 43.5, 'max_x': 30.1, 'max_y': 48.3}::BOX_2D)::BIGINT AS spatial_key,
d.bbox.xmin AS bbox_min_longitude,
d.bbox.xmax AS bbox_max_longitude,
d.bbox.ymin AS bbox_min_latitude,
d.bbox.ymax AS bbox_max_latitude,
d.version AS version,
to_json(list_transform(d.sources, lambda s: {
'property': s.property, 'dataset': s.dataset, 'license': s.license,
'record_id': s.record_id, 'update_time': s.update_time
})) AS sources,
d.sources[1].dataset AS primary_source_dataset,
d.sources[1].license AS primary_source_license,
d.sources[1].record_id AS primary_source_record_id,
TRY_CAST(d.sources[1].update_time AS TIMESTAMPTZ) AS source_updated_at,
DATE '2026-09-04' AS snapshot_date,
TIMESTAMPTZ '2026-09-04T07:59:57.901Z' AS ingested_at
FROM read_parquet('s3://overturemaps-us-west-2/release/2026-08-19.0/theme=divisions/type=division/*.parquet', union_by_name = true) AS d
WHERE d.country = 'RO';
SELECT *
FROM overture_maps_ro.main.divisions
LIMIT 10;