├── .github ├── pull_request_template.md └── workflows │ ├── lint_queries.yml │ ├── production_deploy_documentation.yml │ └── staging_deploy_documentation.yml ├── .gitignore ├── README.md ├── SECURITY.md ├── blog ├── 2024-04-21-welcome.mdx ├── 2024-04-22-beta-release.mdx ├── 2024-05-16-land-cover.mdx ├── 2024-07-24-explore-site.mdx ├── 2024-08-15-preview-august-release.mdx ├── 2024-10-21-preview-october-release.mdx └── 2024-12-18-transportation-to-ga.mdx ├── community ├── index.mdx └── used-by.mdx ├── docs ├── attribution.mdx ├── examples │ ├── CARTO.mdx │ ├── QGIS.mdx │ ├── build-a-map.mdx │ ├── fused.mdx │ ├── index.mdx │ ├── kepler-gl.mdx │ ├── lonboard.mdx │ ├── overture-tiles.mdx │ ├── pandas.mdx │ ├── rapid-id.mdx │ └── spark.mdx ├── gers │ ├── bridge-files.mdx │ ├── changelog.mdx │ ├── gers-demonstrations.mdx │ ├── gers-tutorial.mdx │ ├── index.mdx │ └── stability.mdx ├── getting-data │ ├── athena-aws.mdx │ ├── data-mirrors │ │ ├── bigquery.mdx │ │ ├── databricks.mdx │ │ ├── fused.mdx │ │ └── snowflake.mdx │ ├── duckdb.mdx │ ├── index.mdx │ ├── overturemaps-py.mdx │ ├── sedona.mdx │ └── synapse-azure.mdx ├── guides │ ├── addresses.mdx │ ├── base.mdx │ ├── buildings.mdx │ ├── divisions.mdx │ ├── index.mdx │ ├── places.mdx │ └── transportation.mdx ├── introduction.mdx └── playground │ └── test-sql-inclusion.mdx ├── docusaurus.config.js ├── fetch_schema.sh ├── package-lock.json ├── package.json ├── release-blog ├── 2024 │ ├── 2024-07-22.0.mdx │ ├── 2024-08-20.0.mdx │ ├── 2024-09-18.0.mdx │ ├── 2024-10-23.0.mdx │ ├── 2024-11-13.0.mdx │ └── 2024-12-18.0.mdx ├── 2025 │ ├── 2025-01-22.0.mdx │ ├── 2025-02-19.0.mdx │ ├── 2025-03-19.0.mdx │ ├── 2025-04-23.0.mdx │ └── 2025-05-21.0.mdx ├── 2023-alpha │ ├── 2023-07-26-alpha.0.mdx │ ├── 2023-10-19-alpha.0.mdx │ ├── 2023-11-14-alpha.0.mdx │ └── 2023-12-14-alpha.0.mdx ├── 2024-alpha │ ├── 2024-01-17-alpha.0.mdx │ ├── 2024-02-15-alpha.0.mdx │ └── 2024-03-12-alpha.0.mdx ├── 2024-beta │ ├── 2024-04-16-beta.0.mdx │ ├── 2024-05-16-beta.0.mdx │ └── 2024-06-13-beta.0.mdx └── template.mdx ├── sidebars.js ├── src ├── components │ ├── buildings-map.js │ ├── layers.js │ ├── map.js │ ├── queryBuilder.js │ ├── shared-libs │ │ ├── generatePath.tsx │ │ ├── generateResolverOptions.tsx │ │ ├── remoteResolver.tsx │ │ ├── stringifyObject.tsx │ │ └── yamlFileResolver.tsx │ └── yamlLoad.js ├── css │ ├── custom.css │ └── map.css └── queries │ ├── .sqlfluffignore │ ├── Snowflake │ └── snowflake_places.sql │ ├── athena │ ├── .sqlfluff │ ├── 0_select_from_release.sql │ ├── changelog_buildings_join.sql │ ├── hyderabad_buildings.sql │ ├── seattle_places.sql │ ├── transportation_connecting_segments.sql │ └── transportation_speed_limits.sql │ ├── duckdb │ ├── .sqlfluff │ ├── addresses_calgary.sql │ ├── addresses_counts.sql │ ├── addresses_nz_export.sql │ ├── addresses_to_parquet.sql │ ├── addresses_utah.sql │ ├── boulder_co_duckdb.sql │ ├── buildings_detroit.sql │ ├── buildings_in_division_area.sql │ ├── changelog_buildings_churn.sql │ ├── changelog_buildings_feature_by_change_type.sql │ ├── confident_mountains.sql │ ├── county_level_geometries.sql │ ├── divisions_border_usmx.sql │ ├── divisions_boundary_counts.sql │ ├── divisions_counts_per_entity.sql │ ├── divisions_counts_per_type.sql │ ├── divisions_denmark_locality_neighborhood.sql │ ├── divisions_division_area_counts.sql │ ├── divisions_division_counts.sql │ ├── divisions_lookup_osm.sql │ ├── divisions_philly_places.sql │ ├── divisions_query_specific_feature.sql │ ├── divisions_subtype_counts_specific_countries.sql │ ├── divisions_to_parquet.sql │ ├── hyderabad_buildings.sql │ ├── lithuania_places.sql │ ├── mountain_peaks.sql │ ├── new_york_pizza.sql │ ├── paris_roads.sql │ ├── places.sql │ ├── places_confidence.sql │ ├── places_conflating_OSM.sql │ ├── places_in_buildings.sql │ ├── places_mills.sql │ ├── rome_places.sql │ ├── seattle_buildings_for_map.sql │ ├── seattle_land_for_map.sql │ ├── seattle_land_use_for_map.sql │ ├── seattle_placenames_for_map.sql │ ├── seattle_places_for_map.sql │ ├── seattle_roads_for_map.sql │ ├── seattle_water_for_map.sql │ ├── segment_bbox.sql │ ├── transportation_parking.sql │ ├── transportation_routes.sql │ └── write_geoparquet.sql │ ├── partials │ └── osm_conversion_logic │ │ ├── building_class.sql │ │ ├── building_facade_material.sql │ │ ├── building_roof_material.sql │ │ ├── building_roof_shape.sql │ │ ├── building_subtype.sql │ │ ├── infrastructure.sql │ │ ├── land.sql │ │ ├── land_use.sql │ │ └── water.sql │ └── synapse │ └── seattle_places.sql ├── static ├── .nojekyll ├── example-map │ └── tiles │ │ ├── base.pmtiles │ │ ├── buildings.pmtiles │ │ ├── placenames.pmtiles │ │ ├── places.pmtiles │ │ └── roads.pmtiles ├── img │ ├── addresses │ │ ├── address-coverage-h3-may.png │ │ └── boston-export.png │ ├── amazon-athena-buildings-query-result.png │ ├── amazon-athena-buildings-query.png │ ├── blog │ │ ├── address-coverage-h3-october.png │ │ ├── class-subclass-diagram.png │ │ ├── explore-philadelphia2.gif │ │ ├── highway-signs.png │ │ ├── lc.gif │ │ ├── notebook-overture-lc.png │ │ ├── overture-lc.gif │ │ └── roads-tomtom-october.png │ ├── divisions │ │ ├── divisions-admin0-admin1-coverage.png │ │ └── divisions-us.gif │ ├── examples │ │ ├── CARTO Workflows.png │ │ ├── CARTO_Builder.gif │ │ ├── CARTO_DO.gif │ │ ├── CARTO_DO1.png │ │ ├── CARTO_DO2.png │ │ ├── CARTO_Workflows.gif │ │ ├── CARTO_overture_map.png │ │ ├── buildings-milan.png │ │ ├── fused_overture_buildings_dec2023.gif │ │ ├── gulf-water.png │ │ ├── kepler-overture-hyderabad.png │ │ ├── kepler_overture_buildings_hyderabad.gif │ │ ├── overture-buildings-pandas2.png │ │ ├── overture-pa-counties.png │ │ ├── places-milan.png │ │ ├── qgis-parquet-drag-drop.gif │ │ └── road-network-milan.png │ ├── explore-attribution.jpg │ ├── favicon.png │ ├── gers-layers.png │ ├── gers │ │ ├── buildings-change-type-amhara-region.png │ │ ├── overture-buildings-fema-structures.png │ │ └── schema-comparison.png │ ├── getting-data │ │ ├── BigQuery-1.png │ │ ├── aws-glue-data-catalog-values.png │ │ ├── bigquery-10.png │ │ ├── bigquery-11.png │ │ ├── bigquery-2.png │ │ ├── bigquery-3.png │ │ ├── bigquery-4.png │ │ ├── bigquery-5.png │ │ ├── bigquery-6.png │ │ ├── bigquery-7.png │ │ ├── bigquery-8.png │ │ ├── bigquery-9.png │ │ ├── databricks-1.png │ │ ├── databricks-2.png │ │ ├── databricks-3.png │ │ ├── databricks-4.png │ │ ├── databricks-5.png │ │ ├── databricks-6.png │ │ ├── databricks-7.png │ │ ├── databricks-8.png │ │ ├── databricks-9.png │ │ ├── overture-release-tables.png │ │ ├── review-and-create.png │ │ ├── snowflake-marketplace-1.png │ │ ├── snowflake-marketplace-2.png │ │ ├── snowflake-marketplace-3.png │ │ ├── snowflake-marketplace-4.png │ │ ├── snowflake-marketplace-5.png │ │ └── snowflake-marketplace-6.png │ ├── omf_logo.jpg │ ├── omf_logo_text_transparent.png │ ├── omf_logo_transparent.png │ ├── overture-tiles-customize-buildings.png │ ├── overture-tiles-customize-places.png │ ├── overture-tiles-header.png │ ├── overture-tiles-job-definitions.png │ ├── overture-tiles-view-push-commands.png │ ├── places │ │ └── places-coverage.png │ ├── rapid │ │ ├── rapid-buildings-data.png │ │ ├── rapid-places-data.png │ │ └── visualizing-places.png │ └── transportation │ │ ├── circle-looped-dark.png │ │ ├── circle-looped-light.png │ │ ├── circle-unlooped-dark.png │ │ ├── circle-unlooped-light.png │ │ ├── crossing-looped-dark.png │ │ ├── crossing-looped-light.png │ │ ├── crossing-unlooped-dark.png │ │ ├── crossing-unlooped-light.png │ │ ├── geometric-scoping-position-dark.svg │ │ ├── geometric-scoping-position-light.svg │ │ ├── geometric-scoping-range-dark.svg │ │ ├── geometric-scoping-range-light.svg │ │ ├── geometrically-scoped-speed-limit-dark.png │ │ ├── geometrically-scoped-speed-limit-light.png │ │ ├── heading-dark.svg │ │ ├── heading-light.svg │ │ ├── interior-connectors-after-dark.png │ │ ├── interior-connectors-after-light.png │ │ ├── interior-connectors-before-dark.png │ │ ├── interior-connectors-before-light.png │ │ ├── lane-blocks-dark.png │ │ ├── lane-blocks-light.png │ │ ├── lane-number-01-west-dark.png │ │ ├── lane-number-01-west-light.png │ │ ├── lane-number-02-north-dark.png │ │ ├── lane-number-02-north-light.png │ │ ├── lane-number-03-east-dark.png │ │ ├── lane-number-03-east-light.png │ │ ├── lane-number-04-south-dark.png │ │ ├── lane-number-04-south-light.png │ │ ├── level-dark.png │ │ ├── level-light.png │ │ ├── network-dark.png │ │ ├── network-light.png │ │ ├── oriented-east-dark.svg │ │ ├── oriented-east-light.svg │ │ ├── oriented-west-dark.svg │ │ ├── oriented-west-light.svg │ │ ├── roads-lane-numbering-dark.png │ │ ├── splitter_concept.svg │ │ ├── splitter_osm.png │ │ ├── splitter_output.png │ │ ├── splitter_overture.png │ │ ├── travel-modes-dark.png │ │ ├── travel-modes-light.png │ │ ├── turn-restriction-01-dark.png │ │ ├── turn-restriction-01-light.png │ │ ├── turn-restriction-02-dark.png │ │ └── turn-restriction-02-light.png └── notebooks │ ├── overture-duckdb-pandas-example.ipynb │ ├── overture-lonboard-geoarrow.ipynb │ ├── overture-lonboard-geodataframe-direct.ipynb │ ├── overture-lonboard-geodataframe-long.ipynb │ └── overture-lonboard-lc.ipynb └── test_queries.py /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ## Pull Request 2 | 3 | ### Docs Preview: 4 | 5 | [Docs preview for this PR.](https://dfhx9f55j8eg5.cloudfront.net/how-to/pr/) 6 | 7 | View all staged runs: 8 | https://github.com/OvertureMaps/docs/actions/workflows/publish-pr-to-staging.yml 9 | -------------------------------------------------------------------------------- /.github/workflows/lint_queries.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: SQLFluff lint the queries 3 | run-name: Basic testing of the queries in src/queries 4 | 5 | on: 6 | pull_request: 7 | paths: 8 | - 'src/queries/**' 9 | workflow_dispatch: 10 | 11 | permissions: 12 | id-token: write 13 | contents: read 14 | 15 | jobs: 16 | run: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout Repo 20 | uses: actions/checkout@v3 21 | 22 | - name: Set up Python 3.11 23 | uses: actions/setup-python@v3 24 | with: 25 | python-version: "3.11" 26 | 27 | - name: Install dependencies 28 | run: | 29 | python -m pip install --upgrade pip 30 | pip install sqlfluff 31 | 32 | - name: Run Tests 33 | run: cd src/queries && sqlfluff lint . 34 | -------------------------------------------------------------------------------- /.github/workflows/production_deploy_documentation.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Production Deploy 3 | run-name: Build and deploy production documentation 4 | 5 | on: 6 | push: 7 | branches: [main] 8 | 9 | # Allow running from the actions tab 10 | workflow_dispatch: 11 | inputs: 12 | schema_branch: 13 | description: 'Schema branch to pull from for /reference' 14 | required: true 15 | default: 'main' 16 | 17 | permissions: 18 | contents: write 19 | id-token: write 20 | pages: write 21 | 22 | jobs: 23 | build_docs_and_deploy: 24 | name: Build the documentation and deploy 25 | if: github.repository == 'overturemaps/docs' 26 | runs-on: ubuntu-latest 27 | steps: 28 | - name: Check out the docs repo 29 | uses: actions/checkout@v3 30 | 31 | - name: Set up Node.js 32 | uses: actions/setup-node@v4 33 | with: 34 | node-version: "20" 35 | 36 | - name: Install NPM dependencies 37 | run: npm install --prefer-dedupe 38 | 39 | - name: Build Docusaurus Pages 🔧 40 | env: 41 | SCHEMA_BRANCH: ${{ inputs.schema_branch }} 42 | run: npm run build 43 | 44 | - name: Deploy 🚀 45 | uses: JamesIves/github-pages-deploy-action@v4 46 | with: 47 | folder: build 48 | -------------------------------------------------------------------------------- /.github/workflows/staging_deploy_documentation.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Staging Deploy 3 | run-name: Publish docs to staging website (for PR) 4 | 5 | on: 6 | pull_request: 7 | 8 | # Allow running from the actions tab 9 | workflow_dispatch: 10 | inputs: 11 | schema_branch: 12 | description: 'Schema branch to pull from for /reference' 13 | required: true 14 | default: 'main' 15 | 16 | permissions: 17 | id-token: write 18 | contents: read 19 | 20 | jobs: 21 | build_and_publish: 22 | environment: 23 | name: staging 24 | url: https://dfhx9f55j8eg5.cloudfront.net/how-to/pr/${{github.event.number}}/ 25 | name: Build documentation and publish to staging 26 | runs-on: ubuntu-latest 27 | steps: 28 | - name: Check out the main docs repo repository and build. 29 | uses: actions/checkout@v4 30 | 31 | - name: Set up Node.js 32 | uses: actions/setup-node@v4 33 | with: 34 | node-version: "20" 35 | 36 | - name: Install NPM dependencies 37 | run: npm install --prefer-dedupe 38 | 39 | - name: Build Docusaurus website 40 | env: 41 | DOCUSAURUS_URL: https://dfhx9f55j8eg5.cloudfront.net/ 42 | DOCUSAURUS_BASE_URL: /how-to/pr/${{github.event.number}}/ 43 | SCHEMA_BRANCH: ${{ inputs.schema_branch }} 44 | run: npm run build 45 | 46 | - name: Fetch AWS credentials 47 | uses: aws-actions/configure-aws-credentials@v4 48 | with: 49 | role-to-assume: arn:aws:iam::207370808101:role/Overture_GitHub_schema_Publish_Docs_Staging 50 | aws-region: us-west-2 51 | 52 | - name: Copy Docusaurus website to staging bucket how-to/pr/${{github.event.number}}/ 53 | run: | 54 | aws --region us-east-2 s3 sync --delete --storage-class INTELLIGENT_TIERING build s3://overture-schema-docs-static-staging-us-east-2/how-to/pr/${{github.event.number}} 55 | 56 | - name: Purge CDN cache 57 | run: | 58 | aws cloudfront create-invalidation --distribution-id E3L106P8HVBE9L --paths "/how-to/pr/${{github.event.number}}/*" 59 | 60 | - name: Publish URL 61 | run: echo "### [https://dfhx9f55j8eg5.cloudfront.net/how-to/pr/${{github.event.number}}/](https://dfhx9f55j8eg5.cloudfront.net/how-to/pr/${{github.event.number}}/)" >> $GITHUB_STEP_SUMMARY 62 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .docusaurus 3 | node_modules/ 4 | docs/_examples/ 5 | docs/_schema/ 6 | docs/schema/ 7 | docs/schema 8 | static/_schema/ 9 | build/ 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Overture Documentation 2 | 3 | This repository uses [Docusaurus](https://docusaurus.io/) to publish the documentation pages seen at [docs.overturemaps.org](https://docs.overturemaps.org) 4 | 5 | ### Structure 6 | - `blog/`: Entries for the Overture engineering blog available at docs.overturemaps.org/blog 7 | - `community/`: The community page that showcases Overture data being used in the wild. 8 | - `docs/`: The main documentation pages available at docs.overturemaps.org/. The sidebar for these pages is manually curated in the `sidebars.js` file. 9 | - `release-blog/`: Release notes for every Overture data release. The latest release is always available at https://docs.overturemaps.org/release/latest/ 10 | - Notice there is no `schema reference` folder. See below. 11 | 12 | 13 | ### Schema Reference (`docs.overturemaps.org/schema`) 14 | The Overture schema repository [github/overturemaps/schema](https://github.com/overturemaps/schema) maintains the official Overture schema and the documentation surrounding the actual schema reference pages. This is to ensure that the schema, documentation, and relevant examples are always in-sync. 15 | 16 | The script `fetch_schema.sh` injects the contents of the schema's documentation into `docs/schema/` and copies the schema `YAMl` files and examples to `docs/_schema` and `docs/_examples`, respectively. This script runs with every build. 17 | 18 | Therefore, anything available at `docs.overturemaps.org/schema` (under the **Schema Reference** link in the header) comes from the Overture schema repository, not this repository. Any changes to `schema` will be overwritten on every build. 19 | 20 | 21 | 22 | ## Developing 23 | Docusaurus requires node. 24 | First, install the required packages: 25 | ``` 26 | $ npm install 27 | ``` 28 | 29 | Then, start the local server: 30 | ``` 31 | $ npm run start 32 | ``` 33 | 34 | Now navigate to http://localhost:3000 to see the live preview. 35 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /blog/2024-04-21-welcome.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Welcome! 3 | --- 4 | 5 | Welcome to the Overture Maps engineering blog! We're excited to tell the technical stories behind this big, exciting, ambitious, intensely collaborative project we’ve been [working on for more than a year](https://overturemaps.org/looking-forward-to-2024/). The engineers building Overture Maps are eager to connect with our developer community. In the posts we publish in the coming months, you’ll hear from team members who work at Amazon, Meta, Microsoft, TomTom, Esri, Development Seed, Precisely, and more. And we’d like to hear from you: [feedback and contributions](https://github.com/OvertureMaps/data/discussions) from folks working with our data and schema are crucial to our success. Thanks for joining us on this journey. We’re glad you’re here. -------------------------------------------------------------------------------- /blog/2024-07-24-explore-site.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Exploring Overture data, no SQL required 3 | --- 4 | 5 | Overture has launched a new browser-based tool to give users a no-code option to interact with our data. The Explore website is now the quickest way to get started with Overture, no SQL required: [https://explore.overturemaps.org](https://explore.overturemaps.org/#13.01/39.95692/-75.15583) 6 | 7 | | ![Exploring Philadelphia](/img/blog/explore-philadelphia2.gif) | 8 | |:--:| 9 | | *Checking out ["Lion Crushing a Serpent"](https://www.associationforpublicart.org/artwork/lion-crushing-a-serpent/) in Philadelphia’s Rittenhouse Park* | 10 | 11 | ## Not a map 12 | 13 | The Explore tool might look like a map, but we prefer to think of it as an x-ray data inspector. We’ve punted on making cartographic decisions in favor of displaying all of Overture’s themes, all at once: addresses, base, buildings, divisions, places, and transportation. Our users are coming at the data with different perspectives and goals, and we want to provide as much information as possible. We also want to stoke your curiosity and inspire you to ask new questions of Overture data. 14 | 15 | Seeing all the data all at once might be a bit overwhelming. We recommend zooming to an area of interest, hovering over the layers icon in the upper left corner of the map, and toggling the data themes off and on. You can click on an individual map feature, like the famous ["Lion Crushing a Serpent"](https://youtu.be/rTl2ewUc6bA?feature=shared) statue, to inspect its properties. Want to download the data? In the upper right corner of the Explore site, you can click on the Download Visible button to generate a GeoJSON file containing all the data visible in the browser. 16 | 17 | The [Explore site](https://explore.overturemaps.org/#13.01/39.95692/-75.15583) is currently in beta, and your feedback will inform the features we add in the coming months. If you have questions about the data, or if you want to report a problem with data quality or a glitch in the website, please click on the bug icon and [file an issue on GitHub](https://github.com/OvertureMaps/io-site/issues). (Note: we are actively working on fixing known issues with the downloaded data.) 18 | 19 | ## Build with us 20 | 21 | This project grew out of the diverse experiences and skill sets of the engineers working on Overture. We’re using [WebAssembly](https://webassembly.org/) and Rust, specifically [geoarrow-rs](https://geoarrow.org/geoarrow-rs/), to query and download [Overture’s GeoParquet files](https://docs.overturemaps.org/getting-data/). The front end is React and [Maplibre](https://maplibre.org/), and we’re generating [PMTiles](https://docs.protomaps.com/pmtiles/) to visualize the data. It’s a serverless site, using all cloud-native data storage formats. We also plan to make [PMTiles available with each Overture release](https://github.com/OvertureMaps/overture-tiles). Special thanks to Kyle Barron from [Development Seed](https://developmentseed.org/) and Brandon Liu from [Protomaps](https://protomaps.com/) for collaborating with Overture's Developer Advocacy team on this project. 22 | 23 | [Explore is open source](https://github.com/OvertureMaps/io-site), under an MIT license, and we welcome contributions from the Overture community. Our goal is to give you the basic building blocks for creating your own tools around Overture data. Let us know what you make and we’ll happily share it on our [community projects page](https://docs.overturemaps.org/community/). 24 | -------------------------------------------------------------------------------- /blog/2024-10-21-preview-october-release.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: What to expect in Overture’s October release 3 | description: Overture Maps Data Blog 4 | --- 5 | 6 | This week Overture is [releasing](https://docs.overturemaps.org/release/latest/) datasets that include new 7 | addresses across ten countries, new road features in Saudi Arabia and Italy from TomTom, 8 | and new building height data from Microsoft and Esri Community Maps contributors. Here's a preview of what you'll find in our October release. 9 | 10 | 11 | ## Addresses around the world 12 | 13 | | ![H3 cells addresses](/img/blog/address-coverage-h3-october.png) | 14 | |:--:| 15 | | *H3 coverage map of Overture addresses* | 16 | 17 | 18 | 19 | In July, Overture [launched](https://docs.overturemaps.org/release/2024-07-22.0/#new-theme-addresses) our addresses theme 20 | with 200 million features in 14 countries. Since then, 21 | we’ve added data for ten additional countries, bringing the total feature count to over 344 million. 22 | We’re building on great work by the open data community, including folks on the [OpenAddresses](https://openaddresses.io/) 23 | and [AddressForAll](https://www.addressforall.org/en/) projects. 24 | 25 | And now we're excited to include another new source of open data for addresses in the U.S. Previously, Overture pulled all address data 26 | in the United States from the [Department of Transportation’s National 27 | Address Database (NAD)](https://www.transportation.gov/gis/national-address-database). 28 | Over the September and October releases, we developed a cut-and-replace workflow to swap NAD data in New York City 29 | with data from [NYC Open Data](https://opendata.cityofnewyork.us/). Local data FTW! This is a process 30 | we will continue to refine so that we can more 31 | easily fold in new data across all [Overture themes](https://docs.overturemaps.org/guides/). 32 | 33 | ## Roads and building heights 34 | 35 | | ![TomTom roads](/img/blog/roads-tomtom-october.png) | 36 | |:--:| 37 | | *Roads from TomTom in Italy and Saudi Arabia* | 38 | 39 | Also in the October release, you’ll find new data from [TomTom](https://www.tomtom.com/), representing more than 30,000 kilometers of roads in Saudi Arabia 40 | and Italy. We also added new building height data from both Microsoft and [Esri Community Maps contributors](https://communitymaps.arcgis.com/home/). 41 | These updates highlight Overture’s goal to improve data quality and coverage by incorporating new data into each release, 42 | with a focus on [data sources](https://docs.overturemaps.org/attribution/) that have permissive open-source licenses. 43 | 44 | Please [reach out to us on GitHub](https://github.com/OvertureMaps/data/discussions) with questions and feedback about our data. 45 | If you have a suggestion for a new dataset or if you have data you'd like to contribute, you can email us at **data AT overturemaps.org**. We’d love to hear from you. 46 | 47 | -------------------------------------------------------------------------------- /community/used-by.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overture Deployed 3 | draft: true 4 | --- 5 | 6 | # Overture Deployed 7 | 8 | These companies and organizations are using Overture data in production. 9 | 10 | ### [Shadowmap](https://shadowmap.org/) 11 | Shadowmap is an interactive platform for visualizing and analyzing light at any location time, and date. In summer 2024, they started using Overture bulidings for global coverage and more accurate heights. 12 | 13 | "That's why we're super stoked about Overture – a service that greatly improves the way we can work with open map data in Shadowmap by connecting many different data sources." 14 | 15 | 16 | ### [Aire Labs](https://www.airelabs.com/) 17 | Aire Labs is a start-up with a mission to help climate positive technologies deploy faster. One of the customers is working on carbon removal in rivers, so they've been using Overture and OpenStreetMap geometries to augment the very coarse HydroRIVERS geometries. They've also been using Overture buildings as a proxy for population density. 18 | 19 | "I previously used OSM directly, but I live in geoparquet, so Overture has been a breath of fresh air." - senior data engineer, Aire Labs 20 | 21 | 22 | ### [Pokémon Go](https://pokemongolive.com/?hl=en) 23 | Pokémon Go is a mobile app that using GPS and AR to locate, capture, train, and battle virtual Pokémon, which appear as if they are in the player's real-world location. Overture buildings are now part of the game's basemap. 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/examples/QGIS.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | description: drag and drop GeoParquet files into QGIS 3 | title: QGIS 4 | --- 5 | 6 | import Tabs from '@theme/Tabs'; 7 | import TabItem from '@theme/TabItem'; 8 | import QueryBuilder from '@site/src/components/queryBuilder'; 9 | import BoulderCoDuckDB from '!!raw-loader!@site/src/queries/duckdb/boulder_co_duckdb.sql'; 10 | 11 | In this example, we'll show you how to get Overture Maps data into [QGIS](https://www.qgis.org/), a powerful and popular open source geographic information system. QGIS can ingest almost every spatial data format, including [Parquet](https://parquet.apache.org/docs/) and [GeoParquet](https://geoparquet.org/). Once you get your data into QGIS, the sky's the limit for data analysis, data conflation, visualization and beautiful mapmaking. 12 | 13 |
14 | 15 | Instructions: Install a version of QGIS with GDAL > 3.5 that can read `(geo)parquet` 16 | 17 | 18 | 19 | You can find the latest installers for Mac here: [github.com/opengisch/qgis-conda-builder/releases](https://github.com/opengisch/qgis-conda-builder/releases) 20 | 21 | Additionally, the [conda packages](https://anaconda.org/conda-forge/qgis) of QGIS have support for Parquet. 22 | 23 | 24 | 25 | Most distributions of QGIS for Windows have support for parquet. 26 | 27 | 28 | 29 | The [conda packages](https://anaconda.org/conda-forge/qgis) of QGIS have support for Parquet. 30 | 31 | Additionally, there is a Flatpak QGIS package that includes support for Parquet: 32 | 33 | ```bash 34 | flatpak install --user https://dl.flathub.org/build-repo/94031/org.qgis.qgis.flatpakref 35 | ``` 36 | 37 | 38 |
39 | 40 | ## Download Overture Data 41 | 42 | 43 | 44 | 45 | Using only the `bbox` parameters, we can efficiently retrieve all Overture data without processing any geometries. With SELECT `*`, we will simply download _all_ of the data in Overture across all themes and types. Note: if your query is interupted by a connection error, you might try running the following command first: `SET http_keep_alive=false;`. 46 | 47 | 48 | 49 | Note that this query gathers data from all Overture themes with `theme=*/type=*/*`. The resulting file has _all_ of the columns and multiple geometry types. 50 | 51 | 52 | 53 | 54 | 55 | 56 | The new [`overturemaps-py`](https://github.com/OvertureMaps/overturemaps-py) Python utility can download Overture data as both `geojson` and `geoparquet`. This example downloads buildlings around Boston. 57 | 58 | ```bash 59 | $ pip install overturemaps 60 | 61 | $ overturemaps download --bbox=-71.068,42.353,-71.058,42.363 \ 62 | -f geoparquet --type=building --output=boston.geoparquet 63 | ``` 64 | 65 | Note: run `overturemaps download --help` for a full list of types and output formats. 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | ## Add the data to QGIS 74 | All of the data files we created in the previous step are vector files that can be added as layers in QGIS. The easiest method is to drag-and-drop the file(s) directly into the map canvas. 75 | 76 | ![Drag-n-drop parquet files in QGIS](/img/examples/qgis-parquet-drag-drop.gif) 77 | -------------------------------------------------------------------------------- /docs/examples/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Examples 3 | --- 4 | 5 | Work with Overture data using the tools you know and love. 6 | 7 | import DocCardList from '@theme/DocCardList'; 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/examples/kepler-gl.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | description: explore Overture data in Kepler.gl 3 | title: Kepler.gl 4 | --- 5 | 6 | import Tabs from '@theme/Tabs'; 7 | import TabItem from '@theme/TabItem'; 8 | import QueryBuilder from '@site/src/components/queryBuilder'; 9 | import HyderabadBuildingsAthena from '!!raw-loader!@site/src/queries/athena/hyderabad_buildings.sql'; 10 | import HyderabadBuildingsDuckDB from '!!raw-loader!@site/src/queries/duckdb/hyderabad_buildings.sql'; 11 | 12 | In this example, we'll query the Overture buildings theme and download data for a specified bounding box. Then we'll load the data into [kepler.gl](https://kepler.gl/demo), an open-source tool for working with large map datasets, and visualize the buildings data by data source: [OpenStreetMap](https://wiki.openstreetmap.org/wiki/Key:building), [Microsoft ML Building Footprints](https://github.com/microsoft/GlobalMLBuildingFootprints), [Esri Community Maps](https://communitymaps.arcgis.com/home), and [Google Open Buildings](https://sites.research.google/open-buildings/). 13 | 14 | Requirements: Install DuckDB or log into AWS to access Athena. You do not need an account on kepler.gl. 15 | 16 | ## Get only the data you need 17 | Using DuckDB or Athena, query Overture data to get buildings for our area of interest, in this case a bounding box with Hyderabad, India. 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | ## Explore the data in Kepler.gl 29 | Drag and drop the GeoJSON file into [kepler.gl](https://kepler.gl/demo). Style the feature layer by choosing different colors based on the `primary_source` field. Then you can explore the multiple data sources that Overture has conflated to create the buildings theme. 30 | 31 | ![kepler.gl example](/img/examples/kepler-overture-hyderabad.png) 32 | 33 | ![kepler.gl gif](/img/examples/kepler_overture_buildings_hyderabad.gif) 34 | 35 | ## Next steps 36 | - Make [your own interactive Overture map](/examples/build-a-map) with MapLibre and PMTiles! 37 | -------------------------------------------------------------------------------- /docs/examples/rapid-id.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | description: inspect Overture geometries in Rapid 3 | title: Rapid 4 | --- 5 | 6 | import CodeBlock from '@theme/CodeBlock'; 7 | import Tabs from '@theme/Tabs'; 8 | import TabItem from '@theme/TabItem'; 9 | import QueryBuilder from '@site/src/components/queryBuilder'; 10 | 11 | 12 | ## Places 13 | 14 | In this example, we will load Overture Places data into Rapid so that we can visualize and inspect the geometries and their properties. 15 | 16 | To open Rapid v2, navigate to [https://rapideditor.org/edit](https://rapideditor.org/edit). 17 | 18 | Zoom in using the + or - hotkeys, the mouse scroll wheel, etc. to an area where you want to see Overture Places data. 19 | 20 | Click the 'Map Data' sidebar button or hit the 'F' hotkey. Then, click the three dots icon next to 'Custom Data'. 21 | 22 | ![Map Data Panel in Rapid](/img/rapid/visualizing-places.png) 23 | 24 | You will see the Custom Data dialog. Paste this URL: 25 | 26 | 27 | 28 | into the text input and hit 'OK'. 29 | 30 | Wait a few moments, and you should see some places data start to show up on the map. These places are clickable and inspectable: 31 | 32 | ![Rapid with Places Data Overlay](/img/rapid/rapid-places-data.png) 33 | 34 | Alternatively, Rapid can load the data automatically if the URL is formatted like this. 35 | 36 | 37 | 38 | ## Buildings 39 | 40 | Rapid can also load polygon or line features in addition to point features. 41 | 42 | 43 | 44 | ![Rapid with Buildings Data Overlay](/img/rapid/rapid-buildings-data.png) 45 | -------------------------------------------------------------------------------- /docs/gers/bridge-files.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bridge Files 3 | draft: true 4 | --- 5 | 6 | Bridge files are a key component of GERS. They link the feature IDs from the [source data](../attribution) — e.g. OSM, Meta, Micosoft, geoBoundaries, etc — to the GERS IDs in an Overture dataset. 7 | 8 | -------------------------------------------------------------------------------- /docs/gers/changelog.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Data Changelog 3 | --- 4 | import QueryBuilder from '@site/src/components/queryBuilder'; 5 | import changelog_buildings_churn from '!!raw-loader!@site/src/queries/duckdb/changelog_buildings_churn.sql'; 6 | import changelog_buildings_feature_by_change_type from '!!raw-loader!@site/src/queries/duckdb/changelog_buildings_feature_by_change_type.sql'; 7 | import changelog_buildings_join from '!!raw-loader!@site/src/queries/athena/changelog_buildings_join.sql'; 8 | 9 | With each data release, Overture publishes a changelog that capture changes in the data by the GERS ID for each feature. This information can be used to guide decisions about data matching, better understand data stability, and help detect data errors. 10 | 11 | The data changelog is available as Parquet files — partitioned by theme, type, and change type — at the following locations: 12 | 13 | | Provider | Location | 14 | | ------ | -------- | 15 | | Amazon S3 | `s3://overturemaps-us-west-2/changelog/` | 16 | | Microsoft Azure | `wasbs://changelog@overturemapswestus2.blob.core.windows.net/` | 17 | 18 | The latest path is: 19 | 20 | 21 | ## Types of changes 22 | 23 | The types of changes in the changelog include: 24 | 25 | - **added**: the feature with this ID is new in the current release and was not present in the previous release 26 | - **removed**: the feature with this ID is not present in the current release but was present in the previous release 27 | - **data_changed**: the feature with this ID in the current release contains a change in geometry or properties from the feature with this ID that was in the previous release 28 | - **unchanged**: the feature with this ID in the current release matches the geometry and properties of the feature with this ID that was in the previous release 29 | 30 | ## Querying the data changelog 31 | 32 | We can query the changelog with DuckDB to get a quick look at changes in data from the last release to the current release. In this example, we're grabbing the GERS ID, feature type, and change type for buildings in several towns across the [Amhara Region](https://en.wikipedia.org/wiki/Amhara_Region) in Ethiopia. 33 | 34 | 35 | 36 | We can also get a count of building features by change type for our area of interest. 37 | 38 | 39 | 40 | Taking this one step further, this time using Athena to run our query, we can join the changelog and data via Overture ID to connect the change type and feature geometries and properties. 41 | 42 | 43 | 44 | Finally we can use the results of our query to visualize building features by change type and inspect the properties for each feature. The example below, created using [kepler.gl](https://kepler.gl/), shows buildings in [Finote Selam](https://en.wikipedia.org/wiki/Finote_Selam), a city in the Amhara Region of Ethiopia. The data is from Overture's `2024-06-13-beta.0` release, to which we added 100 million new buildings, many of them derived from satellite imagery by Microsoft. 45 | 46 | ![Buildings By Change Type](/img/gers/buildings-change-type-amhara-region.png) 47 | -------------------------------------------------------------------------------- /docs/gers/gers-demonstrations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GERS Demonstrations 3 | --- 4 | 5 | Within the Overture ecosystem, member companies and collaborators have created several GERS prototypes and demonstrations to help you get started with data matching and GERS ID assignment. 6 | 7 | 8 | ### Esri 9 | 10 | Esri, a general member of the Overture Maps Foundation (OMF), has taken the lead in creating and sharing examples of GERS-enriched data. In their initial GERS demonstration project following Overture's October 2023 release, Esri matched [Overture buildings with FEMA's USA structures](https://www.esri.com/arcgis-blog/products/arcgis-online/mapping/enriching-overture-data-with-gers/) in four cities and created an enhanced pop-up window showing the combined properties from both datasets for each feature, including the GERS ID and FEMA USA Structures UUID. More recently, Esri created a map showing [Overture buildings data enriched with the FEMA data for the Contiguous United States (CONUS)](https://overture.maps.arcgis.com/home/item.html?id=52e3ebfaf01141d8bdfbaa06dcd96638). 11 | 12 | ![Overture Buildings and FEMA USA Structures](/img/gers/overture-buildings-fema-structures.png) 13 | 14 | Esri has also shared a feature layer combined data from the [Overture divisions theme, Census county geometries, and Census socioeconomic data (GERS ID to FIPS)](https://www.arcgis.com/home/item.html?id=c640a11058e34316a69f6a1e74049f9e). 15 | 16 | ### TomTom 17 | 18 | TomTom, an OMF steering committee member, shared a blog post about the importance of GERS in Overture's transportation data model: https://engineering.tomtom.com/overture-transportation-network-linear-referencing/ 19 | 20 | 21 | ### Safegraph 22 | 23 | Safegraph, a contributing member company of OMF, wrote [a blog post and tutorial](https://www.placekey.io/blog/joining-overture-and-npi-datasets) about Placekey facilitating matches between Overture POIs and National Provider Identifier (NPI) data. The notebook associated with the tutorial is available here: https://colab.research.google.com/drive/17BimmoiW4bqpyBb0-MdK2z9MwcSVAb-8?usp=sharing 24 | 25 | ### Precisely 26 | 27 | Drew Breunig of Precisely, a contributing member of OMF, put togther a step-by-step guide to joining Overture buildings data to Census Block Group data using DuckDB: 28 | https://www.dbreunig.com/2024/06/25/using-duckdb-spatial-joins-to-map-overture-gers-ids-to-us-census-fips-codes.html 29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/gers/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: What is GERS? 3 | slug: /gers 4 | --- 5 | import QueryBuilder from '@site/src/components/queryBuilder'; 6 | 7 | ## Global Entity Reference System 8 | 9 | The Global Entity Reference System (GERS) is a universal framework for structuring and matching map data across systems. GERS, coupled with Overture datasets, is a potential standard for identifying and referencing the physical and conceptual entities we've defined in our world. It's also a mechanism that can simplify the integration and exchange of data layers. 10 | 11 | At the heart of GERS is a unique ID called the GERS ID. Overture assigns a GERS ID to each feature in our dataset. That feature, and therefore its GERS ID, represents an entity that exists in the real world, such as an office building, highway, country, river, museum or school. 12 | 13 | :::note 14 | We use *feature* and *entity* interchangably in this documentation but their meaning is a bit more complicated. For example, a building that hosts a branch of a public library is represented in the Overture buildings dataset as a map feature with its own unique GERS ID. The public library may also be represented in the Overture places dataset as a point of interest with its own unique GERS ID. The building and the library are distinct entities with distinct GERS IDs. 15 | ::: 16 | 17 | 18 | ## The system 19 | 20 | The "S" in GERS stands for a *system*, with the following components: 21 | 22 | | Component | Description | 23 | | ---------- | ---------- | 24 | | [Overture reference map](/#overture-data) | The reference map consists of the canonical datasets Overture releases each month. | 25 | | Global registry of GERS IDs | The global registry is a catalog of all GERS IDs ever published. | 26 | | [Data changelog](changelog) | The changelog describes changes to entities across releases. You detect changes to Overture data from one release to another by querying across stable GERS IDs in the data changelog. | 27 | | Bridge files | Bridge files link a feature's ID from the [source data](../attribution) — e.g. OSM, Meta, Micosoft, geoBoundaries, etc — to its GERS ID in an Overture dataset | 28 | | [Onboarding services](gers-demonstrations) | These are tools and services to help you associate your data with GERS. | 29 | 30 | ## How does GERS work? 31 | 32 | 1. Overture assigns a **unique ID** to discrete entities. These could be buildings, road segments, places, or addresses. These IDs are intended to be **stable** across Overture releases. 33 | 34 | 2. Overture maintains open-source **matching and conflation libraries** to ensure that the ID remains stable across releases. 35 | 36 | 3. Each Overture release is the latest **reference map** for these IDs. 37 | 38 | 4. The reference map is **global** and **open**. 39 | 40 | 41 | ## Using GERS 42 | 43 | We envision the Overture ecosystem using GERS in the following ways: 44 | 45 | ### Matching and associating data 46 | You can independently associate your own data (or a third-party dataset) with Overture data. For example, you might want to link real-time traffic data to Overture road segments, insurance data to Overture buildings, restaurant reviews to features in Overture's places dataset, and socioeconomic data features in Overture's divisions dataset. When third-party data is matched to an Overture feature it picks up that feature's GERS ID and becomes "GERS-enabled" data, ready to be associated via ID to any other GERS-enabled dataset in the Overture ecosystem. 47 | 48 | GERS and Overture data layers 49 | 50 | 51 | ### Contributing data 52 | You can contribute data to the Overture Maps Foundation, and we will uas Overture's matching algorithms to match the features in your dataset to features in Overture. Matched features may be assigned an existing GERS ID, and we may generate new GERS IDs for new features. 53 | 54 | You'll find theme-specific examples of GERS use cases in the [GERS demonstrations](gers-demonstrations) section of this documentation. 55 | -------------------------------------------------------------------------------- /docs/gers/stability.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GERS ID Stability 3 | draft: true 4 | --- 5 | 6 | At the feature `type` level, Overture strives to maintain stability of GERS IDs from one release to another. Currently, we consider the IDs for the following feature types to be stable: 7 | 8 | | `theme` | `type` | Stable GERS ID | 9 | |-------|------|-----------| 10 | | `buildings` | `building` | Yes | 11 | | `divisions` | `division` | Yes | 12 | | `places` | `place` | Yes | 13 | | `transportation` | `segment` | Yes | 14 | | `transportation` | `connector` | Yes | 15 | 16 | 17 | We are working toward ID stability for the follow feature types: 18 | 19 | | `theme` | `type` | Stable GERS ID | 20 | |-------|------|-----------| 21 | | `addresses` | `address` | No | 22 | | `base` | `bathymetry` | No | 23 | | `base` | `infrastructure` | No | 24 | | `base` | `land` | No | 25 | | `base` | `land_cover` | No | 26 | | `base` | `land_use` | No | 27 | | `base` | `water` | No | 28 | | `buildings` | `building_part` | No | 29 | | `divisions` | `division_area` | No | 30 | | `divisions` | `division_boundary` | No | 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/getting-data/data-mirrors/bigquery.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: BigQuery (Google) 3 | --- 4 | 5 | 6 | 7 | Overture data is accessible in Google BigQuery as part of the [Google Cloud Public Dataset Program](https://cloud.google.com/bigquery/public-data), with the data being listed and maintained by [CARTO](https://www.carto.com). 8 | 9 | ![Overture data in Google Cloud](/img/getting-data/BigQuery-1.png) 10 | 11 | Below is a step-by-step guide on how to access and use Overture data in BigQuery: 12 | 13 | ## Before you begin 14 | 15 | To get started using Overture data in BigQuery, you must create or select a Google Cloud project with billing [enabled](https://cloud.google.com/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project). BigQuery is automatically enabled in new projects, but in order to activate it in a preexisting project, you should enable the [BigQuery API](https://console.cloud.google.com/apis/enableflow?apiid=bigquery&inv=1&invt=Abns8w). 16 | 17 | ## Getting Overture data in Google BigQuery 18 | 19 | 1. Log in to your [Google Cloud Console](https://console.cloud.google.com/). 20 | 2. Navigate to the **BigQuery** section by selecting `BigQuery` from the side menu or searching for it in the search bar. 21 | 22 | ![Overture data in Google Cloud](/img/getting-data/bigquery-2.png) 23 | 24 | 3. In the BigQuery console, click **Add Data**. Then, click on **Public Datasets**. 25 | 26 | ![Overture data in Google Cloud](/img/getting-data/bigquery-4.png) 27 | 28 | 4. The Google Cloud data marketplace will open. In the search box look for **Overture Maps**. 29 | 30 | ![Overture data in Google Cloud](/img/getting-data/bigquery-5.png) 31 | 32 | 5. Select the **Overture Maps Data** listing. Then, click on **View dataset**. 33 | 34 | ![Overture data in Google Cloud](/img/getting-data/bigquery-6.png) 35 | 36 | 6. Back again in the BigQuery console you will see the `bigquery-public-data` project and the `overture_maps`dataset selected. 37 | 38 | ![Overture data in Google Cloud](/img/getting-data/bigquery-7.png) 39 | 40 | 7. Our recommendation is that you add the `overture_maps` dataset or entirely the `bigquery-public-data` project in your starred selection in order to have access to the Overture data always at hand. 41 | 42 | ![Overture data in Google Cloud](/img/getting-data/bigquery-8.png) 43 | 44 | ## Working with Overture data in BigQuery 45 | 46 | 1. Now that Overture Maps data is available in your BigQuery console, you can start using it. Note that in the `overture_maps` dataset you have access to all tables from all the different Overture Maps themes: Addresses, Base, Buildings, Divisions, Places and Transportation. 47 | 48 | ![Overture data in Google Cloud](/img/getting-data/bigquery-9.png) 49 | 50 | 2. The release version is detailed as a `label` in each of the tables. You can check it out in the **Details** section of each table. 51 | 52 | ![Overture data in Google Cloud](/img/getting-data/bigquery-10.png) 53 | 54 | 3. You can now query any of the tables directly from your SQL Editor in BigQuery. Here's one example for the Places data in Overture Maps. 55 | 56 | ![Overture data in Google Cloud](/img/getting-data/bigquery-11.png) 57 | 58 | ```sql 59 | -- Identify places within the "Restaurant" category 60 | SELECT id, phones.list[0].element AS phone, names.primary AS name 61 | FROM `bigquery-public-data.overture_maps.place` 62 | WHERE categories.primary = "restaurant" 63 | LIMIT 100; 64 | ``` 65 | 66 | ## Additional notes 67 | 68 | - **Updates**: CARTO regularly updates the Overture datasets in BigQuery and keeps the dataset synced with the last release. You can check the release version of the data as a metadata label in each table. 69 | - **Support**: If you encounter issues accessing the data, contact CARTO support via [support@carto.com](mailto:support@carto.com). 70 | -------------------------------------------------------------------------------- /docs/getting-data/data-mirrors/databricks.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Databricks 3 | --- 4 | 5 | Overture data is accessible through the [Databricks Marketplace](https://marketplace.databricks.com/?searchKey=CARTO&sortBy=date) via public listings published and maintained by [CARTO](https://www.carto.com). Below is a step-by-step guide on how to access and use the data: 6 | 7 | ## Before you begin 8 | 9 | Before accessing the Overture Maps data in Databricks, ensure you have: 10 | 11 | - **Databricks Account**: An active Databricks account with access to the Databricks Marketplace. 12 | - **Workspace Access**: A Databricks workspace where you can import and analyze the data. 13 | - **Marketplace Permissions**: The appropriate permissions to browse and subscribe to datasets in the Databricks Marketplace. 14 | 15 | ## Getting Overture data from Databricks Marketplace 16 | 17 | 1. Log in to your Databricks workspace. 18 | 2. From the Databricks workspace home page, navigate to the **Databricks Marketplace** by selecting the **Marketplace** tab from the sidebar. 19 | 20 | ![Databricks Marketplace](/img/getting-data/databricks-1.png) 21 | 22 | 3. Use the search bar in the Databricks Marketplace to search for `CARTO` or `Overture Maps`. 23 | 24 | ![Databricks Marketplace](/img/getting-data/databricks-2.png) 25 | 26 | 4. The listings have been organized by Overture theme; therefore, you will find the following listings available: Addresses, Base, Buildings, Divisions, Places and Transportation. Select one to access the listing details. 27 | 28 | ![Databricks Marketplace](/img/getting-data/databricks-3.png) 29 | 30 | 5. Review the dataset description, terms of use, and any documentation provided by CARTO. 31 | 6. Click **Get instant access** to request access to the dataset. 32 | 33 | ![Databricks Marketplace](/img/getting-data/databricks-4.png) 34 | 35 | 7. Before you get access you can specify where are you planning to use the data and also provide a custom name to the Databricks Catalog in which the data will be made available. After accepting the terms, click on **Get instant access**. 36 | 37 | ![Databricks Marketplace](/img/getting-data/databricks-5.png) 38 | 39 | 8. Now, in the same listing page you have the option to click on **Open**. 40 | 41 | ![Databricks Marketplace](/img/getting-data/databricks-6.png) 42 | 43 | 9. After clicking on **Open** you will be taken to your Catalogs with the newly created Catalog `carto_overtue_maps_places`open. 44 | 45 | ![Databricks Marketplace](/img/getting-data/databricks-7.png) 46 | 47 | ## Working with Overture data in Databricks 48 | 49 | 1. Once you have the Overture Maps data that you need in your Catalogs you can start working with it. Following our example, in the Place table you can click on **Create** and then **Query**. 50 | 51 | ![Databricks Marketplace](/img/getting-data/databricks-8.png) 52 | 53 | 2. That will open the SQL Editor ready to query the `place` table. 54 | 55 | ![Databricks Marketplace](/img/getting-data/databricks-9.png) 56 | 57 | ## Additional notes 58 | 59 | - **Updates**: CARTO regularly updates the Overture datasets in Databricks and keeps the listings synced with the last release. You can check the release version of the data from the share description in each listing. 60 | - **Support**: If you encounter issues accessing the data, contact CARTO support via [support@carto.com](mailto:support@carto.com). 61 | - **Databricks**: For more information on Databricks Marketplace, refer to the official [Databricks documentation](https://docs.databricks.com/en/marketplace/index.html). 62 | -------------------------------------------------------------------------------- /docs/getting-data/data-mirrors/fused.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Fused (Python) 3 | --- 4 | 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | 10 | [Fused](https://www.fused.io/) is a cloud analytics platform to process data with [User Defined Functions](https://docs.fused.io/core-concepts/write/) (UDFs). UDFs are reusable Python functions that can be invoked from anywhere. The Fused Overture UDF enables you to quickly load Overture data, perform operations like joins with other datasets, visualize results directly on your browser, and integrate smoothly with data tools. 11 | 12 | ## Load data with the Overture UDF 13 | 14 | The Fused Overture UDF loads data from GeoParquet files of the Overture Dataset hosted by [Source Cooperative](https://beta.source.coop/repositories/fused/overture/description/). You can view the source code of the Fused Overture UDF in this [GitHub repo](https://github.com/fusedio/udfs/blob/main/public/Overture_Maps_Example/Overture_Maps_Example.py). 15 | 16 | 17 | ### Install Fused 18 | 19 | We install the [Fused Python library](https://pypi.org/project/fused/) with pip. 20 | 21 | ```python 22 | pip install fused>=1.10.0 23 | ``` 24 | 25 | ### Define the area of interest 26 | 27 | We specify the area for the UDF to download data by passing a `GeoDataFrame` to the `bbox` parameter. 28 | 29 | ```python 30 | import fused 31 | import geopandas as gpd 32 | import shapely 33 | 34 | bbox = gpd.GeoDataFrame( 35 | geometry=[shapely.box(-73.9847, 40.7666, -73.9810, 40.7694)], 36 | crs=4326 37 | ) 38 | ``` 39 | 40 | ### Run the Overture UDF 41 | We may run the Fused Overture UDF with `fused.run` (see more about `fused.run` on the [Fused docs](https://docs.fused.io/core-concepts/run-udfs/)). We specify the area to load data with the `bbox` parameter. The UDF also provides optional parameters to select specific Overture releases, datasets, and columns - giving you flexibility to fetch only the data you need. 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | ## Next steps 68 | - Visualize Overture datasets interactively in the [Fused UDF Editor](https://www.fused.io/workbench/catalog/Overture_Maps_Example-64071fb8-2c96-4015-adb9-596c3bac6787) 69 | - See an [example](/examples/fused/) of how to join Overture with other datasets 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /docs/getting-data/data-mirrors/snowflake.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Snowflake 3 | --- 4 | 5 | Overture data is accessible through the [Snowflake Data Marketplace](https://app.snowflake.com/marketplace/providers/GZT0ZKUCHE3/CARTO) via public listings published and maintained by [CARTO](https://www.carto.com). Below is a step-by-step guide on how to access and use the data: 6 | 7 | ## Getting Overture data from Snowflake Marketplace 8 | 9 | 1. Log in to your Snowflake account. Note that you must have an active Snowflake account with the necessary permissions to access the Data Marketplace. 10 | 2. In the Snowflake interface, navigate to the **Marketplace** tab in the sidebar menu within section **Data Products**. 11 | 12 | ![Snowflake Data Marketplace](/img/getting-data/snowflake-marketplace-1.png) 13 | 14 | 3. Use the search bar at the top of the Data Marketplace and enter `CARTO`. 15 | 4. The listings have been organized by Overture theme; therefore, you will find the following listings available: Addresses, Base, Buildings, Divisions, Places and Transportation. Select one to access the listing details. 16 | 17 | ![Overture Listings](/img/getting-data/snowflake-marketplace-2.png) 18 | 19 | 5. Review the data description, example queries, terms of use, etc. 20 | 6. Click on **Get**. 21 | 22 | ![Overture Places](/img/getting-data/snowflake-marketplace-3.png) 23 | 24 | 7. After clicking on **Get**, you are allowed to specify the name of the database in which to include the data and the user roles that will be able to work with it. 25 | 26 | ![Getting data](/img/getting-data/snowflake-marketplace-4.png) 27 | 28 | ## Working with Overture data in Snowflake 29 | 30 | 1. After access is granted, navigate to the **Databases** section in Snowflake (under **Data**). 31 | 2. Locate the Overture dataset in the database that you have just created. 32 | 33 | ![Overture data in database](/img/getting-data/snowflake-marketplace-5.png) 34 | 35 | 3. Once the database is created, you can then navigate to your worksheet in Snowflake and start working with the data. 36 | 4. Use SQL to query the Overture data. Below is an example query to retrieve some attributes from the Places data in Overture. 37 | 38 | ```sql 39 | -- Identify places within the "Restaurant" category 40 | SELECT id, phones['list'][0]['element'] AS phone, names['primary'] AS name 41 | FROM CARTO.PLACE 42 | WHERE categories['primary'] = 'restaurant' 43 | LIMIT 100; 44 | ``` 45 | 46 | ![Overture data in database](/img/getting-data/snowflake-marketplace-6.png) 47 | 48 | ## Additional notes 49 | 50 | - **Updates**: CARTO regularly updates the Overture datasets in Snowflake and keeps the listings synced with the last release. You can check the release version of the data from the share description in each listing. 51 | - **Support**: If you encounter issues accessing the data, contact CARTO support via [support@carto.com](mailto:support@carto.com). 52 | - **Snowflake**: For more information on Snowflake Data Marketplace, refer to the official [Snowflake documentation](https://docs.snowflake.com/en/user-guide/data-marketplace.html). 53 | -------------------------------------------------------------------------------- /docs/getting-data/overturemaps-py.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Python CLI 3 | --- 4 | 5 | Overture's [Python command-line tool](https://github.com/OvertureMaps/overturemaps-py) helps you download data within a region of interest and converts it to several common geospatial file formats. [This example](/blog/2024/05/16/land-cover/) shows how to use the tool to download Overture's land cover data in a Jupyter notebook. 6 | 7 | :::note 8 | This project is experimental and likely to change. See the [overturemaps-py repository](https://github.com/OvertureMaps/overturemaps-py) for timely updates. 9 | ::: 10 | 11 | ## Installation 12 | `pip install overturemaps` 13 | 14 | ## Quick Start 15 | Download the building footprints for the specific bounding box as GeoJSON and save to a file named "boston.geojson" 16 | 17 | ``` 18 | $ overturemaps download --bbox=-71.068,42.353,-71.058,42.363 -f geojson --type=building -o boston.geojson 19 | ``` 20 | 21 | ## Usage 22 | **download** 23 | 24 | Right now there is only one option to the overturemaps utility: download. It will download Overture Maps data with an optional bounding box into the specified file format. When specifying a bounding box, only the minimum data is transferred. The result is streamed out and can handle arbitrarily large bounding boxes. 25 | 26 | Command-line options: 27 | 28 | - `--bbox` (optional): west, south, east, north longitude and latitude coordinates. When omitted the entire dataset for the specified type will be downloaded 29 | - `-f` (required: one of "geojson", "geojsonseq", "geoparquet"): output format 30 | - `--output/-o` (optional): Location of output file. When omitted output will be written to stdout. 31 | - `--type/-t` (required): The Overture map data type to be downloaded. Examples of types are building for building footprints, place for POI places data, etc. Run overturemaps download --help for the complete list of allowed types 32 | 33 | This downloads data directly from Overture's S3 bucket without interacting with any other servers. By including bounding box extents on each row in the Overture distribution, the underlying Parquet readers use the Parquet summary statistics to download the minimum amount of data necessary to extract data from the desired region. 34 | 35 | To help find bounding boxes of interest, we like this [bounding box](https://boundingbox.klokantech.com/) tool from [Klokantech](https://www.klokantech.com/). Choose the CSV format and copy the value directly into the `--bbox` field. 36 | 37 | ## Next steps 38 | 39 | - Contribute to [overturemaps-py](//github.com/overturemaps/overturemaps-py). 40 | - Visualize the data in [QGIS](/examples/QGIS) or [kepler.gl](/examples/kepler-gl). 41 | - [Make an interactive map](/examples/build-a-map). 42 | - Check out our Made by the Overture [Community page](/community). 43 | - Dig into the [Overture schema](//docs.overturemaps.org/schema/). 44 | - [Talk to us on GitHub](https://github.com/orgs/OvertureMaps/discussions)! 45 | -------------------------------------------------------------------------------- /docs/getting-data/sedona.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sedona / Spark 3 | --- 4 | 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | As a series of GeoParquet files, Overture data is already optimized for distributed computing environments. The following example shows you how to work with Overture data in [Sedona](https://sedona.apache.org/), a cluster computing system for spatial data. 10 | 11 | For this example, you can spin up a single-node Sedona Docker image from [Apache Software Foundation DockerHub](https://hub.docker.com/r/apache/sedona). In production, Sedona can be deployed to nearly any cloud environment (Databricks, AWS EMR, etc.), or check out [Wherobots](https://www.wherobots.com) to learn more about hosted Sedona environments. 12 | 13 | 14 | ## Example 15 | To get started with the single-node docker image, ensure your [docker](https://www.docker.com/) client is started, and then run: 16 | 17 | ```bash 18 | docker pull apache/sedona 19 | docker run -p 8888:8888 apache/sedona:latest 20 | ``` 21 | 22 | A Jupyter Lab and notebook examples is now available in your browser at [http://localhost:8888](http://localhost:8888/). 23 | 24 | Create a new Python notebook with the following first cell: 25 | 26 | ```python 27 | from sedona.spark import * 28 | 29 | config = SedonaContext.builder().config( 30 | "fs.s3a.aws.credentials.provider", 31 | "org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider" 32 | ).getOrCreate() 33 | sedona = SedonaContext.create(config) 34 | ``` 35 | 36 | After initializing your PySpark/Sedona environment, you can load theme data directly from S3. The following examples leverage Sedona's understanding of GeoParquet, so we can take full advantage of spatial queries: 37 | 38 | 39 | 40 | 41 | 43 | 44 | 45 | For example, to find all of the places in Seattle, you can apply a spatial filter with the bounding box for Seattle: 46 | 47 | ```python 48 | places.filter("""ST_Contains( 49 | ST_GeomFromWKT('POLYGON((-122.459681 47.734124, -122.224433 47.734124, -122.224433 47.481002, -122.459681 47.481002, -122.459681 47.734124))'), 50 | geometry)""").limit(100).show() 51 | ``` 52 | 53 | Or, find all of the places within 1km of the Space Needle with the following query: 54 | 55 | ```python 56 | places.filter("""ST_DistanceSpheroid( 57 | ST_GeomFromWKT('POINT(-122.3493 47.6204)'), 58 | geometry) < 1000 59 | """) 60 | ``` 61 | 62 | 63 | 64 | 65 | 66 | 67 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | --- 94 | 95 | 96 | :::tip 97 | These are just examples to show you how to interface with Overture data in Sedona. Running locally on a single-node docker image doesn't offer any performance benefits, but when deployed in a distributed cloud environment, you can operate on the entire Overture dataset. 98 | ::: 99 | 100 | 101 | For more examples from wherobots, check out their Overture-related [Notebook examples](https://github.com/wherobots/OvertureMaps). 102 | -------------------------------------------------------------------------------- /docs/getting-data/synapse-azure.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Synapse (Azure) 3 | --- 4 | 5 | import QueryBuilder from '@site/src/components/queryBuilder'; 6 | import MicrosoftSynapseExample from '!!raw-loader!@site/src/queries/synapse/seattle_places.sql'; 7 | 8 | You will need to create an account to use [Synapse](https://azure.microsoft.com/en-us/products/synapse-analytics/) and other Microsoft Azure services. 9 | 10 | In your Azure account, create a [Synapse workspace](https://learn.microsoft.com/en-us/azure/synapse-analytics/get-started-create-workspace). You can then run this example query to get places in Seattle: 11 | 12 | 13 | 14 | More information is available at ["Query files using a serverless SQL pool"](https://learn.microsoft.com/en-us/training/modules/query-data-lake-using-azure-synapse-serverless-sql-pools/3-query-files) on Microsoft Learn. 15 | -------------------------------------------------------------------------------- /docs/guides/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Data Guides 3 | --- 4 | 5 | import DocCardList from '@theme/DocCardList'; 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/introduction.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | description: Overture Documentation 3 | slug: / 4 | title: Introduction 5 | --- 6 | 7 | Welcome! Overture provides free and open map data normalized to [one schema](schema). Our [six data "themes"](guides) — [addresses](guides/addresses), [buildings](guides/buildings), [base](guides/base), [divisions](guides/divisions), [places](guides/places), and [transportation](guides/transportation) — contain more than 3.7 billion features and will continue to expand in size and scale. The data we use to build our datasets comes from many sources, including OpenStreetMap, Meta, Microsoft, Esri, OpenAddresses, and [more](attribution). 8 | 9 | In this documentation, you'll find [instructions](getting-data) for accessing and handling Overture's large datasets, [reference material](schema/reference) to help you understand the Overture schema, comprehensive [guides](guides) to working with the many themes and types of Overture data, and [hands-on examples](examples) using data wrangling, analysis, and visualization tools you know and love. Want to see what our community has been building? Check out the [community projects](community) section of our documentation for inspiration. 10 | 11 | ## Overture data 12 | 13 | We [release](release) our data monthly as [cloud-native GeoParquet](https://guide.cloudnativegeo.org/geoparquet/) files, partitioned by theme and type. Each data theme contains one or more feature types, mapped in this way: 14 | 15 | ```json 16 | type_theme_map = { 17 | "address": "addresses", 18 | "building": "buildings", 19 | "building_part": "buildings", 20 | "division": "divisions", 21 | "division_area": "divisions", 22 | "division_boundary": "divisions", 23 | "place": "places", 24 | "segment": "transportation", 25 | "connector": "transportation", 26 | "bathymetry": "base", 27 | "infrastructure": "base", 28 | "land": "base", 29 | "land_cover": "base", 30 | "land_use": "base", 31 | "water": "base" 32 | } 33 | ``` 34 | 35 | You'll find the GeoParquet column definitions for each feature type in our data [guides](guides). 36 | 37 | ## Overture schema 38 | 39 | Although we release our data as GeoParquet, the Overture schema is defined by the [JSON](https://json-schema.org/) schema, and [GeoJSON](https://geojson.org/) is used as the canonical geospatial format. GeoJSON provides us with a mental model and language to express data constructions in the [schema](https://schema.overturemaps.org/schema.yaml). In our [schema reference docs](schema), we describe key schema concepts for each theme and definitions and examples for each feature type. 40 | 41 | ## Vision 42 | 43 | The [member companies of the Overture Maps Foundation](https://overturemaps.org/about/members/) are working collaboratively to build the datasets and schema. They share a common vision: 44 | 45 | ### Address the core, enable the periphery 46 | 47 | The Overture schema doesn't solve every problem. It offers complete, out-of-the-box solutions for the most fundamental "core" use cases. At the same time, the schema's extensible structure enables a wide range of other use cases ("the periphery"). 48 | 49 | ### Invent across the gap 50 | 51 | The mapping community already has access to many excellent tools, standards and practices. The Overture schema reuses these existing solutions to maximize compatibility and focus on solving unaddressed pain points. 52 | 53 | ### Backward-compatible is forward-compatible 54 | 55 | No design is future-proof, but good designs stay relevant by adding features without breaking what already works. The Overture schema can be enhanced in a backward-compatible way. 56 | 57 | ### Always open 58 | 59 | The Overture schema and data formats aim for compatibility with free and open-source tools, avoiding dependency on proprietary technologies. 60 | 61 | ## Contact us 62 | 63 | We want to hear from you. Ask questions, report bugs, provide feedback, and submit contributions via our public Overture GitHub repositories: 64 | 65 | - [Schema](https://github.com/OvertureMaps/schema) 66 | - [Data](https://github.com/OvertureMaps/data) 67 | - [Docs](https://github.com/OvertureMaps/docs) 68 | -------------------------------------------------------------------------------- /docs/playground/test-sql-inclusion.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | slug: /osmlogic 3 | title: OpenStreetMap to Overture Base Theme 4 | draft: true 5 | --- 6 | 7 | 8 | import QueryBuilder from '@site/src/components/queryBuilder'; 9 | 10 | import OSMtoOvertureInfrastructure from '!!raw-loader!@site/src/queries/partials/osm_conversion_logic/infrastructure.sql'; 11 | 12 | Features in the `infrastructure` type within Overture's `base` theme come form OpenStreetMap. The **subtype** and **class** of an Overture feature is determined by the tags that are present in OpenStreetMap. 13 | 14 | Below is the logic that is currently used to convert from OSM tags into Overture schema. 15 | 16 | 17 |
18 | How do I interpret this query? 19 | 20 | Each `WHEN` line in the `CASE` statement is a condition that defines both the **subtype** and the **class** of a feature. For example: 21 | ```sql 22 | WHEN element_at(tags,'highway') = 'bus_stop' THEN ROW('transit', 'bus_stop') 23 | ``` 24 | 25 | Here, `element_at(tags, 'highway')` is accessing the value of the `highway` tag in OSM. So, when `highway=bus_stop` is present, then the statement returns `ROW(subtype, class)`, in this case, **subtype**=`transit` and **class**=`bus_stop`. 26 | 27 | Since this particular statement is at the top of the list, it will take priority over other tags on the feature. If the same feature was also tagged as an airport gate, those tags would be ignored. 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /fetch_schema.sh: -------------------------------------------------------------------------------- 1 | # This script checks out the overturemaps/schema repository. 2 | # It will pull from `main` unless SCHEMA_BRANCH is explicitly set to something else 3 | 4 | rm -rf schema/ 5 | git clone --branch=${SCHEMA_BRANCH:-main} -n --depth=1 --filter=tree:0 https://github.com/overturemaps/schema 6 | cd schema 7 | git sparse-checkout set --no-cone examples schema docusaurus 8 | git checkout 9 | echo "Successfully checked out schema reference docs:" 10 | du -hs . 11 | cd .. 12 | 13 | echo "Copying Examples" 14 | rm -rf docs/_examples/ 15 | mkdir -p docs/_examples && cp -R schema/examples/* docs/_examples/ 16 | 17 | echo "Copying Schema YAML" 18 | rm -rf docs/_schema 19 | mkdir -p docs/_schema && cp -R schema/schema/* docs/_schema/ 20 | 21 | echo "Copying Schema Pages" 22 | rm -rf docs/schema 23 | mkdir -p docs/schema/ && cp -R schema/docs/schema/* docs/schema/ 24 | 25 | echo "Removing schema repo" 26 | rm -rf schema/ 27 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "overture-documentation", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "start": "./fetch_schema.sh && npm run docusaurus start", 8 | "start-dev": "EXPORT SCHEMA_BRANCH=dev && ./fetch_schema.sh && npm run docusaurus start", 9 | "start-staging": "EXPORT SCHEMA_BRANCH=staging && ./fetch_schema.sh && npm run docusaurus start", 10 | "build": "./fetch_schema.sh && npm run docusaurus build", 11 | "swizzle": "docusaurus swizzle", 12 | "deploy": "docusaurus deploy", 13 | "clear": "docusaurus clear", 14 | "serve": "docusaurus serve", 15 | "write-translations": "docusaurus write-translations", 16 | "write-heading-ids": "docusaurus write-heading-ids" 17 | }, 18 | "dependencies": { 19 | "@docusaurus/core": "^3.6.0", 20 | "@docusaurus/preset-classic": "^3.6.0", 21 | "@mdx-js/react": "^3.0.0", 22 | "clsx": "^1.2.1", 23 | "docusaurus": "^1.14.7", 24 | "docusaurus-json-schema-plugin": "^1.12.0", 25 | "js-yaml": "^4.1.0", 26 | "maplibre-gl": "^3.6.2", 27 | "pmtiles": "^2.11.0", 28 | "prism-react-renderer": "^2.1.0", 29 | "raw-loader": "^4.0.2", 30 | "react": "^18.2.0", 31 | "react-dom": "^18.2.0" 32 | }, 33 | "devDependencies": { 34 | "@docusaurus/module-type-aliases": "^3.3.2", 35 | "@docusaurus/types": "^3.3.2", 36 | "yaml-loader": "^0.8.0" 37 | }, 38 | "browserslist": { 39 | "production": [ 40 | ">0.5%", 41 | "not dead", 42 | "not op_mini all" 43 | ], 44 | "development": [ 45 | "last 1 chrome version", 46 | "last 1 firefox version", 47 | "last 1 safari version" 48 | ] 49 | }, 50 | "engines": { 51 | "node": ">=18.0" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /release-blog/2023-alpha/2023-07-26-alpha.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2023-07-26-alpha.0 3 | slug: 2023-07-26-alpha.0 4 | --- 5 | 6 | ### Highlights 7 | Overture `2023-07-26-alpha.0` is a first release version of open map data, establishing a baseline for future releases by the Overture Maps Foundation. The data is available for use under the designated licenses for each theme. Users should note that while Overture intends to release open map data on a regular cadence in the future, the date of subsequent releases has not been established yet. 8 | 9 | We would like feedback on the data, its usefulness and how it could be improved. Please use this Github repo for discussions and feedback related to this data release. 10 | 11 | Overture `2023-07-26-alpha.0` is formatted in the Overture Maps schema described here. It is available in cloud-native Parquet and stored on AWS and Azure. 12 | 13 | ### Changelog 14 | See our [changelog](https://github.com/OvertureMaps/schema/releases/tag/v0.4.0) here. 15 | 16 | ### Theme-specific updates 17 | Overture `2023-07-26-alpha.0` is being released in four themes: 18 | 19 | **Places Theme** 20 | The Places theme includes Point of Interest (POI) Data on approximately 59M places worldwide. Place records include the name, address, pin location, category and social media handles to the extent these are available. The data also includes a confidence score for each record. The sources of the Places theme include Meta and Microsoft places data. The Places data is formated in the Overture Maps schema for Places. 21 | 22 | Data in the Places theme is licensed under CDLA Permissive 2.0. 23 | 24 | 25 | **Buildings Theme** 26 | The Buildings theme includes building footprint and height data as available. It includes approximately 785M building outlines worldwide. The sources include OpenStreetMap, Microsoft Building footprints and Esri Community Partners. Some building heights have also been derived using lidar from USGS 3DEP. The Building data is in the Overture Maps data schema for Buildings. 27 | 28 | Data in the Buildings theme is licensed under ODbL. 29 | 30 | **Transportation Theme** 31 | The transportation theme includes road networks data based on OpenStreetMap. This release is a demonstration of our Shape and Connectivity model of the transportation network, and also showcases how Geometric Scoping (LR) interacts with a subset of the final properties. The data has been put into the Overture Maps data schema for transportation. As such, the data has been re-segmented and structured with some conditional attributes. For example, scoping dimensions related to speed limits have geometric scoping when speed limits change along a road segment. 32 | 33 | :::note 34 | The data includes some provisional Global Entity Reference System (GERS) data which is used to express relationships between road segments. This may not be representative of the final GERS format and should not be the basis for long term development work. 35 | ::: 36 | 37 | There are several missing properties in this data release that will be added in future releases: 38 | - Only includes road segments made from Ways that include a 'highway' tag 39 | - Non-geometric scoping properties are not included 40 | - Turn and Access restrictions are not included 41 | - Lane information is not included 42 | - Some language/scripts are not included in names properties 43 | 44 | Data is the Transportation theme is licensed under ODbL. 45 | 46 | **Administrative Boundaries (Admins) Theme** 47 | The Admins theme includes administrative boundaries for Level 2 (country-level) and Level 4 (first-level subdivisions under the country) worldwide. Admin records include the translated names for regions in ~40 languages, Context and Sources and placeholder GERS IDs. The sources of the admin theme are Esri and TomTom. The Administrative Boundary data is in the Overture Maps data schema for Admin. 48 | 49 | :::note 50 | Placeholder GERS IDs are populated in the data. These are needed to populate the Context property which points to another admin entity. For example, the Context property of Washington state feature has GERS ID of United States entity as value. This may not be representative of the final GERS format and should not be the basis for long term development work. 51 | ::: 52 | 53 | Data in the Admins theme is licensed under CDLA Permissive 2.0. 54 | 55 | ### Attribution 56 | - © OpenStreetMap contributors available under the Open Database License (www.openstreetmap.org/copyright) 57 | - U.S. Geological Survey, 2019, USGS 3D Elevation Program Digital Elevation Program 58 | - Building data © OpenStreetMap contributors, Microsoft, Esri Community Maps contributors 59 | -------------------------------------------------------------------------------- /release-blog/2024-alpha/2024-01-17-alpha.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2024-01-17-alpha.0 3 | slug: 2024-01-17-alpha.0 4 | --- 5 | 6 | ### Highlights 7 | Overture `2024-01-17-alpha.0` is now available. This release includes several incremental improvements, addition of geopolitical boundary information in the Admins Theme and expansion of GERS IDs across several themes. More information about these additions is available in the relevant sections below. 8 | 9 | This data is formatted in the Overture Data Schema unless otherwise noted. 10 | 11 | This data is available for use under the designated licenses for each theme. 12 | 13 | We would like feedback on the data, its usefulness, and how it could be improved. Please use this Github repo for discussions and feedback related to this data release. 14 | 15 | Overture `2024-01-17-alpha.0` is available in GeoParquet and stored on AWS and Azure. 16 | 17 | ### Changelog 18 | See our [changelog](https://github.com/OvertureMaps/schema/releases/tag/v0.8.0) here. 19 | 20 | ### Theme-specific updates 21 | Overture `2024-01-17-alpha.0` is released in five themes. 22 | 23 | **Buildings Theme** 24 | The dataset includes 2.35B conflated building footprints from OSM, Esri Community Maps, Microsoft ML Building Footprints, and Google Open Buildings. 25 | The order of conflation is OpenStreetMap → Esri Community Maps → high precision Google Open Buildings → Microsoft ML Building Footprints → lower precision Google Open Buildings. For example, if Esri has a building that does not exist in OSM, we take that building, then we “fill-in” the rest of the map with any ML buildings that do not intersect with either OSM or Esri. 26 | We use the 90% precision confidence threshold to delineate between high and lower precision for Google Open Buildings, this threshold varies per s2 cell. 27 | 28 | We've made incremental improvements to further ensure the data conforms to the buildings layer schema. 29 | 30 | 3d attributes from OSM, such as roof shape, are now available. 31 | 32 | The sources of the buildings theme include OpenStreetMap, Esri Community Maps, Microsoft Building footprints, and Google Open Buildings. Some building heights have also been derived using lidar from USGS 3DEP. 33 | 34 | Data in the Buildings theme is licensed under ODbL. 35 | 36 | **Transportation Theme** 37 | Refreshed data to include OSM data up to Dec 19 38 | 39 | :::note 40 | GERS IDs for connectors and segments should now be considered stable for future releases 41 | ::: 42 | 43 | Data in the Transportation theme is licensed under ODbL. 44 | 45 | **Base Theme** 46 | All of the features in the base theme are from OpenStreetMap, sourced via the latest Daylight Map Distribution (v1.38). 47 | 48 | Includes 43M water features, 63M land features, and 44M land use features. 49 | 50 | Most original OSM tags remain on all features. Some tags become normalized and added as top-level properties, such as the surface or wikidata tags. 51 | 52 | Data in the Base theme is licensed under ODbL. 53 | 54 | **Places Theme** 55 | This release has over 57M place records. 56 | 57 | The Places theme in this release includes incremental improvements to improve the accuracy and quality of the dataset. 58 | 59 | Data in the Places theme is licensed under CDLA Permissive 2.0. 60 | 61 | **Administrative Boundaries (Admins) Theme** 62 | Minor improvements on second-level subdivision of countries. 63 | Data from OSM is updated to 15th of January. 64 | 65 | This is first release with "geopolDisplay" property set on boundaries. 66 | 67 | Known issues: 68 | - Second-level subdivision are still not complete world-wide, as we search for data sources that are compatible with ODbL. 69 | - All first-level subdivisions have type=state and all second-level subdivisions have type=county which is not always true, we plan to address this issue in following release. 70 | - We plan to use admin_level=8,9,10 to add polygons to cities, towns, villages and other localities when available depending on individual country mapping. 71 | 72 | The sources of the admin theme are OpenStreetMap and Esri. The Administrative Boundary data is in the Overture Maps data schema for Admin. 73 | 74 | Data in the Admin theme is licensed under ODbL. 75 | 76 | ### Attribution 77 | - © OpenStreetMap contributors available under the Open Database License (www.openstreetmap.org/copyright) 78 | - U.S. Geological Survey, 2019, USGS 3D Elevation Program Digital Elevation Program 79 | - Building data © OpenStreetMap contributors, Microsoft, Esri Community Maps contributors, Google Open Buildings 80 | -------------------------------------------------------------------------------- /release-blog/2024-beta/2024-04-16-beta.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2024-04-16-beta.0 3 | slug: 2024-04-16-beta.0 4 | --- 5 | 6 | ### Highlights 7 | Here are the highlights for what's new and updated in the Overture Maps `2024-04-16-beta.0` release. The "beta" designation indicates the data and schema are largely stable. 8 | 9 | Overture Maps `2024-04-16-beta.0` is available in GeoParquet and stored on AWS and Azure. Users can select the data of interest and download it by following the process outlined [here](https://docs.overturemaps.org/getting-data/). 10 | 11 | We encourage developers wishing to adopt Overture Maps base layers to begin evaluating and providing [feedback on the data, schema, and GERS IDs](https://github.com/OvertureMaps/data/discussions). Depending on the feedback from this release and subsequent releases, we anticipate moving to a production release in the next few months. 12 | 13 | ### Breaking changes 14 | We renamed the `bbox` column fields to align with the upcoming [GeoParquet](https://geoparquet.org/) 1.1 spec. 15 | 16 | ``` 17 | minx → xmin 18 | miny → ymin 19 | maxx → xmax 20 | maxy → ymax 21 | ``` 22 | 23 | The fields are all now [Parquet Float (32-bit)](https://parquet.apache.org/docs/file-format/types/) where as they had previously been distributed as Double (64-bit). 24 | 25 | ### Deprecations 26 | In this release, we implemented a refactor of the `admins` theme called `divisions`. The `divisions` schema and data are [now available](/guides/divisions). The two themes will coexist for two subsequent releases (May 2024 and June 2024), at which point `divisions` will fully replace `admins`. More information on why we made this change [here](https://github.com/OvertureMaps/schema/discussions/117). 27 | 28 | ### Changelog 29 | See our [changelog](https://github.com/OvertureMaps/schema/releases) here. 30 | 31 | ### Theme-specific updates 32 | See [here](//attribution) for information about licensing and data attribution for each theme. 33 | 34 | **Administrative Boundaries Admins/Divisions** 35 | - Included OSM data up to 4/8. 36 | - Implemented the schema for the `divisions` theme, which has a better defined schema supporting perspectives, different types of polygons, and other new features. 37 | - Note: see information above about the deprecation of `admins`. 38 | 39 | **Base** 40 | - Included OSM data up to 3/16 (sourced via Daylight Map Distribution v1.44). 41 | - Included 46M water features, 55M land features, 40M land use features, and 48M infrastructure features. 42 | - Maintained the original OSM tags remain on all features. 43 | - Normalized and added `elevation`, `surface`, and `wikidata` as top-level properties. 44 | 45 | **Buildings** 46 | - Included OSM data up to 3/16 (sourced via Daylight Map Distribution v1.44). 47 | - Included 2.35B conflated building footprints from OSM, Esri Community Maps, Microsoft ML Building Footprints, and Google Open Buildings. 48 | - Made incremental improvements to further ensure the data conforms to the buildings layer schema. 49 | - Added 3d attributes from OSM, such as roof shape. 50 | - Note: The order of conflation is OpenStreetMap → Esri Community Maps → high precision Google Open Buildings → Microsoft ML Building Footprints → lower precision Google Open Buildings. For example, if Esri has a building that does not exist in OSM, we take that building, then we “fill-in” the rest of the map with any ML buildings that do not intersect with either OSM or Esri. We use the 90% precision confidence threshold to delineate between high and lower precision for Google Open Buildings, this threshold varies per s2 cell. 51 | 52 | 53 | **Places** 54 | - Included ~53 million place records. 55 | - Included stable GERS IDs propagated from the previous release; roughly 51 million of the IDs are propagated and 2 million are new. 56 | - Made incremental changes to improve the accuracy and quality of the dataset. 57 | 58 | **Transportation** 59 | - Included OSM data up to 4/7. 60 | - Classified 12.2M segments as path. 61 | - Added `is_covered` flag to denote partially enclosed segments. 62 | - Improved scope merging; fewer access restrictions entries are now required. 63 | - Fixed a projection issue affecting segment length calculation and linear referencing 64 | - Promoted `class` to a top-level property. 65 | - Moved `level` property into `road` property to allow linear referencing. 84% of all segments which had previously dropped `level` will now have that information. 66 | - Renamed `at` to `between` for ranged linear referencing. 67 | - Removed `mode_not` scoping. 68 | 69 | ### Attribution 70 | The data sources for each theme are cited [here](//attribution). 71 | -------------------------------------------------------------------------------- /release-blog/2024-beta/2024-05-16-beta.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2024-05-16-beta.0 3 | slug: 2024-05-16-beta.0 4 | --- 5 | 6 | Here's what's new and updated in the Overture Maps `2024-05-16-beta.0` release. The "beta" designation indicates the data and schema are largely stable. 7 | 8 | Overture Maps `2024-05-16-beta.0` is available in GeoParquet and stored on AWS and Azure. Users can select the data of interest and download it by following the process outlined [here](https://docs.overturemaps.org/getting-data/). We encourage developers wishing to adopt Overture Maps base layers to begin evaluating and providing [feedback on the data, schema, and GERS IDs](https://github.com/OvertureMaps/data/discussions). Depending on the feedback from this release and subsequent releases, we anticipate moving to a production release in the next few months. 9 | 10 | ### Breaking changes 11 | 12 | In the `buildings` theme, we promoted `class` to `subtype` and introduced new `class` values. This allows for more detail in a feature. Parking garages, for example, now have the attributes: `subtype=transportation` and `class=parking`. 13 | 14 | 15 | ### Deprecations 16 | Last month, we announced the deprecation of our `admins` theme and launched its replacement, `divisions`. Because of issues with missing data in `divisions`, we have extended the life of `admins`. Here is the new deprecation schedule: the two themes will coexist in the May, June, and July 2024 releases; in the August 2024 release, we will fully remove `admins` from our schema and data. More information on why we made this change [here](https://github.com/OvertureMaps/schema/discussions/117). 17 | 18 | ### Schema Changelog 19 | See our [changelog](https://github.com/OvertureMaps/schema/releases) here. 20 | 21 | ### Theme-specific updates 22 | 23 | **Divisions/Admins** 24 | 25 | - refreshed data with OpenStreetMap snap on 10 May 2024 26 | - populated `region` field for `division_area` type 27 | - populated `local_type` field `division` type 28 | - known issue: the `capital_division_id` field in `division` type is missing data 29 | 30 | :::warning 31 | See information above about the deprecation of `admins` schema and data 32 | ::: 33 | 34 | **Base** 35 | 36 | - added `land_cover` schema and data derived from ESA WorldCover high-resolution Earth observation imagery 37 | - added new subtypes in `infrastructure` type: `barrier`, `pedestrian`, `utility`, `waste_management`, `water` 38 | - added `min_zoom` and `max_zoom` attributes for cartographic purposes 39 | 40 | **Buildings** 41 | 42 | - promoted `class` to `subtype` and introduced new class values for buildings. Where relevant, the class tag is the value of the building key in OSM. This allows anyone to use previous class types as subtype (backwards compatible) and introduces new class values that allow for more detail, like parking. Parking garages, for example, now have the attributes: `subtype=transportation`, `class=parking`; example of new subtypes, promoted from class: `agricultural`, `civic`, `commercial`, `education`, `entertainment`, `industrial`, `medical`, `military`, `outbuilding`, `religious`, `residential`, `service`, `transportation` 43 | - made incremental updates from OSM since the previous release 44 | 45 | **Places** 46 | 47 | - made incremental changes to improve the accuracy and quality of the dataset 48 | 49 | **Transportation** 50 | 51 | - added missing vehicle travel mode 52 | - added missing `is_covered` road flag 53 | - populated `is_abandoned` flag when relevant abandoned or disused tags are present 54 | - added OSM source ids for connectors 55 | - fixed null linear referencing for names in some cases 56 | 57 | ### Attribution 58 | 59 | You'll find information about attribution and licensing [here](https://docs.overturemaps.org/attribution/). 60 | -------------------------------------------------------------------------------- /release-blog/2024/2024-11-13.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2024-11-13.0 3 | slug: 2024-11-13.0 4 | --- 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | ## Overview 10 | 11 | **The `2024-11-13.0` release of Overture data and `v1.3.0` of the Overture schema are now available.** This release includes more than 66 unique address datasets from many new [sources](/attribution). We added a new `postal_city` column to the addresses schema to support address formatting. In the transportation schema, we dropped the unutilized `lanes` column in preparation for transportation's GA release in the near future. 12 | 13 | The November release is available as GeoParquet files stored on both AWS and Azure. The release paths are: 14 | 15 | #### Microsoft Azure: 16 | ``` 17 | wasbs://release@overturemapswestus2.blob.core.windows.net/2024-11-13.0 18 | ``` 19 | 20 | #### Amazon S3: 21 | ``` 22 | s3://overturemaps-us-west-2/release/2024-11-13.0 23 | ``` 24 | :::note 25 | We are now releasing Overture's GeoParquet files in accordance with the [GeoParquet v1.1.0 specification](https://geoparquet.org/releases/v1.1.0/), with the covering metadata included. 26 | ::: 27 | 28 | You can access the datasets by following the process outlined [here](https://docs.overturemaps.org/getting-data/). We encourage you to ask questions, report bugs, and provide feedback via our [data](https://github.com/OvertureMaps/data) and [schema](https://github.com/OvertureMaps/schema) repositories on GitHub. If you have a suggestion for a new dataset or if you have data you'd like to contribute to Overture, you can email us at **data AT overturemaps.org**. We’d love to hear from you. 29 | 30 | 31 | ## Breaking changes 32 | 33 | We removed the `lanes` column from the transportation schema, as we have not had the data to populate it since its implementation many months ago. It's unlikely this will be a breaking change for most users, but we are erring on the side of caution and including this information here. We intend to introduce a reimagined, data-rich lanes property in 2025. 34 | 35 | ## Deprecations 36 | 37 | None. 38 | 39 | ## Theme-specific updates 40 | 41 | :::info 42 | The base, buildings, divisions, and places themes are in GA. The transportation theme is in beta, and the addresses theme is in alpha. 43 | ::: 44 | 45 | ### Addresses 46 | - added a new `postal_city` column to support address formatting 47 | - added the following countries to the address theme: 48 | - Belgium 49 | - [Ice](https://youtu.be/1HU7ocv3S2o?feature=shared)land 50 | - Italy 51 | - Latvia 52 | - Slovenia 53 | - Spain 54 | - Taiwan 55 | - added new data and new sources for several countries 56 | 57 | 58 | ### Base 59 | - added more detailed features at higher latitudes in the land cover feature type 60 | - added new `crater` subtype and associated classes in the land feature type 61 | - added new classes in the infrastructure feature type 62 | 63 | ### Buildings 64 | - made incremental updates 65 | - added a new roof class to the building feature type 66 | 67 | ### Divisions 68 | - made minor fixes and incremental updates 69 | 70 | ### Places 71 | - no updates 72 | 73 | ### Transportation 74 | - removed `lanes` column 75 | - added 2.6M connectors for crosswalks on roads that don't yet have an intersecting segment 76 | 77 | ## Global Entity Reference System (GERS) changelog 78 | 79 | The GERS changelog captures any changes in Overture features between this release and the previous release. The changelog is available as Parquet files — partitioned by theme, type, and change type — at the following locations on Azure and AWS: 80 | 81 | ``` 82 | wasbs://changelog@overturemapswestus2.blob.core.windows.net/2024-11-13.0 83 | ``` 84 | ``` 85 | s3://overturemaps-us-west-2/changelog/2024-11-13.0 86 | ``` 87 | 88 | You can find more information about [the GERS Changelog in our documentation](https://docs.overturemaps.org/gers/changelog/). 89 | 90 | ## Schema changelog 91 | The changelog for Overture schema `v1.3.0` is [here](https://github.com/OvertureMaps/schema/releases). 92 | 93 | ## Attribution 94 | 95 | You'll find information about attribution and licensing [here](/attribution). 96 | -------------------------------------------------------------------------------- /release-blog/2024/2024-12-18.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2024-12-18.0 3 | slug: 2024-12-18.0 4 | --- 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | ## Overview 10 | 11 | **The `2024-12-18.0` release of Overture data and `v1.4.0` of the Overture schema are now available.** This month [our transportation theme is going to GA](/blog), we're launching a [bathymetry feature type](/schema/reference/base/bathymetry) in our base theme, and we're at 400 million address records and counting in our [addresses theme](/guides/addresses). What a way to end the year! 12 | 13 | The datasets are available as GeoParquet files stored on both AWS and Azure. The release paths are: 14 | 15 | #### Microsoft Azure: 16 | ``` 17 | wasbs://release@overturemapswestus2.blob.core.windows.net/2024-12-18.0 18 | ``` 19 | 20 | #### Amazon S3: 21 | ``` 22 | s3://overturemaps-us-west-2/release/2024-12-18.0 23 | ``` 24 | 25 | You can access the datasets by following the process outlined [here](/getting-data). We encourage you to ask questions, report bugs, and provide feedback via our [data](https://github.com/OvertureMaps/data) and [schema](https://github.com/OvertureMaps/schema) repositories on GitHub. If you have a suggestion for a new dataset or if you have data you'd like to contribute to Overture, you can email us at data@overturemaps.org. We’d love to hear from you. 26 | 27 | 28 | ## Breaking changes 29 | 30 | None. 31 | 32 | ## Deprecations 33 | 34 | None. 35 | 36 | ## Theme-specific updates 37 | 38 | :::info 39 | The base, buildings, divisions, places, and transportation themes are in GA. The addresses theme is in alpha. 40 | ::: 41 | 42 | ### Addresses 43 | - reached a milestone of 400 million address records 44 | - added new data for: 45 | - Czechia 46 | - Liechtenstein 47 | - Uruguay 48 | - various counties in [Ca](https://youtu.be/lWQ4IPPXz2k?feature=shared)lifornia 49 | - replaced NAD data in Massachusetts with open data from MassGIS 50 | 51 | ### Base 52 | - added `bathymetry` feature type with 60,000 new features 53 | - added new classes to `land`, `land_use`, and `water` feature types, including `fatbike`, `hike`, and `nordic` 54 | 55 | ### Buildings 56 | - made incremental updates to data 57 | 58 | ### Divisions 59 | - made incremental updates to data 60 | 61 | ### Places 62 | - no updates 63 | 64 | ### Transportation 65 | - released the transportation theme in GA! 66 | - added new roads in the US, UK, and FR 67 | - added non-OSM roads in: 68 | - France: 172.87 kms 69 | - United Kingdom: 20.21 kms 70 | - Italy: 1099.86 kms 71 | - Saudi Arabia: 29793.48 kms 72 | - United States: 215.51 kms 73 | - merged adjacent route values 74 | - fixed access restrictions that were not populating with data 75 | - fixed class value that was not populating with data for 3K segments 76 | 77 | ## Global Entity Reference System (GERS) changelog 78 | 79 | The GERS changelog captures any changes in Overture features between this release and the previous release. The changelog is available as Parquet files — partitioned by theme, type, and change type — at the following locations on Azure and AWS: 80 | 81 | ``` 82 | wasbs://changelog@overturemapswestus2.blob.core.windows.net/2024-12-18.0 83 | ``` 84 | ``` 85 | s3://overturemaps-us-west-2/changelog/2024-12-18.0 86 | ``` 87 | 88 | You can find more information about [the GERS Changelog in our documentation](https://docs.overturemaps.org/gers/changelog/). 89 | 90 | ## Schema changelog 91 | The changelog for Overture schema `v1.4.0` is [here](https://github.com/OvertureMaps/schema/releases/tag/v1.4.0). 92 | 93 | ## Attribution 94 | 95 | You'll find information about attribution and licensing [here](/attribution). 96 | -------------------------------------------------------------------------------- /release-blog/2025/2025-01-22.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2025-01-22.0 3 | slug: 2025-01-22.0 4 | --- 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | ## Overview 10 | 11 | **The `2025-01-22.0` release of Overture data and `v1.5.0` of the Overture schema are now available.** 12 | 13 | The datasets are available as GeoParquet files stored on both AWS and Azure. The release paths are: 14 | 15 | #### Microsoft Azure: 16 | ``` 17 | wasbs://release@overturemapswestus2.blob.core.windows.net/2025-01-22.0 18 | ``` 19 | 20 | #### Amazon S3: 21 | ``` 22 | s3://overturemaps-us-west-2/release/2025-01-22.0 23 | ``` 24 | 25 | You can access the datasets by following the process outlined [here](/getting-data). We encourage you to ask questions, report bugs, and provide feedback via our [data](https://github.com/OvertureMaps/data) and [schema](https://github.com/OvertureMaps/schema) repositories on GitHub. If you have a suggestion for a new dataset or if you have data you'd like to contribute to Overture, you can email us at data@overturemaps.org. We’d love to hear from you. 26 | 27 | 28 | ## Breaking changes 29 | 30 | None. 31 | 32 | ## Deprecations 33 | 34 | None. 35 | 36 | ## Theme-specific updates 37 | 38 | :::info 39 | The base, buildings, divisions, places, and transportation themes are in GA. The addresses theme is in alpha. 40 | ::: 41 | 42 | ### Addresses 43 | - added five new data sources in Taiwan 44 | - made minor fixes and updates 45 | 46 | ### Base 47 | - made minor fixes and updates 48 | 49 | ### Buildings 50 | - added 228.5M buildings from a [new ML-derived building dataset of East Asian countries](https://zenodo.org/records/8174931) 51 | - made minor fixes and updates 52 | 53 | ### Divisions 54 | - new cartography column in the schema that has not yet been populated with data 55 | - added `is_land` and `is_territorial` properties to `division_area` and `division_boundary` feature types 56 | - refreshed data on 17 January 2025 57 | 58 | ### Places 59 | A statement from the Places engineering team: _“The places data has remained unchanged since the September 2024 release while we work on substantial pipeline upgrades. We anticipate releasing a new dataset in the coming months.”_ 60 | 61 | ### Transportation 62 | - added approximately 4000km of new TomTom-sourced roads in the US 63 | - refreshed data on 18 December 2024 64 | 65 | ## Global Entity Reference System (GERS) changelog 66 | 67 | The GERS changelog captures any changes in Overture features between this release and the previous release. The changelog is available as Parquet files — partitioned by theme, type, and change type — at the following locations on Azure and AWS: 68 | 69 | ``` 70 | wasbs://changelog@overturemapswestus2.blob.core.windows.net/2025-01-22.0 71 | ``` 72 | ``` 73 | s3://overturemaps-us-west-2/changelog/2025-01-22.0 74 | ``` 75 | 76 | You can find more information about [the GERS Changelog in our documentation](https://docs.overturemaps.org/gers/changelog/). 77 | 78 | ## Schema changelog 79 | The changelog for Overture schema `v1.5.0` is [here](https://github.com/OvertureMaps/schema/releases). 80 | 81 | ## Attribution 82 | 83 | You'll find information about attribution and licensing [here](/attribution). 84 | -------------------------------------------------------------------------------- /release-blog/2025/2025-02-19.0.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2025-02-19.0 3 | slug: 2025-02-19.0 4 | --- 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | ## Overview 10 | 11 | **The `2025-02-19.0` release of Overture data and `v1.6.0` of the Overture schema are now available.** 12 | 13 | The datasets are available as GeoParquet files stored on both AWS and Azure. The release paths are: 14 | 15 | #### Microsoft Azure: 16 | ``` 17 | wasbs://release@overturemapswestus2.blob.core.windows.net/2025-02-19.0 18 | ``` 19 | 20 | #### Amazon S3: 21 | ``` 22 | s3://overturemaps-us-west-2/release/2025-02-19.0 23 | ``` 24 | 25 | You can access the datasets by following the process outlined [here](/getting-data). We encourage you to ask questions and provide feedback on the Overture Maps [Discussions forum on GitHub](https://github.com/orgs/OvertureMaps/discussions). You can also file issues and report bugs in our [data](https://github.com/OvertureMaps/data/issues) and [schema](https://github.com/OvertureMaps/schema/issues) repositories. If you have a suggestion for a new dataset or if you have data you'd like to contribute to Overture, you can email us at data@overturemaps.org. We’d love to hear from you. 26 | 27 | 28 | ## Breaking changes 29 | 30 | None. 31 | 32 | ## Deprecations 33 | 34 | None. 35 | 36 | ## Theme-specific updates 37 | 38 | :::info 39 | The base, buildings, divisions, places, and transportation themes are in GA. The addresses theme is in alpha. 40 | ::: 41 | 42 | ### Addresses 43 | - added new data in the following US counties: 44 | - Hillsbough County, FL 45 | - Manatee County, FL 46 | - Dekalb County, GA 47 | - Oakland County, MI 48 | - added new data in Yukon Territory, Canada 49 | - updated the NAD source to v18 50 | - removed erroneous address data in BE 51 | 52 | 53 | ### Base 54 | - minor data fixes and updates 55 | - refreshed data with 15 February 2025 OSM update 56 | 57 | 58 | ### Buildings 59 | - fixed geometries from the Zenodo dataset 60 | - refreshed data with 5 February 2025 OSM update 61 | 62 | 63 | ### Divisions 64 | - added county boundaries in Colombia and Uruguay 65 | - added ~12k new division_boundary features 66 | - refreshed data with January 2025 GeoBoundaries update 67 | - migrated pipeline to Apache Spark implementation which resulted in improved names, capitals and parenting properties 68 | 69 | 70 | ### Places 71 | - released the first data update since September 2024, from a new and re-worked places conflation pipeline within Overture. This should result in more stable places releases moving forward 72 | - added new places data, resulting in a ~12% increase in the total number of places 73 | - removed a small number of places without a primary name or primary category 74 | 75 | 76 | ### Transportation 77 | - added ~40000km of new TomTom-sourced roads in France, Germany, Italy, Jordan, Kuwait, Mexico, Monaco, Saudi Arabia, Switzerland, United Arab Emirates, United Kingdom, United States, and Yemen 78 | - refreshed data with 5 February 2025 OSM update 79 | 80 | ## Global Entity Reference System (GERS) changelog 81 | 82 | The GERS changelog captures any changes in Overture features between this release and the previous release. The changelog is available as Parquet files — partitioned by theme, type, and change type — at the following locations on Azure and AWS: 83 | 84 | ``` 85 | wasbs://changelog@overturemapswestus2.blob.core.windows.net/2025-02-19.0 86 | ``` 87 | ``` 88 | s3://overturemaps-us-west-2/changelog/2025-02-19.0 89 | ``` 90 | 91 | You can find more information about [the GERS Changelog in our documentation](https://docs.overturemaps.org/gers/changelog/). 92 | 93 | ## Schema changelog 94 | The changelog for Overture schema `v1.6.0` is [here](https://github.com/OvertureMaps/schema/releases). 95 | 96 | ## Attribution 97 | 98 | You'll find information about attribution and licensing [here](/attribution). 99 | -------------------------------------------------------------------------------- /release-blog/template.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TEMPLATE 3 | draft: true 4 | --- 5 | import Tabs from '@theme/Tabs'; 6 | import TabItem from '@theme/TabItem'; 7 | import QueryBuilder from '@site/src/components/queryBuilder'; 8 | 9 | ## Overview 10 | 11 | **Overture's `2024-xx-xx.x` data release is now available.** 12 | 13 | 14 | 15 | The datasets are available as GeoParquet files stored on both AWS and Azure. The release paths are: 16 | 17 | #### Microsoft Azure: 18 | ``` 19 | add release path here 20 | ``` 21 | 22 | #### Amazon S3: 23 | ``` 24 | add release path here 25 | ``` 26 | 27 | 28 | 29 | You can access the datasets by following the process outlined [here](https://docs.overturemaps.org/getting-data/). We encourage users to report bugs and provide feedback on the data, schema, and GERS on one of our Overture GitHub repositories: 30 | 31 | - [Schema](https://github.com/OvertureMaps/schema) 32 | - [Data](https://github.com/OvertureMaps/data) 33 | - [Docs](https://github.com/OvertureMaps/docs) 34 | - [Python command-line tool](https://github.com/OvertureMaps/overturemaps-py) 35 | - [Explore site](https://github.com/OvertureMaps/io-site) 36 | 37 | 38 | 39 | ## Breaking changes 40 | 41 | 42 | 43 | ## Deprecations 44 | 45 | 46 | ## Theme-specific updates 47 | 48 | ### Addresses 49 | 50 | ### Base 51 | 52 | ### Buildings 53 | 54 | ### Divisions 55 | 56 | ### Places 57 | 58 | ### Transportation 59 | 60 | 61 | ## GERS Changelog 62 | 63 | 64 | ## Schema Changelog 65 | 66 | 67 | ## Attribution 68 | 69 | You'll find information about attribution and licensing [here](/attribution). 70 | -------------------------------------------------------------------------------- /sidebars.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ 2 | const sidebars = { 3 | docs: [ 4 | 'introduction', 5 | { 6 | type: 'category', 7 | label: 'Getting Started', 8 | collapsed: true, 9 | items: [ 10 | 'getting-data/index', 11 | 'getting-data/duckdb', 12 | 'getting-data/overturemaps-py', 13 | 'getting-data/athena-aws', 14 | 'getting-data/synapse-azure', 15 | { 16 | type: 'category', 17 | label: 'Data Mirrors', 18 | collapsed: true, 19 | items: [ 20 | 'getting-data/data-mirrors/fused', 21 | 'getting-data/data-mirrors/bigquery', 22 | 'getting-data/data-mirrors/databricks', 23 | 'getting-data/data-mirrors/snowflake', 24 | ], 25 | }, 26 | ], 27 | }, 28 | { 29 | type: 'category', 30 | label: 'Examples', 31 | link: { 32 | type: 'doc', 33 | id: 'examples/index' 34 | }, 35 | collapsed: true, 36 | items: [ 37 | 'examples/CARTO', 38 | 'examples/fused', 39 | 'examples/kepler-gl', 40 | 'examples/lonboard', 41 | 'examples/build-a-map', 42 | 'examples/pandas', 43 | 'examples/overture-tiles', 44 | 'examples/QGIS', 45 | 'examples/rapid-id', 46 | 'examples/spark', 47 | ] 48 | }, 49 | { 50 | type: 'category', 51 | label: 'Data Guides', 52 | link: { 53 | type: 'doc', 54 | id: 'guides/index' 55 | }, 56 | collapsed: true, 57 | items: [ 58 | 'guides/addresses', 59 | 'guides/base', 60 | 'guides/buildings', 61 | 'guides/divisions', 62 | 'guides/places', 63 | 'guides/transportation', 64 | ], 65 | }, 66 | { 67 | type: 'category', 68 | label: 'Global Entity Reference System', 69 | collapsed: true, 70 | items: [ 71 | 'gers/index', 72 | 'gers/stability', 73 | 'gers/changelog', 74 | 'gers/bridge-files', 75 | 'gers/gers-demonstrations', 76 | 'gers/gers-tutorial' 77 | ] 78 | }, 79 | 'attribution' 80 | ], 81 | schema:[ 82 | { 83 | type: 'autogenerated', 84 | dirName: 'schema', // generate sidebar slice from the docs folder (or versioned_docs/) 85 | } 86 | ] 87 | }; 88 | 89 | module.exports = sidebars; 90 | -------------------------------------------------------------------------------- /src/components/queryBuilder.js: -------------------------------------------------------------------------------- 1 | import CodeBlock from '@theme/CodeBlock'; 2 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 3 | 4 | export default function QueryBuilder(args){ 5 | 6 | const { 7 | siteConfig: {customFields}, 8 | } = useDocusaurusContext(); 9 | 10 | var rendered_query = args.query.replaceAll('__OVERTURE_RELEASE', customFields.overtureRelease) 11 | 12 | rendered_query = rendered_query.replaceAll('__ATHENA_OVERTURE_RELEASE', 'v' + customFields.overtureRelease.replaceAll('.','_').replaceAll('-','_')) 13 | 14 | rendered_query = rendered_query.replaceAll('__PMTILES_OVERTURE_RELEASE', customFields.overtureRelease.split('.', 1)) 15 | 16 | var lang = args.language || 'sql' 17 | 18 | return ( 19 | 20 | {rendered_query} 21 | 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /src/components/shared-libs/generatePath.tsx: -------------------------------------------------------------------------------- 1 | // Example of basePath = '/schemas/examples/refs' 2 | export default function generatePath(path: string, basePath: string = "") { 3 | const parts = path.toString().split("/") 4 | let finalPath = basePath 5 | 6 | for (let i = 0; i < parts.length; i++) { 7 | if (parts[i] === "..") { 8 | // Move up one directory in the base path 9 | finalPath = finalPath.split("/").slice(0, -1).join("/") 10 | } else if (parts[i] === ".") { 11 | // Ignore current directory notation 12 | continue 13 | } else { 14 | // Append the current directory to the base path 15 | finalPath = `${finalPath}/${parts[i]}` 16 | } 17 | } 18 | 19 | return finalPath 20 | } 21 | -------------------------------------------------------------------------------- /src/components/shared-libs/generateResolverOptions.tsx: -------------------------------------------------------------------------------- 1 | import RemoteResolver from "@site/src/components/shared-libs/remoteResolver" 2 | import YAMLFileResolver from "@site/src/components/shared-libs/yamlFileResolver" 3 | 4 | type Params = { 5 | basePath?: string 6 | jsonPointer?: string 7 | remote?: boolean 8 | yamlBasePath?: string 9 | } 10 | 11 | export default function generateResolverOptions(params: Params) { 12 | const { basePath, jsonPointer, remote, yamlBasePath} = params 13 | 14 | let config = {} 15 | 16 | if (yamlBasePath || yamlBasePath == "") { 17 | config["resolvers"] = { 18 | file: YAMLFileResolver(yamlBasePath), 19 | } 20 | } 21 | 22 | if (remote) { 23 | if (config["resolvers"] === undefined) { 24 | config["resolvers"] = {} 25 | } 26 | config["resolvers"]["http"] = RemoteResolver("http") 27 | config["resolvers"]["https"] = RemoteResolver("https") 28 | } 29 | 30 | if (jsonPointer) { 31 | config["jsonPointer"] = jsonPointer 32 | } 33 | 34 | return config 35 | } 36 | -------------------------------------------------------------------------------- /src/components/shared-libs/remoteResolver.tsx: -------------------------------------------------------------------------------- 1 | type Param = "http" | "https" 2 | 3 | export default function LocalFileResolver(_type: Param = "http") { 4 | return { 5 | resolve: (ref: string) => { 6 | return new Promise((resolve, reject) => { 7 | fetch(ref.toString(), { 8 | headers: { 9 | Accept: "application/json", 10 | }, 11 | }) 12 | .then((response) => response.json()) 13 | .then((result) => resolve(result)) 14 | .catch((err) => reject(err)) 15 | }) 16 | }, 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/components/shared-libs/stringifyObject.tsx: -------------------------------------------------------------------------------- 1 | export default function stringifyObject(obj: unknown, indent = 2): string { 2 | const keys = Object.keys(obj) 3 | const pairs = keys.map((key) => { 4 | const value = obj[key] 5 | if (typeof value === "function") { 6 | const match = value.toString().match(/function\s+([\w$]+)\s*\(([^)]*)\)/) 7 | const name = match ? match[1] : "anonymous" 8 | const params = match 9 | ? match[2] 10 | .split(",") 11 | .map((p) => p.trim()) 12 | .join(", ") 13 | : "" 14 | return `${" ".repeat( 15 | indent, 16 | )}${key}: function ${name}(${params}) { /* function body */ },` 17 | } else if ( 18 | typeof value === "object" && 19 | !Array.isArray(value) && 20 | value !== null 21 | ) { 22 | return `${" ".repeat(indent)}${key}: ${stringifyObject( 23 | value, 24 | indent + 2, 25 | )},` 26 | } else { 27 | return `${" ".repeat(indent)}${key}: ${JSON.stringify(value)},` 28 | } 29 | }) 30 | return `{\n${pairs.join("\n")}\n${" ".repeat(indent - 2)}}` 31 | } 32 | -------------------------------------------------------------------------------- /src/components/shared-libs/yamlFileResolver.tsx: -------------------------------------------------------------------------------- 1 | import generatePath from "@site/src/components/shared-libs/generatePath"; 2 | import yaml from "js-yaml"; 3 | 4 | const schemaYamlFiles = require.context('@site/docs/_schema', true, /\.(yaml|yml)$/); 5 | var preloadedYamlSchema = {} 6 | 7 | schemaYamlFiles.keys().forEach(function(path){ 8 | preloadedYamlSchema[path.replace('./', '/')] = yaml.load( 9 | require('!!raw-loader!@site/docs/_schema' + path.replace('./', '/')).default 10 | ); 11 | }) 12 | 13 | export default function YAMLFileResolver(basePath: string = "") { 14 | return { 15 | resolve: (ref: string) => { 16 | return new Promise((resolve, reject) => { 17 | 18 | Promise.resolve().then(function(){ 19 | 20 | var relativeYamlPath = generatePath(ref, basePath) 21 | 22 | if (preloadedYamlSchema.hasOwnProperty(relativeYamlPath)){ 23 | return preloadedYamlSchema[relativeYamlPath]; 24 | }else{ 25 | return {} 26 | } 27 | }).then(function(result){ return resolve(result)} 28 | ).catch(function(err){ return reject(err); }); 29 | }); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/components/yamlLoad.js: -------------------------------------------------------------------------------- 1 | Object.defineProperty(exports, "__esModule", { value: true }); 2 | 3 | yaml = require('js-yaml') 4 | 5 | function yamlLoad(string){ 6 | return yaml.load(string) 7 | } 8 | 9 | exports.default = yamlLoad; 10 | -------------------------------------------------------------------------------- /src/css/map.css: -------------------------------------------------------------------------------- 1 | .map-wrap { 2 | position: relative; 3 | width: 100%; 4 | height: calc(50vh); /* calculate height of the screen minus the heading */ 5 | } 6 | 7 | .map { 8 | position: absolute; 9 | width: 100%; 10 | height: 100%; 11 | } 12 | 13 | button.layer{ 14 | margin: 5px 0; 15 | padding: 8px 12px; 16 | background-color: #4a8ad8; 17 | color: rgb(232, 222, 222); 18 | cursor: pointer; 19 | border: none; 20 | border-radius: 4px; 21 | font-family: Montserrat,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif; 22 | font-weight: 600; 23 | font-size: larger; 24 | } 25 | 26 | button.layer.active{ 27 | background-color: #59a0f6; 28 | } 29 | 30 | input{ 31 | width:50px; 32 | height:4px; 33 | } 34 | -------------------------------------------------------------------------------- /src/queries/.sqlfluffignore: -------------------------------------------------------------------------------- 1 | /partials/ 2 | /synapse/ 3 | /snowflake/ 4 | /Snowflake/ 5 | -------------------------------------------------------------------------------- /src/queries/Snowflake/snowflake_places.sql: -------------------------------------------------------------------------------- 1 | // Identify places within the "Restaurant" category 2 | /* 3 | Retrieves the geographic IDs (geoid), phone numbers (phones), and primary names (names) of places categorized as "restaurant" from the specified table. Limited to 100 results. 4 | */ 5 | SELECT id, phones['list'][0]['element'] AS phone, names['primary'] AS name 6 | FROM CARTO.PLACE 7 | WHERE categories['primary'] = 'restaurant' 8 | LIMIT 100; 9 | -------------------------------------------------------------------------------- /src/queries/athena/.sqlfluff: -------------------------------------------------------------------------------- 1 | [sqlfluff] 2 | 3 | verbose = 0 4 | dialect = athena 5 | 6 | exclude_rules = ambiguous.column_count, structure.column_order, references.consistent, layout.spacing, layout.indent, capitalisation.identifiers, references.from, references.keywords, references.qualification, layout.cte_newline, layout.select_targets, aliasing.unused 7 | -------------------------------------------------------------------------------- /src/queries/athena/0_select_from_release.sql: -------------------------------------------------------------------------------- 1 | SELECT * 2 | FROM overture.release.__ATHENA_OVERTURE_RELEASE 3 | LIMIT 10 4 | -------------------------------------------------------------------------------- /src/queries/athena/changelog_buildings_join.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | release.id, 3 | release.names."primary" AS primary_name, 4 | release.sources [ 1 ].dataset AS primary_source, 5 | change_type, 6 | ST_GEOMFROMBINARY(geometry) AS geometry 7 | FROM v2024_08_20_0 AS release 8 | INNER JOIN changelog_v2024_07_22_0 AS changelog ON release.id = changelog.id 9 | WHERE release.theme = 'buildings' 10 | AND release.bbox.xmin > 37.165914 11 | AND release.bbox.xmax < 37.902271 12 | AND release.bbox.ymin > 10.221917 13 | AND release.bbox.ymax < 10.751245; 14 | -------------------------------------------------------------------------------- /src/queries/athena/hyderabad_buildings.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | id, 3 | theme, 4 | class, 5 | sources[1].dataset AS primary_source, 6 | names."primary" AS primary_name, 7 | ST_GEOMFROMBINARY(geometry) AS geometry 8 | FROM overture.release.__ATHENA_OVERTURE_RELEASE 9 | WHERE theme='buildings' 10 | AND type='building' 11 | AND bbox.xmin > 78.383144 12 | AND bbox.xmax < 78.565011 13 | AND bbox.ymin > 17.30199 14 | AND bbox.ymax < 17.423426 15 | -------------------------------------------------------------------------------- /src/queries/athena/seattle_places.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | id, 3 | names, 4 | addresses, 5 | categories, 6 | confidence, 7 | sources, 8 | ST_GEOMFROMBINARY(geometry) AS geometry 9 | FROM 10 | overture.release.__ATHENA_OVERTURE_RELEASE 11 | WHERE type='place' 12 | AND bbox.xmin BETWEEN -122.44 AND -122.25 13 | AND bbox.ymin BETWEEN 47.56 AND 47.71 14 | -------------------------------------------------------------------------------- /src/queries/athena/transportation_connecting_segments.sql: -------------------------------------------------------------------------------- 1 | WITH input AS ( 2 | SELECT id AS input_id, 3 | connector_id 4 | FROM __ATHENA_OVERTURE_RELEASE 5 | CROSS JOIN UNNEST(connectors) AS t(connector) 6 | WHERE type = 'segment' 7 | AND id = '08628d5437ffffff0473ffc36df547db' 8 | ) 9 | SELECT 10 | *, 11 | ST_GEOMFROMBINARY(geometry) AS geometry 12 | FROM __ATHENA_OVERTURE_RELEASE, 13 | input 14 | WHERE type = 'segment' 15 | AND id != input_id 16 | AND ANY_MATCH( 17 | connectors, 18 | connector->connector.connector_id = input.connector_id 19 | ) 20 | -------------------------------------------------------------------------------- /src/queries/athena/transportation_speed_limits.sql: -------------------------------------------------------------------------------- 1 | SELECT 2 | id, 3 | speed_limits, 4 | ST_GEOMFROMBINARY(geometry) AS geometry 5 | FROM __ATHENA_OVERTURE_RELEASE 6 | WHERE type = 'segment' 7 | AND ANY_MATCH( 8 | speed_limits, 9 | speed_limit->speed_limit.max_speed.value = 27 10 | AND speed_limit.max_speed.unit = 'mph' 11 | ) 12 | -------------------------------------------------------------------------------- /src/queries/duckdb/.sqlfluff: -------------------------------------------------------------------------------- 1 | [sqlfluff] 2 | 3 | verbose = 0 4 | dialect = duckdb 5 | 6 | exclude_rules = ambiguous.column_count, references.from, layout.long_lines, references.special_chars 7 | -------------------------------------------------------------------------------- /src/queries/duckdb/addresses_calgary.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; --noqa 2 | LOAD httpfs; --noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | * 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=addresses/type=*/*', filename=true, hive_partitioning=1) 10 | WHERE 11 | bbox.xmin > -114.305 12 | AND bbox.xmax < -113.784 13 | AND bbox.ymin > 50.854 14 | AND bbox.ymax < 51.219; 15 | -------------------------------------------------------------------------------- /src/queries/duckdb/addresses_counts.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; --noqa 2 | LOAD httpfs; --noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*), 8 | country 9 | FROM 10 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=addresses/type=*/*', filename=true, hive_partitioning=1) 11 | GROUP BY country; 12 | -------------------------------------------------------------------------------- /src/queries/duckdb/addresses_nz_export.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; --noqa 2 | LOAD httpfs; --noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | id, 9 | number, 10 | street, 11 | unit, 12 | postcode, 13 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 14 | FROM 15 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=addresses/type=*/*', filename=true, hive_partitioning=1) 16 | WHERE 17 | country = 'NZ' 18 | ) 19 | TO 20 | 'NZaddresses.shp' 21 | WITH ( 22 | FORMAT GDAL, 23 | DRIVER 'ESRI Shapefile', 24 | SRS 'EPSG:4326' 25 | ); 26 | -------------------------------------------------------------------------------- /src/queries/duckdb/addresses_to_parquet.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; --noqa 2 | LOAD httpfs; --noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | * 9 | FROM 10 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=addresses/*/*') 11 | ) TO 'all_addresses.parquet'; 12 | -------------------------------------------------------------------------------- /src/queries/duckdb/addresses_utah.sql: -------------------------------------------------------------------------------- 1 | INSTALL spatial; -- noqa 2 | LOAD spatial; -- noqa 3 | 4 | -- Access the data on AWS in this example 5 | SET s3_region='us-west-2'; 6 | 7 | COPY ( 8 | -- Create a temp table with the state of Utah 9 | WITH utah AS ( 10 | SELECT 11 | id AS utah_id, 12 | geometry AS utah_geom -- DuckDB v.1.1.0 will autoload this as a `geometry` type 13 | FROM 14 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1) 15 | WHERE 16 | id = '085022383fffffff0167572d4665d6f9' 17 | ), 18 | 19 | -- Use the geometry of Utah to filter addresses within the state's boundary 20 | addresses AS ( 21 | SELECT 22 | *, 23 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 24 | FROM 25 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=addresses/type=*/*', filename=true, hive_partitioning=1) 26 | INNER JOIN 27 | utah 28 | ON ST_WITHIN(geometry, utah.utah_geom) 29 | WHERE 30 | country = 'US' 31 | ) 32 | 33 | -- Export the places selection to a CSV file 34 | SELECT 35 | id, 36 | street, 37 | number, 38 | unit 39 | FROM 40 | addresses 41 | ) 42 | TO 43 | 'utah_addresses.csv'; 44 | -------------------------------------------------------------------------------- /src/queries/duckdb/boulder_co_duckdb.sql: -------------------------------------------------------------------------------- 1 | COPY ( 2 | SELECT * 3 | FROM read_parquet("s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=*/type=*/*", union_by_name = True) 4 | WHERE 5 | bbox.xmin >= -105.30 6 | AND bbox.ymin >= 39.98 7 | AND bbox.xmax <= -105.24 8 | AND bbox.ymax <= 40.07 9 | ) TO 'boulder_co_overture.parquet'; 10 | -------------------------------------------------------------------------------- /src/queries/duckdb/buildings_detroit.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; --noqa 2 | 3 | COPY( 4 | SELECT 5 | id, 6 | names.primary as primary_name, 7 | height, 8 | geometry 9 | FROM read_parquet('az://overturemapswestus2.blob.core.windows.net/release/__OVERTURE_RELEASE/theme=buildings/type=building/*', filename=true, hive_partitioning=1) 10 | WHERE names.primary IS NOT NULL 11 | AND bbox.xmin BETWEEN -84.36 AND -82.42 12 | AND bbox.ymin BETWEEN 41.71 AND 43.33 13 | LIMIT 100 14 | ) TO 'detroit_buildings.geojsonseq' WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq'); 15 | -------------------------------------------------------------------------------- /src/queries/duckdb/buildings_in_division_area.sql: -------------------------------------------------------------------------------- 1 | INSTALL spatial; --noqa 2 | LOAD spatial; --noqa 3 | 4 | 5 | -- SET variable division_id = 6 | 7 | -- Or, search for it: 8 | SET variable division_id = ( 9 | SELECT 10 | id 11 | FROM 12 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division/*.parquet') 13 | WHERE 14 | names.primary = 'Marion County' AND subtype = 'county' 15 | LIMIT 1 16 | ); 17 | 18 | -- Fetch the bounds and geometry of the Region 19 | CREATE OR REPLACE TABLE bounds AS ( 20 | SELECT 21 | id AS division_id, names.primary, geometry, bbox 22 | FROM 23 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*.parquet') 24 | WHERE 25 | division_id = getvariable('division_id') 26 | ); 27 | 28 | -- Extract the bounds and geometry of the division into variables for faster table scan 29 | SET variable xmin = (select bbox.xmin FROM bounds); 30 | SET variable ymin = (select bbox.ymin FROM bounds); 31 | SET variable xmax = (select bbox.xmax FROM bounds); 32 | SET variable ymax = (select bbox.ymax FROM bounds); 33 | SET variable boundary = (select geometry FROM bounds); 34 | 35 | -- Create a local GeoParquet file. 36 | COPY( 37 | SELECT 38 | * 39 | FROM 40 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=buildings/type=building/*.parquet') 41 | WHERE 42 | bbox.xmin > getvariable('xmin') 43 | AND bbox.xmax < getvariable('xmax') 44 | AND bbox.ymin > getvariable('ymin') 45 | AND bbox.ymax < getvariable('ymax') 46 | AND ST_INTERSECTS( 47 | getvariable('boundary'), 48 | geometry 49 | ) 50 | ) TO 'extract.parquet'; 51 | 52 | -- Convert GeoParquet to line-delimited GeoJSON (or any other GDAL format) 53 | COPY( 54 | SELECT 55 | id, 56 | subtype, 57 | class, 58 | height, 59 | names.primary as name, 60 | geometry 61 | FROM 'extract.parquet' 62 | ) TO 'extract.geojsonseq' WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq'); 63 | -------------------------------------------------------------------------------- /src/queries/duckdb/changelog_buildings_churn.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | SET s3_region='us-west-2'; 4 | 5 | SELECT id, type, change_type 6 | FROM read_parquet('s3://overturemaps-us-west-2/changelog/2024-06-13-beta.0/theme=buildings/type=*/change_type=*/*', filename=true, hive_partitioning=1) 7 | WHERE 8 | bbox.xmin > 37.165914 9 | AND bbox.xmax < 37.902271 10 | AND bbox.ymin > 10.221917 11 | AND bbox.ymax < 10.751245; 12 | -------------------------------------------------------------------------------- /src/queries/duckdb/changelog_buildings_feature_by_change_type.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | SET s3_region='us-west-2'; 4 | 5 | SELECT count(*), change_type 6 | FROM read_parquet('s3://overturemaps-us-west-2/changelog/2024-06-13-beta.0/theme=buildings/type=*/change_type=*/*', filename=true, hive_partitioning=1) 7 | WHERE 8 | bbox.xmin > 37.165914 9 | AND bbox.xmax < 37.902271 10 | AND bbox.ymin > 10.221917 11 | AND bbox.ymax < 10.751245 12 | GROUP BY change_type; 13 | -------------------------------------------------------------------------------- /src/queries/duckdb/confident_mountains.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | SET s3_region='us-west-2'; 4 | 5 | COPY( 6 | SELECT 7 | id, 8 | names.primary as primary_name, 9 | geometry, -- DuckDB v.1.1.0 will autoload this as a `geometry` type 10 | categories.primary as primary_category, 11 | sources[1].dataset AS primary_source, 12 | confidence 13 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/type=*/*', filename=true, hive_partitioning=1) 14 | WHERE categories.primary = 'mountain' AND confidence > .90 15 | ORDER BY confidence DESC 16 | ) TO 'overture_places_mountains_gt90.geojson' 17 | WITH (FORMAT GDAL, DRIVER 'GeoJSON'); 18 | -------------------------------------------------------------------------------- /src/queries/duckdb/county_level_geometries.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | SET s3_region='us-west-2'; 3 | 4 | COPY( 5 | SELECT 6 | id, 7 | division_id, 8 | names.primary, 9 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 10 | FROM 11 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', hive_partitioning=1) 12 | WHERE 13 | subtype = 'county' 14 | AND country = 'US' 15 | AND region = 'US-PA' 16 | ) TO 'pennsylvania_counties.gpkg' WITH (FORMAT GDAL, DRIVER 'GPKG'); 17 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_border_usmx.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | * 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_boundary/*', filename=true, hive_partitioning=1) 10 | WHERE 11 | bbox.xmin > -119.13728323 12 | AND bbox.xmax < -95.63020817 13 | AND bbox.ymin > 24.93478418 14 | AND bbox.ymax < 33.43995480 15 | AND subtype = 'country'; 16 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_boundary_counts.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*) 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_boundary/*', filename=true, hive_partitioning=1); 10 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_counts_per_entity.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*), 8 | subtype 9 | FROM 10 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1) 11 | GROUP BY 12 | subtype; 13 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_counts_per_type.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*) 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=*/*', filename=true, hive_partitioning=1); 10 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_denmark_locality_neighborhood.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | id, 9 | names.primary as name, 10 | subtype, 11 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 12 | FROM 13 | read_parquet('s3://overturemaps-us-west-2/release/2024-07-22.0/theme=divisions/type=division/*', filename=true, hive_partitioning=1) 14 | WHERE 15 | country = 'DK' 16 | AND subtype IN ('locality','neighborhood') 17 | ) 18 | TO 19 | 'overture_denmark_locality_neighborhood.shp' 20 | WITH ( 21 | FORMAT GDAL, 22 | DRIVER 'ESRI Shapefile', 23 | SRS 'EPSG:4326' 24 | ); 25 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_division_area_counts.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*) 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1); 10 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_division_counts.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*) 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division/*', filename=true, hive_partitioning=1); 10 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_lookup_osm.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | * 8 | FROM 9 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1) 10 | WHERE 11 | sources[1].record_id like 'r3766655@%'; 12 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_philly_places.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | 4 | -- Access the data on AWS in this example 5 | SET s3_region='us-west-2'; 6 | 7 | COPY ( 8 | -- Create a temp table with the locality of Philadelphia 9 | WITH philly AS ( 10 | SELECT 11 | id AS philly_id, 12 | names.primary AS philly_name, 13 | geometry AS philly_geom -- DuckDB v.1.1.0 will autoload this as a `geometry` type 14 | FROM 15 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1) 16 | WHERE 17 | subtype = 'locality' 18 | AND country = 'US' 19 | AND region = 'US-PA' 20 | AND names.primary = 'Philadelphia' 21 | ), 22 | 23 | -- Use the geometry of Philadelphia to filter out places within the locality boundary 24 | places AS ( 25 | SELECT 26 | names.primary AS name, 27 | categories.primary AS category, 28 | ROUND(confidence,2) AS confidence, 29 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 30 | FROM 31 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/type=*/*', filename=true, hive_partitioning=1) 32 | INNER JOIN 33 | philly 34 | ON ST_WITHIN(geometry, philly.philly_geom) 35 | ) 36 | 37 | -- Export the places selection to a Parquet file 38 | SELECT 39 | * 40 | FROM 41 | places 42 | ) 43 | TO 44 | 'philly_places.parquet'; 45 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_query_specific_feature.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | 4 | -- Access the data on AWS in this example 5 | SET s3_region='us-west-2'; 6 | 7 | SELECT 8 | * 9 | FROM 10 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_boundary/*', filename=true, hive_partitioning=1) 11 | WHERE 12 | id = '085db5bb7fffffff0173c9b945a8c25f'; 13 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_subtype_counts_specific_countries.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | SELECT 7 | count(*), 8 | subtype 9 | FROM 10 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/type=division_area/*', filename=true, hive_partitioning=1) 11 | WHERE 12 | country IN ('US','MX','CA') 13 | GROUP BY 14 | subtype; 15 | -------------------------------------------------------------------------------- /src/queries/duckdb/divisions_to_parquet.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | * 9 | FROM 10 | read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=divisions/*/*') 11 | ) TO 'all_divisions.parquet'; 12 | -------------------------------------------------------------------------------- /src/queries/duckdb/hyderabad_buildings.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY ( 4 | SELECT 5 | id, 6 | level, 7 | height, 8 | names.primary AS primary_name, 9 | sources[1].dataset AS primary_source, 10 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 11 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=buildings/type=*/*', hive_partitioning=1) 12 | WHERE 13 | bbox.xmin > 78.4194 14 | AND bbox.xmax < 78.5129 15 | AND bbox.ymin > 17.3427 16 | AND bbox.ymax < 17.4192 17 | ) TO 'buildings_hyderabad.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON'); 18 | -------------------------------------------------------------------------------- /src/queries/duckdb/lithuania_places.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | 4 | -- Access the data on AWS in this example 5 | SET s3_region='us-west-2'; 6 | 7 | COPY ( 8 | SELECT 9 | -- we can parse addresses into columns to make further filtering of the data simpler 10 | addresses[1].freeform as street, 11 | addresses[1].locality as locality, 12 | addresses[1].postcode as postcode, 13 | addresses[1].region as region, 14 | addresses[1].country as country, 15 | * 16 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 17 | WHERE 18 | addresses[1].country = 'LT' 19 | ) TO 'lithuania_places.parquet'; 20 | -------------------------------------------------------------------------------- /src/queries/duckdb/mountain_peaks.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | SET s3_region='us-west-2'; 4 | 5 | COPY( 6 | SELECT 7 | id, 8 | names.primary as name, 9 | CAST(elevation * 3.28084 AS INT) AS elevation_ft, 10 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 11 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=base/type=land/*', filename=true, hive_partitioning=1) 12 | WHERE subtype = 'physical' AND class IN ('peak','volcano') AND elevation IS NOT NULL 13 | AND bbox.xmin BETWEEN -124.71 AND -116.47 14 | AND bbox.ymin BETWEEN 41.99 AND 46.30 15 | ) TO 'oregon_peaks.geojson' 16 | WITH (FORMAT GDAL, DRIVER 'GeoJSON'); 17 | -------------------------------------------------------------------------------- /src/queries/duckdb/new_york_pizza.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | SET s3_region='us-west-2'; 4 | 5 | COPY( -- COPY TO saves the results to disk. 6 | SELECT 7 | id, 8 | names.primary as name, 9 | confidence AS confidence, 10 | CAST(socials AS JSON) as socials, -- Ensure each attribute can be serialized to JSON 11 | geometry -- DuckDB understands this to be a geometry type 12 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/type=place/*', filename=true, hive_partitioning=1) 13 | WHERE categories.primary = 'pizza_restaurant' 14 | AND bbox.xmin BETWEEN -75 AND -73 -- Only use the bbox min values 15 | AND bbox.ymin BETWEEN 40 AND 41 -- because they are point geometries. 16 | 17 | ) TO 'nyc_pizza.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON'); 18 | -------------------------------------------------------------------------------- /src/queries/duckdb/paris_roads.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | SET s3_region='us-west-2'; 4 | 5 | COPY( 6 | SELECT 7 | id, 8 | names.primary as name, 9 | class, 10 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 11 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=transportation/type=segment/*', filename=true, hive_partitioning=1) 12 | WHERE bbox.xmin > 2.276 13 | AND bbox.ymin > 48.865 14 | AND bbox.xmax < 2.314 15 | AND bbox.ymax < 48.882 16 | ) TO 'paris_roads.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON'); 17 | -------------------------------------------------------------------------------- /src/queries/duckdb/places.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | * 9 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*')) 10 | TO 'places.parquet'; 11 | -------------------------------------------------------------------------------- /src/queries/duckdb/places_confidence.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | 4 | -- Access the data on AWS in this example 5 | SET s3_region='us-west-2'; 6 | 7 | COPY ( 8 | SELECT 9 | * 10 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 11 | WHERE 12 | -- Only select data with a confidence score above .95 13 | confidence > .95 14 | -- Further filtering for data within Massachusetts to limit the size of this query 15 | AND addresses[1].region = 'MA' 16 | ) TO 'MA_high_confidence_places.parquet'; 17 | -------------------------------------------------------------------------------- /src/queries/duckdb/places_conflating_OSM.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | -- We'll first select OSM data from Oregon with amenity = restaurant 8 | WITH osm AS ( 9 | SELECT kind, 10 | id, 11 | tags->>'name' AS name, 12 | tags->>'addr:housenumber' AS housenumber, 13 | tags->>'addr:street' AS street, 14 | tags->>'addr:postcode' AS postcode, 15 | tags->>'addr:city' AS city, 16 | tags->>'website' AS website, 17 | tags->>'phone' AS phone, 18 | lat, 19 | lon, 20 | tags 21 | FROM st_readosm( 22 | 'oregon-latest.osm.pbf' 23 | ) 24 | WHERE tags->>'amenity' = 'restaurant' 25 | ), 26 | -- Then select Overture data with any category containing the word restauarant in Oregon. 27 | overture AS ( 28 | SELECT id, 29 | names.primary AS "names.primary", 30 | websites[1] AS website, 31 | socials[1] AS social, 32 | emails[1] AS email, 33 | phones[1] AS phone, 34 | addresses[1].freeform AS freeform, 35 | addresses[1].locality AS locality, 36 | addresses[1].postcode AS postcode, 37 | addresses[1].region AS region, 38 | addresses[1].country AS country, 39 | geometry AS geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 40 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 41 | WHERE region = 'OR' 42 | AND country = 'US' 43 | AND categories.primary ilike '%restaurant%' 44 | ) 45 | -- Now that we have our input data we will join them together. 46 | SELECT 47 | -- With the GERS ID joined to the final result this dataset can be quickly synced to future Overture releases 48 | overture.id AS GERS_ID, 49 | osm.name, 50 | -- Using CASE statements, we'll favor OSM data when it is present but use Overture data wherever there are gaps 51 | CASE 52 | WHEN osm.housenumber IS NOT NULL 53 | OR osm.street IS NOT NULL THEN concat(osm.housenumber, ' ', osm.street) 54 | ELSE overture.freeform 55 | END AS address, 56 | CASE 57 | WHEN osm.city IS NOT NULL THEN osm.city 58 | ELSE overture.locality 59 | END AS city, 60 | CASE 61 | WHEN osm.postcode IS NOT NULL THEN osm.postcode 62 | ELSE overture.postcode 63 | END AS postcode, 64 | CASE 65 | WHEN osm.website IS NOT NULL THEN osm.website 66 | ELSE overture.website 67 | END AS website, 68 | CASE 69 | WHEN osm.phone IS NOT NULL THEN osm.phone 70 | ELSE overture.phone 71 | END AS phone, 72 | overture.social, 73 | overture.email, 74 | st_point(osm.lon, osm.lat) AS geometry 75 | FROM osm 76 | -- To join the data, we'll first match features that have the same OR similar names 77 | LEFT JOIN overture ON ( 78 | osm.name = overture."names.primary" 79 | OR osm.name ilike concat('%', overture."names.primary", '%') 80 | OR overture."names.primary" ilike concat('%', osm.name, '%') 81 | OR damerau_levenshtein(osm.name, overture."names.primary") < 3 82 | ) 83 | -- Then use a small buffer to match features that are nearby to each other 84 | AND st_intersects( 85 | st_buffer(overture.geometry::geometry, 0.003), 86 | st_point(osm.lon, osm.lat) 87 | ) 88 | ) TO 'oregon_restaurants_combined.parquet'; 89 | -------------------------------------------------------------------------------- /src/queries/duckdb/places_in_buildings.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | -- First query places with address data in the area we are interested in 8 | WITH places AS 9 | ( 10 | SELECT * 11 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 12 | WHERE bbox.xmin BETWEEN 14.38 AND 14.44 13 | AND bbox.ymin BETWEEN 50.07 AND 50.11 14 | AND addresses[1].freeform IS NOT NULL 15 | ), 16 | -- Then get buildings in the same area 17 | buildings as 18 | ( 19 | SELECT * 20 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=buildings/type=building/*') 21 | WHERE bbox.xmin > 14.38 AND bbox.xmax < 14.44 22 | AND bbox.ymin > 50.07 AND bbox.ymax < 50.11 23 | ) 24 | -- Join the data using an intersect and select distinct to avoid duplicates 25 | SELECT distinct(buildings.id), buildings.*, places.addresses 26 | FROM buildings 27 | LEFT JOIN places on st_intersects(places.geometry, buildings.geometry) 28 | ORDER BY buildings.id 29 | ) TO 'prague_places_in_buildings.parquet'; 30 | -------------------------------------------------------------------------------- /src/queries/duckdb/places_mills.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | names.primary as primary_name, 9 | confidence, 10 | addresses, 11 | websites, 12 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 13 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 14 | WHERE 15 | categories.primary IN ('flour_mill', 'rice_mill') 16 | ) TO 'mills.parquet'; 17 | -------------------------------------------------------------------------------- /src/queries/duckdb/rome_places.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | id, 9 | version, 10 | -- We are casting these columns to JSON in order to ensure compatibility with our GeoJSON output. 11 | -- These conversions may be not necessary for other output formats. 12 | CAST(names AS JSON) AS names, 13 | CAST(categories AS JSON) AS categories, 14 | confidence, 15 | CAST(websites AS JSON) AS websites, 16 | CAST(socials AS JSON) AS socials, 17 | CAST(emails AS JSON) AS emails, 18 | CAST(phones AS JSON) AS phones, 19 | CAST(brand AS JSON) AS brand, 20 | CAST(addresses AS JSON) AS addresses, 21 | CAST(sources AS JSON) AS sources, 22 | geometry AS geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 23 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 24 | WHERE 25 | -- Point geometry doesn't require looking at both min and max: 26 | bbox.xmin BETWEEN 12.46 AND 12.48 AND 27 | bbox.ymin BETWEEN 41.89 AND 41.91 28 | ) TO 'rome_places.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON', SRS 'EPSG:4326'); 29 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_buildings_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY ( 4 | SELECT 5 | names.primary as name, 6 | height, 7 | level, 8 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 9 | FROM read_parquet('az://overturemapswestus2.blob.core.windows.net/release/__OVERTURE_RELEASE/theme=buildings/type=building/*', filename=true, hive_partitioning=1) 10 | WHERE bbox.xmin > -122.68 AND bbox.xmax < -121.98 11 | AND bbox.ymin > 47.36 AND bbox.ymax < 47.79 12 | ) TO 'seattle_buildings.geojsonseq' WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq', SRS 'EPSG:4326'); 13 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_land_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY ( 4 | SELECT 5 | subtype, 6 | class, 7 | names.primary AS name, 8 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 9 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=base/type=land/*') 10 | WHERE 11 | bbox.xmin > -122.68 AND bbox.xmax < -121.98 12 | AND bbox.ymin > 47.36 AND bbox.ymax < 47.79 13 | ) 14 | TO 'seattle_land.geojsonseq' 15 | WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq', SRS 'EPSG:4326'); 16 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_land_use_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY ( 4 | SELECT 5 | subtype, 6 | class, 7 | names.primary AS name, 8 | surface, 9 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 10 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=base/type=land_use/*') 11 | WHERE 12 | bbox.xmin > -122.68 AND bbox.xmax < -121.98 13 | AND bbox.ymin > 47.36 AND bbox.ymax < 47.79 14 | ) 15 | TO 'seattle_land_use.geojsonseq' WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq', SRS 'EPSG:4326'); 16 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_placenames_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY ( 4 | SELECT 5 | subtype, 6 | locality_type, 7 | names.primary as name, 8 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 9 | FROM read_parquet('az://overturemapswestus2.blob.core.windows.net/release/2024-04-16-beta.0/theme=admins/type=locality/*', hive_partitioning=1) 10 | WHERE bbox.xmin > -122.679404 AND bbox.xmax < -121.978275 11 | AND bbox.ymin > 47.360619 AND bbox.ymax < 47.786336 12 | ) TO 'seattle_placenames.geojson' 13 | WITH (FORMAT GDAL, DRIVER 'GeoJSON', SRS 'EPSG:4326'); 14 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_places_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | -- Access the data on AWS in this example 3 | SET s3_region='us-west-2'; 4 | 5 | COPY ( 6 | SELECT 7 | names.primary AS name, 8 | categories.primary as category, 9 | ROUND(confidence,2) as confidence, 10 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 11 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/*/*') 12 | WHERE 13 | -- Point geometry doesn't require looking at both min and max: 14 | bbox.xmin BETWEEN -122.68 AND -121.98 AND 15 | bbox.ymin BETWEEN 47.36 AND 47.79 16 | ) TO 'seattle_places.geojson' WITH (FORMAT GDAL, DRIVER 'GeoJSON', SRS 'EPSG:4326'); 17 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_roads_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY ( 4 | SELECT 5 | id, 6 | names.primary AS name, 7 | subtype, 8 | class, 9 | subclass, 10 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 11 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=transportation/type=segment/*') 12 | WHERE 13 | subtype = 'road' 14 | AND bbox.xmin > -122.68 AND bbox.xmax < -121.98 15 | AND bbox.ymin > 47.36 AND bbox.ymax < 47.79 16 | ) TO 'seattle_roads.geojsonseq' 17 | WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq', SRS 'EPSG:4326'); 18 | -------------------------------------------------------------------------------- /src/queries/duckdb/seattle_water_for_map.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | COPY ( 3 | SELECT 4 | subtype, 5 | class, 6 | names.primary AS name, 7 | geometry -- DuckDB v.1.1.0 will autoload this as a `geometry` type 8 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=base/type=water/*') 9 | WHERE 10 | subtype in ('ocean', 'lake', 'pond', 'reservoir', 'river', 'stream', 'water', 'canal') 11 | AND bbox.xmin > -123 AND bbox.xmax < -122 12 | AND bbox.ymin > 47 AND bbox.ymax < 48 13 | ) TO 'seattle_water.geojsonseq' WITH (FORMAT GDAL, DRIVER 'GeoJSONSeq', SRS 'EPSG:4326'); 14 | -------------------------------------------------------------------------------- /src/queries/duckdb/segment_bbox.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | * 9 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=transportation/type=segment/*') 10 | WHERE 11 | bbox.xmin > 12.46 AND bbox.xmax < 12.48 AND 12 | bbox.ymin > 41.89 AND bbox.ymax < 41.91 13 | ) 14 | TO 'rome_segments.parquet'; 15 | -------------------------------------------------------------------------------- /src/queries/duckdb/transportation_parking.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | * 9 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=transportation/type=segment/*') 10 | WHERE 11 | class = 'parking_aisle' AND 12 | bbox.xmin > 13.0897 AND bbox.xmax < 13.6976 AND 13 | bbox.ymin > 52.3100 AND bbox.ymax < 52.7086 14 | ) 15 | TO 'berlin_parking_aisles.parquet'; 16 | -------------------------------------------------------------------------------- /src/queries/duckdb/transportation_routes.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | LOAD httpfs; -- noqa 3 | -- Access the data on AWS in this example 4 | SET s3_region='us-west-2'; 5 | 6 | COPY ( 7 | SELECT 8 | * 9 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=transportation/type=segment/*') 10 | WHERE 11 | routes[1].network = 'US:I' 12 | AND routes[1].ref = '5' 13 | ) 14 | TO 'US_I_5.parquet'; 15 | -------------------------------------------------------------------------------- /src/queries/duckdb/write_geoparquet.sql: -------------------------------------------------------------------------------- 1 | LOAD spatial; -- noqa 2 | 3 | COPY( 4 | SELECT 5 | * 6 | FROM read_parquet('s3://overturemaps-us-west-2/release/__OVERTURE_RELEASE/theme=places/type=place/*') 7 | LIMIT 100000 8 | ) TO 'places.parquet'; 9 | -------------------------------------------------------------------------------- /src/queries/partials/osm_conversion_logic/building_class.sql: -------------------------------------------------------------------------------- 1 | CASE 2 | -- Prioritize these amenity tags when present because they are also used to determine subtype: 3 | WHEN lower(trim(element_at(tags, 'amenity'))) IN ( 4 | 'library', 5 | 'parking', 6 | 'post_office' 7 | ) THEN lower(trim(element_at(tags, 'amenity'))) 8 | 9 | -- Certain building tags become the class value to further describe the building subtype 10 | WHEN lower(trim(element_at(tags, 'building'))) IN ( 11 | 12 | -- Agricultural 13 | 'agricultural', 14 | 'barn', 15 | 'cowshed', 16 | 'farm', 17 | 'farm_auxiliary', 18 | 'glasshouse', 19 | 'greenhouse', 20 | 'silo', 21 | 'stable', 22 | 'sty', 23 | 24 | -- Civic 25 | 'civic', 26 | 'fire_station', 27 | 'government', 28 | 'public', 29 | 30 | --Commercial 31 | 'commercial', 32 | 'hotel', 33 | 'kiosk', 34 | 'office', 35 | 'retail', 36 | 'supermarket', 37 | 'warehouse', 38 | 39 | --Education 40 | 'college', 41 | 'kindergarten', 42 | 'school', 43 | 'university', 44 | 45 | --Entertainment 46 | 'grandstand', 47 | 'pavilion', 48 | 'sports_centre', 49 | 'sports_hall', 50 | 'stadium', 51 | 52 | --Industrial 53 | 'factory', 54 | 'industrial', 55 | 'manufacture', 56 | 57 | --Medical 58 | 'hospital', 59 | 60 | --Military 61 | 'bunker', 62 | 'military', 63 | 64 | --Outbuilding 65 | 'allotment_house', 66 | 'carport', 67 | 'roof', 68 | 'outbuilding', 69 | 'shed', 70 | 71 | --Religious 72 | 'cathedral', 73 | 'chapel', 74 | 'church', 75 | 'monastery', 76 | 'mosque', 77 | 'presbytery', 78 | 'religious', 79 | 'shrine', 80 | 'synagogue', 81 | 'temple', 82 | 'wayside_shrine', 83 | 84 | --Residential 85 | 'apartments', 86 | 'bungalow', 87 | 'cabin', 88 | 'detached', 89 | 'dormitory', 90 | 'dwelling_house', 91 | 'garage', 92 | 'garages', 93 | 'ger', 94 | 'house', 95 | 'houseboat', 96 | 'hut', 97 | 'residential', 98 | 'semi', 99 | 'semidetached_house', 100 | 'static_caravan', 101 | 'stilt_house', 102 | 'terrace', 103 | 'trullo', 104 | 105 | --Service 106 | 'beach_hut', 107 | 'boathouse', 108 | 'digester', 109 | 'guardhouse', 110 | 'service', 111 | 'slurry_tank', 112 | 'storage_tank', 113 | 'toilets', 114 | 'transformer_tower', 115 | 116 | -- Transportation 117 | 'hangar', 118 | 'parking', 119 | 'train_station', 120 | 'transportation' 121 | ) THEN lower(trim(element_at(tags, 'building'))) 122 | 123 | -- Certain building are part of bridge structures 124 | WHEN lower(trim(element_at(tags, 'bridge:support'))) <> 'no' 125 | THEN 'bridge_structure' 126 | 127 | WHEN lower(trim(element_at(tags, 'bridge:structure'))) <> 'no' 128 | THEN 'bridge_structure' 129 | 130 | -- No other allowed classes 131 | ELSE NULL 132 | END -------------------------------------------------------------------------------- /src/queries/partials/osm_conversion_logic/building_roof_material.sql: -------------------------------------------------------------------------------- 1 | CASE 2 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 3 | 'asphalt_shingle', 4 | 'asphalt', 5 | 'concrete slab', 6 | 'concrete', 7 | 'rcc' 8 | ) THEN 'concrete' 9 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 10 | 'copper' 11 | ) THEN 'copper' 12 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 13 | 'a/c sheets', 14 | 'asbestos', 15 | 'eternit' 16 | ) THEN 'eternit' 17 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 18 | 'glass', 19 | 'acrylic_glass' 20 | ) THEN 'glass' 21 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 22 | 'grass', 23 | 'plants', 24 | 'roof_greening' 25 | ) THEN 'grass' 26 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 27 | 'gravel' 28 | ) THEN 'gravel' 29 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 30 | 'corrugated_iron_sheets', 31 | 'corrugated_iron', 32 | 'corrugated', 33 | 'iron_sheet', 34 | 'metal_sheet', 35 | 'metal:sheet', 36 | 'metal', 37 | 'tin', 38 | 'zinc', 39 | 'zink' 40 | ) THEN 'metal' 41 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 42 | 'plastic', 43 | 'composite' 44 | ) THEN 'plastic' 45 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 46 | 'roof_tiles', 47 | 'tile', 48 | 'tiles', 49 | 'roof-tiles', 50 | 'clay_tiles' 51 | ) THEN 'roof_tiles' 52 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 53 | 'brick', 54 | 'marble', 55 | 'sandstone', 56 | 'slate', 57 | 'stone' 58 | ) THEN 'slate' 59 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 60 | 'solar_panels' 61 | ) THEN 'solar_panels' 62 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 63 | 'tar_paper' 64 | ) THEN 'tar_paper' 65 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 66 | 'cadjan_palmyrah_straw', 67 | 'thatch' 68 | ) THEN 'thatch' 69 | WHEN lower(trim(element_at(tags, 'roof:material'))) IN ( 70 | 'wood', 71 | 'wooden' 72 | ) THEN 'wood' 73 | ELSE NULL 74 | END -------------------------------------------------------------------------------- /src/queries/partials/osm_conversion_logic/building_roof_shape.sql: -------------------------------------------------------------------------------- 1 | CASE 2 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 3 | 'dome' 4 | ) THEN 'dome' 5 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 6 | 'flat' 7 | ) THEN 'flat' 8 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 9 | 'gambrel' 10 | ) THEN 'gambrel' 11 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 12 | 'gabled', 13 | 'pitched', 14 | 'crosspiched', 15 | 'double_pitch', 16 | 'gabled_height_moved', 17 | 'hip-and-gabled', 18 | 'gable', 19 | 'gabled_row', 20 | 'round_gabled', 21 | 'dutch_gabled', 22 | 'monopitch', 23 | '2 faces (pitched)', 24 | '2 face (pitched)', 25 | 'gabeled', 26 | 'gabed', 27 | 'gambled', 28 | 'double_gabled', 29 | 'gabred', 30 | 'cross_gabled' 31 | ) THEN 'gabled' 32 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 33 | 'half-hipped', 34 | 'half_hipped' 35 | ) THEN 'half_hipped' 36 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 37 | 'hipped', 38 | 'side_hipped', 39 | 'hyped', 40 | 'equal_hipped', 41 | '4 faces (hipped)', 42 | 'side_half-hipped', 43 | 'side_half_hipped' 44 | ) THEN 'hipped' 45 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 46 | 'mansard' 47 | ) THEN 'mansard' 48 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 49 | 'onion', 50 | 'cone', 51 | 'conical' 52 | ) THEN 'onion' 53 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 54 | 'pyramidal' 55 | ) THEN 'pyramidal' 56 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 57 | 'round' 58 | ) THEN 'round' 59 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 60 | 'saltbox', 61 | 'double_saltbox', 62 | 'quadruple_saltbox' 63 | ) THEN 'saltbox' 64 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 65 | 'sawtooth' 66 | ) THEN 'sawtooth' 67 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 68 | 'skillion', 69 | 'lean_to', 70 | 'triple_skillion' 71 | ) THEN 'skillion' 72 | WHEN lower(trim(element_at(tags, 'roof:shape'))) IN ( 73 | 'spherical' 74 | ) THEN 'spherical' 75 | ELSE NULL 76 | END -------------------------------------------------------------------------------- /src/queries/partials/osm_conversion_logic/land.sql: -------------------------------------------------------------------------------- 1 | CASE 2 | -- Craters 3 | WHEN element_at(tags,'geological') IN ('meteor_crater', 'volcanic_caldera_rim') 4 | AND (element_at(tags, 'water') IS NULL OR element_at(tags, 'water') <> 'lake') 5 | AND (element_at(tags, 'natural') IS NULL OR element_at(tags, 'natural') <> 'water') 6 | THEN ROW('crater', element_at(tags,'geological')) 7 | 8 | -- Desert 9 | WHEN element_at(tags,'natural') IN ('desert') THEN ROW('desert', element_at(tags,'natural')) 10 | 11 | -- Wetland 12 | WHEN element_at(tags,'natural') IN ('wetland') THEN ROW('wetland', element_at(tags,'natural')) 13 | 14 | -- Glacier 15 | WHEN element_at(tags,'natural') IN ('glacier') THEN ROW('glacier', element_at(tags,'natural')) 16 | 17 | -- Rock 18 | WHEN element_at(tags,'natural') IN ( 19 | 'bare_rock', 20 | 'rock', 21 | 'scree', 22 | 'shingle', 23 | 'stone' 24 | ) THEN ROW('rock', element_at(tags,'natural')) 25 | 26 | -- Sand 27 | WHEN element_at(tags,'natural') IN ('beach', 'dune', 'sand') THEN ROW('sand', element_at(tags,'natural')) 28 | 29 | -- Grass 30 | WHEN element_at(tags,'natural') IN ( 31 | 'fell', 32 | 'grass', 33 | 'grassland', 34 | 'meadow', 35 | 'tundra' 36 | ) THEN ROW('grass', element_at(tags,'natural')) 37 | WHEN element_at(tags,'landcover') IN ('grass') THEN ROW ('grass', element_at(tags,'landcover')) 38 | 39 | -- Shrub / Scrub 40 | WHEN element_at(tags,'natural') IN ( 41 | 'heath', 42 | 'shrub', 43 | 'shrubbery', 44 | 'scrub' 45 | ) THEN ROW('shrub',element_at(tags,'natural')) 46 | WHEN element_at(tags,'landcover') IN ('scrub') THEN ROW('shrub', element_at(tags,'landcover')) 47 | 48 | -- Reefs 49 | WHEN element_at(tags,'natural') IN ('reef') THEN ROW('reef', element_at(tags,'natural')) 50 | 51 | -- Forest 52 | WHEN element_at(tags,'natural') IN ('forest', 'wood') THEN ROW('forest', element_at(tags,'natural')) 53 | WHEN element_at(tags,'landcover') IN ('trees') THEN ROW('forest', 'forest') 54 | WHEN element_at(tags,'landuse') IN ('forest') THEN ROW('forest','forest') 55 | 56 | -- Single trees / tree rows 57 | WHEN element_at(tags,'natural') IN ('tree') THEN ROW('tree','tree') 58 | WHEN element_at(tags,'natural') IN ('tree_row') THEN ROW('tree','tree_row') 59 | 60 | -- Physical Subtype 61 | WHEN element_at(tags,'natural') IN( 62 | 'cave_entrance', 63 | 'cliff', 64 | 'hill', 65 | 'mountain_range', 66 | 'peak', 67 | 'peninsula', 68 | 'plateau', 69 | 'ridge', 70 | 'saddle', 71 | 'valley' 72 | ) THEN ROW('physical', element_at(tags,'natural')) 73 | 74 | -- Volcanoes 75 | WHEN element_at(tags,'natural') = 'volcano' THEN IF( 76 | element_at(tags,'type') = 'extinct' OR element_at(tags,'volcano:status') = 'extinct', 77 | ROW ('physical','peak'), 78 | ROW('physical','volcano') 79 | ) 80 | 81 | -- Archipelagos, Islands & Islets 82 | WHEN element_at(tags,'place') IN ( 83 | 'archipelago', 84 | 'island', 85 | 'islet' 86 | ) THEN ROW('land',element_at(tags,'place')) 87 | 88 | -- Look at surface tag now 89 | WHEN element_at(tags,'surface') IN ('grass') THEN ROW('grass','grass') 90 | 91 | ELSE ROW(NULL, NULL) 92 | END -------------------------------------------------------------------------------- /src/queries/partials/osm_conversion_logic/water.sql: -------------------------------------------------------------------------------- 1 | CASE 2 | -- Streams 3 | WHEN element_at(tags, 'waterway') IN ('stream') THEN ROW('stream', element_at(tags, 'waterway')) 4 | WHEN element_at(tags, 'water') IN ('stream') THEN ROW('stream', element_at(tags, 'water')) 5 | 6 | -- Rivers 7 | WHEN element_at(tags, 'waterway') IN ('river') THEN ROW('river', element_at(tags, 'waterway')) 8 | WHEN element_at(tags, 'water') IN ('river') THEN ROW('river', element_at(tags, 'water')) 9 | 10 | -- Canals 11 | WHEN element_at(tags, 'water') IN ('canal', 'ditch', 'moat') THEN ROW('canal', element_at(tags, 'water')) 12 | WHEN element_at(tags, 'waterway') IN ('canal', 'ditch') THEN ROW('canal', element_at(tags, 'waterway')) 13 | WHEN element_at(tags, 'water') IN ('drain') THEN ROW('canal', 'drain') 14 | WHEN element_at(tags, 'waterway') IN ('drain') THEN ROW('canal', 'drain') 15 | 16 | -- Ponds 17 | WHEN element_at(tags, 'water') IN ('fishpond', 'pond') THEN ROW('pond', element_at(tags, 'water')) 18 | WHEN element_at(tags, 'water') IN ('lake', 'reservoir') 19 | AND ST_GeometryType(ST_GeomFromBinary(geometry)) IN ('ST_Polygon', 'ST_MultiPolygon') 20 | AND ST_AREA(TO_SPHERICAL_GEOGRAPHY(ST_GeomFromBinary(geometry))) < 4000 21 | THEN ROW('pond','pond') 22 | 23 | -- Lakes 24 | WHEN element_at(tags, 'water') IN ('lake', 'oxbow','lagoon') THEN ROW('lake', element_at(tags, 'water')) 25 | 26 | -- Springs 27 | WHEN element_at(tags, 'natural') IN ('spring','hot_spring','geyser','blowhole') THEN ROW('spring', element_at(tags, 'natural')) 28 | 29 | -- Tidal Channels / Fairways 30 | WHEN element_at(tags, 'waterway') IN ('tidal_channel', 'fairway') THEN ROW('water', element_at(tags, 'waterway')) 31 | 32 | -- Wastewater 33 | WHEN element_at(tags, 'water') IN ('wastewater') THEN ROW('water', 'wastewater') 34 | WHEN element_at(tags, 'reservoir_type') IN ('sewage') THEN ROW('wastewater', 'sewage') 35 | 36 | -- Reservoirs 37 | WHEN element_at(tags, 'water') IN ('reservoir', 'basin') THEN ROW('reservoir', element_at(tags, 'water')) 38 | WHEN element_at(tags, 'landuse') IN ('reservoir', 'basin') THEN 39 | CASE 40 | WHEN element_at(tags, 'basin') IN ( 41 | 'evaporation', 42 | 'detention', 43 | 'retention', 44 | 'infiltration', 45 | 'cooling' 46 | ) THEN ROW('reservoir', 'basin') 47 | WHEN element_at(tags, 'reservoir_type') IN ('water_storage') THEN ROW('reservoir', 'water_storage') 48 | ELSE ROW('reservoir', 'reservoir') 49 | END 50 | 51 | -- Physical 52 | WHEN element_at(tags, 'natural') IN ('bay','cape','shoal','strait') THEN ROW('physical', element_at(tags, 'natural')) 53 | WHEN element_at(tags, 'waterway') IN ('waterfall') THEN ROW('physical', element_at(tags, 'waterway')) 54 | 55 | -- Swimming Pools 56 | WHEN element_at(tags, 'leisure') = 'swimming_pool' AND ( 57 | element_at(tags, 'location') IS NULL OR element_at(tags, 'location') IN ('roof','outdoor','overground','surface') 58 | ) THEN ROW('human_made', 'swimming_pool') 59 | 60 | -- Reflecting Pools 61 | WHEN element_at(tags, 'water') IN ('reflecting_pool') THEN ROW('human_made', 'reflecting_pool') 62 | 63 | -- Salt Ponds 64 | WHEN element_at(tags, 'landuse') IN ('salt_pond') THEN ROW('human_made', 'salt_pond') 65 | 66 | -- Fish pass 67 | WHEN element_at(tags, 'waterway') IN ('fish_pass') THEN ROW('human_made', 'fish_pass') 68 | 69 | -- Dock 70 | WHEN element_at(tags, 'waterway') = 'dock' AND element_at(tags, 'dock') <> 'drydock' THEN ROW('water', 'dock') 71 | 72 | -- Oceans / Seas 73 | WHEN element_at(tags, 'place') IN ('ocean','sea') THEN ROW('physical', element_at(tags, 'place')) 74 | 75 | -- Default "water" 76 | WHEN element_at(tags, 'natural') = 'water' THEN ('water', 'water') 77 | 78 | ELSE ROW(NULL,NULL) 79 | END -------------------------------------------------------------------------------- /src/queries/synapse/seattle_places.sql: -------------------------------------------------------------------------------- 1 | SELECT TOP 10 * 2 | FROM 3 | OPENROWSET( 4 | BULK 'https://overturemapswestus2.blob.core.windows.net/release/__OVERTURE_RELEASE/theme=places/type=place/', 5 | FORMAT = 'PARQUET' 6 | ) 7 | WITH 8 | ( 9 | names VARCHAR(MAX), 10 | categories VARCHAR(MAX), 11 | websites VARCHAR(MAX), 12 | phones VARCHAR(MAX), 13 | bbox VARCHAR(200), 14 | geometry VARBINARY(MAX) 15 | ) 16 | AS 17 | [result] 18 | WHERE 19 | TRY_CONVERT(FLOAT, JSON_VALUE(bbox, '$.xmin')) > -122.4447744 20 | AND TRY_CONVERT(FLOAT, JSON_VALUE(bbox, '$.xmax')) < -122.2477071 21 | AND TRY_CONVERT(FLOAT, JSON_VALUE(bbox, '$.ymin')) > 47.5621587 22 | AND TRY_CONVERT(FLOAT, JSON_VALUE(bbox, '$.ymax')) < 47.7120663 23 | -------------------------------------------------------------------------------- /static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/.nojekyll -------------------------------------------------------------------------------- /static/example-map/tiles/base.pmtiles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/example-map/tiles/base.pmtiles -------------------------------------------------------------------------------- /static/example-map/tiles/buildings.pmtiles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/example-map/tiles/buildings.pmtiles -------------------------------------------------------------------------------- /static/example-map/tiles/placenames.pmtiles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/example-map/tiles/placenames.pmtiles -------------------------------------------------------------------------------- /static/example-map/tiles/places.pmtiles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/example-map/tiles/places.pmtiles -------------------------------------------------------------------------------- /static/example-map/tiles/roads.pmtiles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/example-map/tiles/roads.pmtiles -------------------------------------------------------------------------------- /static/img/addresses/address-coverage-h3-may.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/addresses/address-coverage-h3-may.png -------------------------------------------------------------------------------- /static/img/addresses/boston-export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/addresses/boston-export.png -------------------------------------------------------------------------------- /static/img/amazon-athena-buildings-query-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/amazon-athena-buildings-query-result.png -------------------------------------------------------------------------------- /static/img/amazon-athena-buildings-query.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/amazon-athena-buildings-query.png -------------------------------------------------------------------------------- /static/img/blog/address-coverage-h3-october.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/address-coverage-h3-october.png -------------------------------------------------------------------------------- /static/img/blog/class-subclass-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/class-subclass-diagram.png -------------------------------------------------------------------------------- /static/img/blog/explore-philadelphia2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/explore-philadelphia2.gif -------------------------------------------------------------------------------- /static/img/blog/highway-signs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/highway-signs.png -------------------------------------------------------------------------------- /static/img/blog/lc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/lc.gif -------------------------------------------------------------------------------- /static/img/blog/notebook-overture-lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/notebook-overture-lc.png -------------------------------------------------------------------------------- /static/img/blog/overture-lc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/overture-lc.gif -------------------------------------------------------------------------------- /static/img/blog/roads-tomtom-october.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/blog/roads-tomtom-october.png -------------------------------------------------------------------------------- /static/img/divisions/divisions-admin0-admin1-coverage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/divisions/divisions-admin0-admin1-coverage.png -------------------------------------------------------------------------------- /static/img/divisions/divisions-us.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/divisions/divisions-us.gif -------------------------------------------------------------------------------- /static/img/examples/CARTO Workflows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO Workflows.png -------------------------------------------------------------------------------- /static/img/examples/CARTO_Builder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO_Builder.gif -------------------------------------------------------------------------------- /static/img/examples/CARTO_DO.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO_DO.gif -------------------------------------------------------------------------------- /static/img/examples/CARTO_DO1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO_DO1.png -------------------------------------------------------------------------------- /static/img/examples/CARTO_DO2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO_DO2.png -------------------------------------------------------------------------------- /static/img/examples/CARTO_Workflows.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO_Workflows.gif -------------------------------------------------------------------------------- /static/img/examples/CARTO_overture_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/CARTO_overture_map.png -------------------------------------------------------------------------------- /static/img/examples/buildings-milan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/buildings-milan.png -------------------------------------------------------------------------------- /static/img/examples/fused_overture_buildings_dec2023.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/fused_overture_buildings_dec2023.gif -------------------------------------------------------------------------------- /static/img/examples/gulf-water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/gulf-water.png -------------------------------------------------------------------------------- /static/img/examples/kepler-overture-hyderabad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/kepler-overture-hyderabad.png -------------------------------------------------------------------------------- /static/img/examples/kepler_overture_buildings_hyderabad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/kepler_overture_buildings_hyderabad.gif -------------------------------------------------------------------------------- /static/img/examples/overture-buildings-pandas2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/overture-buildings-pandas2.png -------------------------------------------------------------------------------- /static/img/examples/overture-pa-counties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/overture-pa-counties.png -------------------------------------------------------------------------------- /static/img/examples/places-milan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/places-milan.png -------------------------------------------------------------------------------- /static/img/examples/qgis-parquet-drag-drop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/qgis-parquet-drag-drop.gif -------------------------------------------------------------------------------- /static/img/examples/road-network-milan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/examples/road-network-milan.png -------------------------------------------------------------------------------- /static/img/explore-attribution.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/explore-attribution.jpg -------------------------------------------------------------------------------- /static/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/favicon.png -------------------------------------------------------------------------------- /static/img/gers-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/gers-layers.png -------------------------------------------------------------------------------- /static/img/gers/buildings-change-type-amhara-region.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/gers/buildings-change-type-amhara-region.png -------------------------------------------------------------------------------- /static/img/gers/overture-buildings-fema-structures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/gers/overture-buildings-fema-structures.png -------------------------------------------------------------------------------- /static/img/gers/schema-comparison.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/gers/schema-comparison.png -------------------------------------------------------------------------------- /static/img/getting-data/BigQuery-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/BigQuery-1.png -------------------------------------------------------------------------------- /static/img/getting-data/aws-glue-data-catalog-values.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/aws-glue-data-catalog-values.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-10.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-11.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-2.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-3.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-4.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-5.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-6.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-7.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-8.png -------------------------------------------------------------------------------- /static/img/getting-data/bigquery-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/bigquery-9.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-1.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-2.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-3.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-4.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-5.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-6.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-7.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-8.png -------------------------------------------------------------------------------- /static/img/getting-data/databricks-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/databricks-9.png -------------------------------------------------------------------------------- /static/img/getting-data/overture-release-tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/overture-release-tables.png -------------------------------------------------------------------------------- /static/img/getting-data/review-and-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/review-and-create.png -------------------------------------------------------------------------------- /static/img/getting-data/snowflake-marketplace-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/snowflake-marketplace-1.png -------------------------------------------------------------------------------- /static/img/getting-data/snowflake-marketplace-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/snowflake-marketplace-2.png -------------------------------------------------------------------------------- /static/img/getting-data/snowflake-marketplace-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/snowflake-marketplace-3.png -------------------------------------------------------------------------------- /static/img/getting-data/snowflake-marketplace-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/snowflake-marketplace-4.png -------------------------------------------------------------------------------- /static/img/getting-data/snowflake-marketplace-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/snowflake-marketplace-5.png -------------------------------------------------------------------------------- /static/img/getting-data/snowflake-marketplace-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/getting-data/snowflake-marketplace-6.png -------------------------------------------------------------------------------- /static/img/omf_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/omf_logo.jpg -------------------------------------------------------------------------------- /static/img/omf_logo_text_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/omf_logo_text_transparent.png -------------------------------------------------------------------------------- /static/img/omf_logo_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/omf_logo_transparent.png -------------------------------------------------------------------------------- /static/img/overture-tiles-customize-buildings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/overture-tiles-customize-buildings.png -------------------------------------------------------------------------------- /static/img/overture-tiles-customize-places.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/overture-tiles-customize-places.png -------------------------------------------------------------------------------- /static/img/overture-tiles-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/overture-tiles-header.png -------------------------------------------------------------------------------- /static/img/overture-tiles-job-definitions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/overture-tiles-job-definitions.png -------------------------------------------------------------------------------- /static/img/overture-tiles-view-push-commands.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/overture-tiles-view-push-commands.png -------------------------------------------------------------------------------- /static/img/places/places-coverage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/places/places-coverage.png -------------------------------------------------------------------------------- /static/img/rapid/rapid-buildings-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/rapid/rapid-buildings-data.png -------------------------------------------------------------------------------- /static/img/rapid/rapid-places-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/rapid/rapid-places-data.png -------------------------------------------------------------------------------- /static/img/rapid/visualizing-places.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/rapid/visualizing-places.png -------------------------------------------------------------------------------- /static/img/transportation/circle-looped-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/circle-looped-dark.png -------------------------------------------------------------------------------- /static/img/transportation/circle-looped-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/circle-looped-light.png -------------------------------------------------------------------------------- /static/img/transportation/circle-unlooped-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/circle-unlooped-dark.png -------------------------------------------------------------------------------- /static/img/transportation/circle-unlooped-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/circle-unlooped-light.png -------------------------------------------------------------------------------- /static/img/transportation/crossing-looped-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/crossing-looped-dark.png -------------------------------------------------------------------------------- /static/img/transportation/crossing-looped-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/crossing-looped-light.png -------------------------------------------------------------------------------- /static/img/transportation/crossing-unlooped-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/crossing-unlooped-dark.png -------------------------------------------------------------------------------- /static/img/transportation/crossing-unlooped-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/crossing-unlooped-light.png -------------------------------------------------------------------------------- /static/img/transportation/geometrically-scoped-speed-limit-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/geometrically-scoped-speed-limit-dark.png -------------------------------------------------------------------------------- /static/img/transportation/geometrically-scoped-speed-limit-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/geometrically-scoped-speed-limit-light.png -------------------------------------------------------------------------------- /static/img/transportation/heading-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 |
forward heading
[Not supported by viewer]
backward heading
[Not supported by viewer]
segment orientation
segment orientation
-------------------------------------------------------------------------------- /static/img/transportation/interior-connectors-after-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/interior-connectors-after-dark.png -------------------------------------------------------------------------------- /static/img/transportation/interior-connectors-after-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/interior-connectors-after-light.png -------------------------------------------------------------------------------- /static/img/transportation/interior-connectors-before-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/interior-connectors-before-dark.png -------------------------------------------------------------------------------- /static/img/transportation/interior-connectors-before-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/interior-connectors-before-light.png -------------------------------------------------------------------------------- /static/img/transportation/lane-blocks-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-blocks-dark.png -------------------------------------------------------------------------------- /static/img/transportation/lane-blocks-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-blocks-light.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-01-west-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-01-west-dark.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-01-west-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-01-west-light.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-02-north-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-02-north-dark.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-02-north-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-02-north-light.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-03-east-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-03-east-dark.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-03-east-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-03-east-light.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-04-south-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-04-south-dark.png -------------------------------------------------------------------------------- /static/img/transportation/lane-number-04-south-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/lane-number-04-south-light.png -------------------------------------------------------------------------------- /static/img/transportation/level-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/level-dark.png -------------------------------------------------------------------------------- /static/img/transportation/level-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/level-light.png -------------------------------------------------------------------------------- /static/img/transportation/network-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/network-dark.png -------------------------------------------------------------------------------- /static/img/transportation/network-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/network-light.png -------------------------------------------------------------------------------- /static/img/transportation/roads-lane-numbering-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/roads-lane-numbering-dark.png -------------------------------------------------------------------------------- /static/img/transportation/splitter_osm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/splitter_osm.png -------------------------------------------------------------------------------- /static/img/transportation/splitter_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/splitter_output.png -------------------------------------------------------------------------------- /static/img/transportation/splitter_overture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/splitter_overture.png -------------------------------------------------------------------------------- /static/img/transportation/travel-modes-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/travel-modes-dark.png -------------------------------------------------------------------------------- /static/img/transportation/travel-modes-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/travel-modes-light.png -------------------------------------------------------------------------------- /static/img/transportation/turn-restriction-01-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/turn-restriction-01-dark.png -------------------------------------------------------------------------------- /static/img/transportation/turn-restriction-01-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/turn-restriction-01-light.png -------------------------------------------------------------------------------- /static/img/transportation/turn-restriction-02-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/turn-restriction-02-dark.png -------------------------------------------------------------------------------- /static/img/transportation/turn-restriction-02-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvertureMaps/docs/dd21a0b23831401c1229450da90a847c220fdfb4/static/img/transportation/turn-restriction-02-light.png -------------------------------------------------------------------------------- /static/notebooks/overture-lonboard-geoarrow.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 46, 6 | "id": "1da10bd6-f9ea-4eac-9cf6-bb2898d0ec2c", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import overturemaps \n", 11 | "from lonboard import Map, PathLayer" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 47, 17 | "id": "d8562902-83d9-4596-bccf-a604f27c96e8", 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "# specify bounding box\n", 22 | "bbox = 9.106105,45.427315,9.263542,45.51647" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 48, 28 | "id": "ff7ef625-8a2c-498b-adb7-5727958a20de", 29 | "metadata": {}, 30 | "outputs": [], 31 | "source": [ 32 | "# read in Overture segment feature type\n", 33 | "table = overturemaps.record_batch_reader(\"segment\", bbox).read_all()\n", 34 | "table = table.combine_chunks()" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": null, 40 | "id": "6f961479-0c58-4db8-9856-d63fd80ca887", 41 | "metadata": {}, 42 | "outputs": [], 43 | "source": [ 44 | "type(table)" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": null, 50 | "id": "35f52871-f8f0-48d4-ad08-7fb3b54c341c", 51 | "metadata": {}, 52 | "outputs": [], 53 | "source": [ 54 | "table.shape" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": null, 60 | "id": "53441900-f890-448f-a799-c2f5b89c998c", 61 | "metadata": {}, 62 | "outputs": [], 63 | "source": [ 64 | "table.schema" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": 51, 70 | "id": "902d10fb-0582-428c-8834-3076836b5e37", 71 | "metadata": {}, 72 | "outputs": [], 73 | "source": [ 74 | "layer = PathLayer(\n", 75 | " table=table.select([\"id\", \"geometry\", \"subtype\", \"class\", \"names\"]),\n", 76 | " get_color=[255, 83, 73],\n", 77 | " width_min_pixels=0.4,\n", 78 | ")" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": null, 84 | "id": "11fd3340-08c2-4c96-b163-0459d1d72c34", 85 | "metadata": {}, 86 | "outputs": [], 87 | "source": [ 88 | "view_state = {\n", 89 | " \"longitude\": 9.18831,\n", 90 | " \"latitude\": 45.464336,\n", 91 | " \"zoom\": 12,\n", 92 | "}\n", 93 | "m = Map(layer, view_state=view_state)\n", 94 | "m" 95 | ] 96 | }, 97 | { 98 | "cell_type": "code", 99 | "execution_count": null, 100 | "id": "ed87c7a2-e433-467d-ba2c-42f6cfcaf133", 101 | "metadata": {}, 102 | "outputs": [], 103 | "source": [] 104 | } 105 | ], 106 | "metadata": { 107 | "kernelspec": { 108 | "display_name": "Python 3 (ipykernel)", 109 | "language": "python", 110 | "name": "python3" 111 | }, 112 | "language_info": { 113 | "codemirror_mode": { 114 | "name": "ipython", 115 | "version": 3 116 | }, 117 | "file_extension": ".py", 118 | "mimetype": "text/x-python", 119 | "name": "python", 120 | "nbconvert_exporter": "python", 121 | "pygments_lexer": "ipython3", 122 | "version": "3.12.2" 123 | } 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /static/notebooks/overture-lonboard-geodataframe-direct.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 43, 6 | "id": "1da10bd6-f9ea-4eac-9cf6-bb2898d0ec2c", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import geopandas\n", 11 | "from overturemaps import core \n", 12 | "from lonboard import Map, ScatterplotLayer" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 44, 18 | "id": "d8562902-83d9-4596-bccf-a604f27c96e8", 19 | "metadata": {}, 20 | "outputs": [], 21 | "source": [ 22 | "# specify bounding box\n", 23 | "bbox = 9.106105, 45.427315, 9.263542, 45.5164" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 45, 29 | "id": "ff7ef625-8a2c-498b-adb7-5727958a20de", 30 | "metadata": {}, 31 | "outputs": [], 32 | "source": [ 33 | "# read in Overture place feature type, direct to geodataframe\n", 34 | "gdf = core.geodataframe(\"place\", bbox=bbox)" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": null, 40 | "id": "35f52871-f8f0-48d4-ad08-7fb3b54c341c", 41 | "metadata": {}, 42 | "outputs": [], 43 | "source": [ 44 | "gdf.shape" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": null, 50 | "id": "53441900-f890-448f-a799-c2f5b89c998c", 51 | "metadata": {}, 52 | "outputs": [], 53 | "source": [ 54 | "gdf.head()" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 57, 60 | "id": "6ed5aece-964d-4654-b963-8cb036a3bfe6", 61 | "metadata": {}, 62 | "outputs": [], 63 | "source": [ 64 | "gdf = gdf.set_crs('epsg:4326')" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": null, 70 | "id": "6dc58c30-b2e3-4885-bae0-76871d4ea321", 71 | "metadata": {}, 72 | "outputs": [], 73 | "source": [ 74 | "# create map layer \n", 75 | "layer = ScatterplotLayer.from_geopandas(\n", 76 | " gdf= gdf[['id', 'geometry', 'names', 'categories', 'confidence']],\n", 77 | " get_fill_color=[0, 128, 128],\n", 78 | " radius_min_pixels = 1.5,\n", 79 | ")\n", 80 | "\n", 81 | "view_state = {\n", 82 | " \"longitude\": 9.18831,\n", 83 | " \"latitude\": 45.464336,\n", 84 | " \"zoom\": 13,\n", 85 | " \"pitch\": 45,\n", 86 | "}\n", 87 | "m = Map(layer, view_state=view_state)\n", 88 | "m" 89 | ] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": null, 94 | "id": "8324afec-dd18-4233-ab37-710ea07ecaa4", 95 | "metadata": {}, 96 | "outputs": [], 97 | "source": [] 98 | } 99 | ], 100 | "metadata": { 101 | "kernelspec": { 102 | "display_name": "Python 3 (ipykernel)", 103 | "language": "python", 104 | "name": "python3" 105 | }, 106 | "language_info": { 107 | "codemirror_mode": { 108 | "name": "ipython", 109 | "version": 3 110 | }, 111 | "file_extension": ".py", 112 | "mimetype": "text/x-python", 113 | "name": "python", 114 | "nbconvert_exporter": "python", 115 | "pygments_lexer": "ipython3", 116 | "version": "3.12.2" 117 | } 118 | 119 | -------------------------------------------------------------------------------- /static/notebooks/overture-lonboard-geodataframe-long.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 143, 6 | "id": "1da10bd6-f9ea-4eac-9cf6-bb2898d0ec2c", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import pandas as pd\n", 11 | "import geopandas as gpd\n", 12 | "import overturemaps \n", 13 | "from shapely import wkb\n", 14 | "from lonboard import Map, PolygonLayer" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 144, 20 | "id": "d8562902-83d9-4596-bccf-a604f27c96e8", 21 | "metadata": {}, 22 | "outputs": [], 23 | "source": [ 24 | "# specify bounding box\n", 25 | "bbox = 9.106105, 45.427315, 9.263542, 45.5164" 26 | ] 27 | }, 28 | { 29 | "cell_type": "code", 30 | "execution_count": 145, 31 | "id": "ff7ef625-8a2c-498b-adb7-5727958a20de", 32 | "metadata": {}, 33 | "outputs": [], 34 | "source": [ 35 | "# read in Overture building feature type\n", 36 | "table = overturemaps.record_batch_reader(\"building\", bbox).read_all()\n", 37 | "table = table.combine_chunks()" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": null, 43 | "id": "6f961479-0c58-4db8-9856-d63fd80ca887", 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "type(table)" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": null, 53 | "id": "35f52871-f8f0-48d4-ad08-7fb3b54c341c", 54 | "metadata": {}, 55 | "outputs": [], 56 | "source": [ 57 | "table.shape" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": null, 63 | "id": "53441900-f890-448f-a799-c2f5b89c998c", 64 | "metadata": {}, 65 | "outputs": [], 66 | "source": [ 67 | "table.schema" 68 | ] 69 | }, 70 | { 71 | "cell_type": "code", 72 | "execution_count": 148, 73 | "id": "939d7ec0-cda0-48eb-b51c-a1264d6a4b89", 74 | "metadata": {}, 75 | "outputs": [], 76 | "source": [ 77 | "# convert to dataframe\n", 78 | "df = table.to_pandas()" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 150, 84 | "id": "b9301825-e21e-4151-b18c-18208551271e", 85 | "metadata": {}, 86 | "outputs": [], 87 | "source": [ 88 | "# dataframe to geodataframe, set crs\n", 89 | "gdf = gpd.GeoDataFrame(\n", 90 | " df, \n", 91 | " geometry=df['geometry'].apply(wkb.loads), \n", 92 | " crs=\"EPSG:4326\"\n", 93 | ")" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 156, 99 | "id": "6dc58c30-b2e3-4885-bae0-76871d4ea321", 100 | "metadata": {}, 101 | "outputs": [], 102 | "source": [ 103 | "# create map layer \n", 104 | "layer = PolygonLayer.from_geopandas(\n", 105 | " gdf= gdf[['id', 'geometry', 'names']].reset_index(drop=True),\n", 106 | " get_fill_color=[93, 103, 157],\n", 107 | " get_line_color=[0, 128, 128],\n", 108 | ")" 109 | ] 110 | }, 111 | { 112 | "cell_type": "code", 113 | "execution_count": null, 114 | "id": "89f30d96-1ace-41da-b11f-b57ccf8b26ce", 115 | "metadata": {}, 116 | "outputs": [], 117 | "source": [ 118 | "#render map\n", 119 | "view_state = {\n", 120 | " \"longitude\": 9.18831,\n", 121 | " \"latitude\": 45.464336,\n", 122 | " \"zoom\": 13,\n", 123 | " \"pitch\": 45,\n", 124 | "}\n", 125 | "m = Map(layer, view_state=view_state)\n", 126 | "m\n" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": null, 132 | "id": "8324afec-dd18-4233-ab37-710ea07ecaa4", 133 | "metadata": {}, 134 | "outputs": [], 135 | "source": [] 136 | } 137 | ], 138 | "metadata": { 139 | "kernelspec": { 140 | "display_name": "Python 3 (ipykernel)", 141 | "language": "python", 142 | "name": "python3" 143 | }, 144 | "language_info": { 145 | "codemirror_mode": { 146 | "name": "ipython", 147 | "version": 3 148 | }, 149 | "file_extension": ".py", 150 | "mimetype": "text/x-python", 151 | "name": "python", 152 | "nbconvert_exporter": "python", 153 | "pygments_lexer": "ipython3", 154 | "version": "3.12.2" 155 | } 156 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /test_queries.py: -------------------------------------------------------------------------------- 1 | # Run the DuckDB Queries 2 | import duckdb, re, sqlfluff 3 | from os import walk, path 4 | 5 | cursor = duckdb.connect() 6 | cursor.execute("INSTALL httpfs;") 7 | cursor.execute("INSTALL azure;") 8 | 9 | # Current version? 10 | search = re.compile(r"overtureRelease: '(.*)'") 11 | 12 | with open('docusaurus.config.js', 'r') as f: 13 | for line in f: 14 | if search.search(line): 15 | overture_release = search.search(line).group(1) 16 | 17 | print(f"Using Overture release: {overture_release}") 18 | 19 | def format_query(query): 20 | return query.replace('__OVERTURE_RELEASE', overture_release) 21 | 22 | # Read and Fluff all queries 23 | for (dir, dirnames, queries) in walk("src/queries/duckdb"): 24 | 25 | for idx, q in enumerate(sorted(queries)): 26 | query = open(path.join(dir,q),'r').read() 27 | query = format_query(query) 28 | print(idx, q) 29 | 30 | res = sqlfluff.lint(query) 31 | 32 | print(res) 33 | --------------------------------------------------------------------------------