Skip to content

Add ParksOverlay example profile with MapLibre style#1514

Open
permission-error1 wants to merge 3 commits intoonthegomap:mainfrom
permission-error1:exampless
Open

Add ParksOverlay example profile with MapLibre style#1514
permission-error1 wants to merge 3 commits intoonthegomap:mainfrom
permission-error1:exampless

Conversation

@permission-error1
Copy link

This PR adds a small Planetiler example profile that extracts
parks and gardens from OpenStreetMap using the tags:

leisure=park
leisure=garden

The example includes:

  • A Planetiler profile (ParksOverlay.java)
  • A MapLibre GL style demonstrating the parks layer(which I didnt push)
  • A simple HTML viewer(Which I didn't push)

Screenshot:
Screenshot 1404-12-25 at 06 48 37

@github-actions
Copy link

github-actions bot commented Mar 16, 2026

This Branch 2f2ead8 Base c84146e
0:01:06 DEB [archive] - Tile stats:
0:01:06 DEB [archive] - Biggest tiles (gzipped)
1. 14/4942/6092 (161k) https://onthegomap.github.io/planetiler-demo/#14.5/41.82864/-71.40015 (poi:88k)
2. 9/154/190 (148k) https://onthegomap.github.io/planetiler-demo/#9.5/41.77078/-71.36719 (landcover:86k)
3. 10/308/381 (138k) https://onthegomap.github.io/planetiler-demo/#10.5/41.63994/-71.54297 (landcover:72k)
4. 10/308/380 (137k) https://onthegomap.github.io/planetiler-demo/#10.5/41.90214/-71.54297 (landcover:66k)
5. 14/4941/6092 (119k) https://onthegomap.github.io/planetiler-demo/#14.5/41.82864/-71.42212 (poi:69k)
6. 14/4941/6093 (117k) https://onthegomap.github.io/planetiler-demo/#14.5/41.81227/-71.42212 (building:62k)
7. 14/4946/6113 (109k) https://onthegomap.github.io/planetiler-demo/#14.5/41.48389/-71.31226 (building:59k)
8. 14/4946/6112 (109k) https://onthegomap.github.io/planetiler-demo/#14.5/41.50035/-71.31226 (building:67k)
9. 14/4940/6092 (101k) https://onthegomap.github.io/planetiler-demo/#14.5/41.82864/-71.44409 (building:92k)
10. 14/4942/6091 (99k) https://onthegomap.github.io/planetiler-demo/#14.5/41.84501/-71.40015 (building:79k)
0:01:06 DEB [archive] - Max tile sizes
                      z0    z1    z2    z3    z4    z5    z6    z7    z8    z9   z10   z11   z12   z13   z14   all
           boundary  151   336   409   544   802   287   382   490   670  1.6k    2k  6.8k  6.2k  5.6k  4.4k  6.8k
              water 7.7k  3.7k  8.6k  5.5k  2.6k  5.1k   15k   18k   16k   26k   15k   13k   17k   15k   12k   26k
              place    0     0   487   487   487   733   822  1.1k  1.7k  3.3k  6.1k  3.8k  1.9k   935    1k  6.1k
            landuse    0     0     0     0   549   695  1.6k    7k   18k   44k   58k   49k   38k   19k   12k   58k
     transportation    0     0     0     0   410    1k  1.4k  4.5k  6.3k   21k   15k   17k   66k   46k   37k   66k
           waterway    0     0     0     0   112   119     0     0     0  3.3k  2.4k    2k  2.1k  4.9k  2.4k  4.9k
               park    0     0     0     0     0     0  1.1k    4k  9.6k   18k   13k  8.2k  3.7k  3.4k  4.4k   18k
transportation_name    0     0     0     0     0     0   295   360  1.1k    2k  5.7k  4.8k  3.9k  3.5k   19k   19k
          landcover    0     0     0     0     0     0     0  9.7k   29k   86k   72k   82k   53k   30k   25k   86k
      mountain_peak    0     0     0     0     0     0     0  1.1k  1.8k  3.4k  4.4k  2.8k  1.4k  1.4k   869  4.4k
         water_name    0     0     0     0     0     0     0     0     0   486   461   433   452  1.2k  1.5k  1.5k
    aerodrome_label    0     0     0     0     0     0     0     0     0     0   666   289   273   221   221   666
            aeroway    0     0     0     0     0     0     0     0     0     0  1.6k    2k    3k  3.3k  2.8k  3.3k
                poi    0     0     0     0     0     0     0     0     0     0     0     0   589   586   88k   88k
           building    0     0     0     0     0     0     0     0     0     0     0     0     0   59k   92k   92k
        housenumber    0     0     0     0     0     0     0     0     0     0     0     0     0     0   35k   35k
          full tile 7.9k    4k  9.5k  6.5k  3.7k  6.3k   21k   41k   85k  202k  184k  135k  114k  128k  254k  254k
            gzipped 6.2k  3.5k  7.1k  5.2k  3.1k    5k   14k   29k   61k  148k  138k   99k   84k   91k  161k  161k
0:01:06 DEB [archive] -    Max tile: 254k (gzipped: 161k)
0:01:06 DEB [archive] -    Avg tile: 5.5k (gzipped: 4.1k) using weighted average based on OSM traffic
0:01:06 DEB [archive] -     # tiles: 4,115,031
0:01:06 DEB [archive] -  # features: 5,743,285
0:01:06 INF [archive] - Finished in 20s cpu:1m16s avg:3.7
0:01:06 INF [archive] -   read    1x(3% 0.6s wait:18s done:1s)
0:01:06 INF [archive] -   encode  4x(54% 11s wait:2s done:1s)
0:01:06 INF [archive] -   write   1x(20% 4s wait:14s done:1s)
0:01:06 INF [archive] - Finished in 1m6s cpu:3m36s gc:1s avg:3.3
0:01:06 INF [archive] - FINISHED!
0:01:06 INF [archive] - 
0:01:06 INF [archive] - ----------------------------------------
0:01:06 INF [archive] - data errors:
0:01:06 INF [archive] - 	render_snap_fix_input	16,796
0:01:06 INF [archive] - 	osm_multipolygon_missing_way	396
0:01:06 INF [archive] - 	osm_boundary_missing_way	55
0:01:06 INF [archive] - 	merge_snap_fix_input	9
0:01:06 INF [archive] - 	feature_polygon_osm_invalid_multipolygon_empty_after_fix	7
0:01:06 INF [archive] - 	feature_centroid_if_convex_osm_invalid_multipolygon_empty_after_fix	2
0:01:06 INF [archive] - 	omt_fix_water_before_ne_intersect	2
0:01:06 INF [archive] - 	render_snap_fix_input2	1
0:01:06 INF [archive] - 	omt_park_area_osm_invalid_multipolygon_empty_after_fix	1
0:01:06 INF [archive] - ----------------------------------------
0:01:06 INF [archive] - 	overall          1m6s cpu:3m36s gc:1s avg:3.3
0:01:06 INF [archive] - 	lake_centerlines 3s cpu:7s avg:2.4
0:01:06 INF [archive] - 	  read     1x(18% 0.5s done:2s)
0:01:06 INF [archive] - 	  process  4x(0% 0s done:2s)
0:01:06 INF [archive] - 	  write    1x(0% 0s done:2s)
0:01:06 INF [archive] - 	water_polygons   15s cpu:40s avg:2.7
0:01:06 INF [archive] - 	  read     1x(44% 7s done:7s)
0:01:06 INF [archive] - 	  process  4x(23% 3s wait:4s done:6s)
0:01:06 INF [archive] - 	  write    1x(3% 0.5s wait:9s done:5s)
0:01:06 INF [archive] - 	natural_earth    7s cpu:14s avg:2
0:01:06 INF [archive] - 	  read     1x(96% 7s)
0:01:06 INF [archive] - 	  process  4x(14% 0.9s wait:6s)
0:01:06 INF [archive] - 	  write    1x(0% 0s wait:7s)
0:01:06 INF [archive] - 	osm_pass1        2s cpu:7s avg:3.4
0:01:06 INF [archive] - 	  read     1x(2% 0s wait:2s)
0:01:06 INF [archive] - 	  parse    4x(38% 0.8s)
0:01:06 INF [archive] - 	  process  1x(66% 1s)
0:01:06 INF [archive] - 	osm_pass2        17s cpu:1m7s avg:4
0:01:06 INF [archive] - 	  read     1x(0% 0s wait:11s done:6s)
0:01:06 INF [archive] - 	  process  4x(68% 11s)
0:01:06 INF [archive] - 	  write    1x(3% 0.5s wait:16s)
0:01:06 INF [archive] - 	ne_lakes         0s cpu:0s avg:0
0:01:06 INF [archive] - 	boundaries       0s cpu:0s avg:0
0:01:06 INF [archive] - 	agg_stop         0s cpu:0s avg:0
0:01:06 INF [archive] - 	sort             1s cpu:3s avg:2.5
0:01:06 INF [archive] - 	  worker  1x(53% 0.7s)
0:01:06 INF [archive] - 	archive          20s cpu:1m16s avg:3.7
0:01:06 INF [archive] - 	  read    1x(3% 0.6s wait:18s done:1s)
0:01:06 INF [archive] - 	  encode  4x(54% 11s wait:2s done:1s)
0:01:06 INF [archive] - 	  write   1x(20% 4s wait:14s done:1s)
0:01:06 INF [archive] - ----------------------------------------
0:01:06 INF [archive] - 	archive	108MB
0:01:06 INF [archive] - 	features	295MB
-rw-r--r-- 1 runner runner 89M Mar 16 04:52 run.jar
0:01:04 DEB [archive] - Tile stats:
0:01:04 DEB [archive] - Biggest tiles (gzipped)
1. 14/4942/6092 (161k) https://onthegomap.github.io/planetiler-demo/#14.5/41.82864/-71.40015 (poi:88k)
2. 9/154/190 (148k) https://onthegomap.github.io/planetiler-demo/#9.5/41.77078/-71.36719 (landcover:86k)
3. 10/308/381 (138k) https://onthegomap.github.io/planetiler-demo/#10.5/41.63994/-71.54297 (landcover:72k)
4. 10/308/380 (137k) https://onthegomap.github.io/planetiler-demo/#10.5/41.90214/-71.54297 (landcover:66k)
5. 14/4941/6092 (119k) https://onthegomap.github.io/planetiler-demo/#14.5/41.82864/-71.42212 (poi:69k)
6. 14/4941/6093 (117k) https://onthegomap.github.io/planetiler-demo/#14.5/41.81227/-71.42212 (building:62k)
7. 14/4946/6113 (109k) https://onthegomap.github.io/planetiler-demo/#14.5/41.48389/-71.31226 (building:59k)
8. 14/4946/6112 (109k) https://onthegomap.github.io/planetiler-demo/#14.5/41.50035/-71.31226 (building:67k)
9. 14/4940/6092 (101k) https://onthegomap.github.io/planetiler-demo/#14.5/41.82864/-71.44409 (building:92k)
10. 14/4942/6091 (99k) https://onthegomap.github.io/planetiler-demo/#14.5/41.84501/-71.40015 (building:79k)
0:01:04 DEB [archive] - Max tile sizes
                      z0    z1    z2    z3    z4    z5    z6    z7    z8    z9   z10   z11   z12   z13   z14   all
           boundary  151   336   409   544   802   287   382   490   670  1.6k    2k  6.8k  6.2k  5.6k  4.4k  6.8k
              water 7.7k  3.7k  8.6k  5.5k  2.6k  5.1k   15k   18k   16k   26k   15k   13k   17k   15k   12k   26k
              place    0     0   487   487   487   733   822  1.1k  1.7k  3.3k  6.1k  3.8k  1.9k   935    1k  6.1k
            landuse    0     0     0     0   549   695  1.6k    7k   18k   44k   58k   49k   38k   19k   12k   58k
     transportation    0     0     0     0   410    1k  1.4k  4.5k  6.3k   21k   15k   17k   66k   46k   37k   66k
           waterway    0     0     0     0   112   119     0     0     0  3.3k  2.4k    2k  2.1k  4.9k  2.4k  4.9k
               park    0     0     0     0     0     0  1.1k    4k  9.6k   18k   13k  8.2k  3.7k  3.4k  4.4k   18k
transportation_name    0     0     0     0     0     0   295   360  1.1k    2k  5.7k  4.8k  3.9k  3.5k   19k   19k
          landcover    0     0     0     0     0     0     0  9.7k   29k   86k   72k   82k   53k   30k   25k   86k
      mountain_peak    0     0     0     0     0     0     0  1.1k  1.8k  3.4k  4.4k  2.8k  1.4k  1.4k   869  4.4k
         water_name    0     0     0     0     0     0     0     0     0   486   461   433   452  1.2k  1.5k  1.5k
    aerodrome_label    0     0     0     0     0     0     0     0     0     0   666   289   273   221   221   666
            aeroway    0     0     0     0     0     0     0     0     0     0  1.6k    2k    3k  3.3k  2.8k  3.3k
                poi    0     0     0     0     0     0     0     0     0     0     0     0   589   586   88k   88k
           building    0     0     0     0     0     0     0     0     0     0     0     0     0   59k   92k   92k
        housenumber    0     0     0     0     0     0     0     0     0     0     0     0     0     0   35k   35k
          full tile 7.9k    4k  9.5k  6.5k  3.7k  6.3k   21k   41k   85k  202k  184k  135k  114k  128k  254k  254k
            gzipped 6.2k  3.5k  7.1k  5.2k  3.1k    5k   14k   29k   61k  148k  138k   99k   84k   91k  161k  161k
0:01:04 DEB [archive] -    Max tile: 254k (gzipped: 161k)
0:01:04 DEB [archive] -    Avg tile: 5.5k (gzipped: 4.1k) using weighted average based on OSM traffic
0:01:04 DEB [archive] -     # tiles: 4,115,031
0:01:04 DEB [archive] -  # features: 5,743,285
0:01:04 INF [archive] - Finished in 20s cpu:1m12s avg:3.7
0:01:04 INF [archive] -   read    1x(3% 0.5s wait:18s done:1s)
0:01:04 INF [archive] -   encode  4x(54% 11s wait:2s done:1s)
0:01:04 INF [archive] -   write   1x(21% 4s wait:14s done:1s)
0:01:04 INF [archive] - Finished in 1m5s cpu:3m31s avg:3.3
0:01:04 INF [archive] - FINISHED!
0:01:04 INF [archive] - 
0:01:04 INF [archive] - ----------------------------------------
0:01:04 INF [archive] - data errors:
0:01:04 INF [archive] - 	render_snap_fix_input	16,796
0:01:04 INF [archive] - 	osm_multipolygon_missing_way	396
0:01:04 INF [archive] - 	osm_boundary_missing_way	55
0:01:04 INF [archive] - 	merge_snap_fix_input	9
0:01:04 INF [archive] - 	feature_polygon_osm_invalid_multipolygon_empty_after_fix	7
0:01:04 INF [archive] - 	feature_centroid_if_convex_osm_invalid_multipolygon_empty_after_fix	2
0:01:04 INF [archive] - 	omt_fix_water_before_ne_intersect	2
0:01:04 INF [archive] - 	render_snap_fix_input2	1
0:01:04 INF [archive] - 	omt_park_area_osm_invalid_multipolygon_empty_after_fix	1
0:01:04 INF [archive] - ----------------------------------------
0:01:04 INF [archive] - 	overall          1m5s cpu:3m31s avg:3.3
0:01:04 INF [archive] - 	lake_centerlines 2s cpu:6s avg:2.5
0:01:04 INF [archive] - 	  read     1x(21% 0.5s done:2s)
0:01:04 INF [archive] - 	  process  4x(0% 0s done:2s)
0:01:04 INF [archive] - 	  write    1x(0% 0s done:2s)
0:01:04 INF [archive] - 	water_polygons   15s cpu:40s avg:2.7
0:01:04 INF [archive] - 	  read     1x(44% 7s done:7s)
0:01:04 INF [archive] - 	  process  4x(23% 3s wait:4s done:6s)
0:01:04 INF [archive] - 	  write    1x(3% 0.5s wait:9s done:5s)
0:01:04 INF [archive] - 	natural_earth    7s cpu:15s avg:2.1
0:01:04 INF [archive] - 	  read     1x(95% 7s)
0:01:04 INF [archive] - 	  process  4x(14% 0.9s wait:6s)
0:01:04 INF [archive] - 	  write    1x(0% 0s wait:7s)
0:01:04 INF [archive] - 	osm_pass1        2s cpu:7s avg:3.3
0:01:04 INF [archive] - 	  read     1x(2% 0s wait:2s)
0:01:04 INF [archive] - 	  parse    4x(34% 0.7s)
0:01:04 INF [archive] - 	  process  1x(70% 2s)
0:01:04 INF [archive] - 	osm_pass2        16s cpu:1m4s avg:4
0:01:04 INF [archive] - 	  read     1x(0% 0s wait:10s done:6s)
0:01:04 INF [archive] - 	  process  4x(69% 11s)
0:01:04 INF [archive] - 	  write    1x(3% 0.5s wait:16s)
0:01:04 INF [archive] - 	ne_lakes         0s cpu:0s avg:0
0:01:04 INF [archive] - 	boundaries       0s cpu:0s avg:0
0:01:04 INF [archive] - 	agg_stop         0s cpu:0s avg:0
0:01:04 INF [archive] - 	sort             1s cpu:4s avg:2.6
0:01:04 INF [archive] - 	  worker  1x(53% 0.7s)
0:01:04 INF [archive] - 	archive          20s cpu:1m12s avg:3.7
0:01:04 INF [archive] - 	  read    1x(3% 0.5s wait:18s done:1s)
0:01:04 INF [archive] - 	  encode  4x(54% 11s wait:2s done:1s)
0:01:04 INF [archive] - 	  write   1x(21% 4s wait:14s done:1s)
0:01:04 INF [archive] - ----------------------------------------
0:01:04 INF [archive] - 	archive	108MB
0:01:04 INF [archive] - 	features	295MB
-rw-r--r-- 1 runner runner 89M Mar 16 04:53 run.jar

Full logs: https://github.com/onthegomap/planetiler/actions/runs/23128446480

@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
11.6% Duplication on New Code (required ≤ 5%)

See analysis details on SonarQube Cloud

@permission-error1 permission-error1 marked this pull request as ready for review March 16, 2026 05:01
@permission-error1
Copy link
Author

@msbarry, Can I add the Custom MapLibre style and parks-map.html that I used?

For SonarCloud analysis fail, the duplication warning is from boilerplate that all the other examples share too (imports, attribution, run/main). Not sure how to reduce it without making the code inconsistent with the rest of the examples.

Copy link
Contributor

@msbarry msbarry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comments but otherwise looks great, thanks!

Comment on lines +28 to +30

parks-map.html
parks-style.json No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we revert these 2 lilnes? I usually put temp files like this in data/ directory

assertEquals("Parks Overlay", metadata.get("name"));
assertContains("openstreetmap.org/copyright", metadata.get("attribution"));

TestUtils.assertTileDuplicates(mbtiles, 0);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add one call to TestUtils.assertNumFeatures here to verify the output actually contains a park polygon?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants