diff --git a/.github/cache-sources-action/action.yml b/.github/cache-sources-action/action.yml new file mode 100644 index 0000000..9501ae8 --- /dev/null +++ b/.github/cache-sources-action/action.yml @@ -0,0 +1,22 @@ +# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/metadata-syntax-for-github-actions +name: 'Cache data/sources' +description: 'Save/restore data/sources cache' +inputs: + basedir: + description: 'Base dir for computing file hash' + required: false + default: '' +runs: + using: 'composite' + steps: + - name: Get Date + id: get-data + run: | + echo "::set-output name=hash::${{ hashFiles('**/OpenMapTilesMain.java') }}" + echo "::set-output name=date::$(date -u "+%Y-%m-%d")" + shell: bash + working-directory: ${{ inputs.basedir }} + - uses: actions/cache@v2 + with: + path: data/sources + key: data-sources-${{ steps.get-data.outputs.date }}-${{ steps.get-data.outputs.hash }} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5a8c638 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,23 @@ +# Configure dependabot automatic version upgrades +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: maven + directory: "/" + open-pull-requests-limit: 1 + schedule: + interval: daily + time: "04:30" + timezone: America/New_York + labels: + - dependencies + - package-ecosystem: github-actions + directory: "/" + open-pull-requests-limit: 1 + schedule: + interval: daily + time: "04:30" + timezone: America/New_York + labels: + - dependencies diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index f60cb53..c9003ce 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -15,18 +15,8 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - name: Checkout parent Planetiler repo - uses: actions/checkout@v3 - with: - repository: lazaa32/planetiler - ref: omt_submodule - path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 - with: - path: planetiler-openmaptiles - - name: Move planetiler-openmaptiles into planetiler - run: mv planetiler-openmaptiles planetiler - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -34,7 +24,6 @@ jobs: distribution: 'temurin' cache: 'maven' - name: Ensure code formatted with mvn spotless:apply - working-directory: planetiler run: ./mvnw -DskipTests --batch-mode -no-transfer-progress spotless:check build: @@ -56,22 +45,8 @@ jobs: runs-on: ${{ matrix.os }} timeout-minutes: 15 steps: - - name: Checkout parent Planetiler repo - uses: actions/checkout@v3 - with: - repository: lazaa32/planetiler - ref: omt_submodule - path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 - with: - path: planetiler-openmaptiles - - name: Move planetiler-openmaptiles into planetiler (linux/mac) - if: ${{ !contains(matrix.os, 'windows') }} - run: mv planetiler-openmaptiles planetiler - - name: Move planetiler-openmaptiles into planetiler (windows) - if: ${{ contains(matrix.os, 'windows') }} - run: mv -Force planetiler-openmaptiles planetiler - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v3 with: @@ -81,11 +56,9 @@ jobs: # Skip spotless since that gets checked in a separate task - name: Build with mvnw (linux/mac) if: ${{ !contains(matrix.os, 'windows') }} - working-directory: planetiler run: ./mvnw ${{matrix.args}} -Dspotless.check.skip --batch-mode -no-transfer-progress package verify jib:buildTar --file pom.xml - name: Build with mvnw.cmd (windows) if: ${{ contains(matrix.os, 'windows') }} - working-directory: planetiler run: mvnw.cmd ${{matrix.args}} -Dspotless.check.skip --batch-mode -no-transfer-progress package verify jib:buildTar --file pom.xml shell: cmd @@ -94,18 +67,8 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - name: Checkout parent Planetiler repo - uses: actions/checkout@v3 - with: - repository: lazaa32/planetiler - ref: omt_submodule - path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 - with: - path: planetiler-openmaptiles - - name: Move planetiler-openmaptiles into planetiler - run: mv planetiler-openmaptiles planetiler - name: Set up JDK 17 uses: actions/setup-java@v3 with: @@ -113,59 +76,48 @@ jobs: distribution: 'temurin' cache: 'maven' - run: ./scripts/regenerate-openmaptiles.sh - working-directory: planetiler # Skip spotless since that gets checked in a separate task - - run: ./mvnw -Dspotless.check.skip -DskipTests --batch-mode -no-transfer-progress clean install -pl planetiler-openmaptiles -am - working-directory: planetiler - - run: ./mvnw -Dspotless.check.skip --batch-mode -no-transfer-progress verify -pl planetiler-openmaptiles - working-directory: planetiler - - examples: - name: Example project - runs-on: ubuntu-latest - timeout-minutes: 15 - continue-on-error: true - steps: - - name: Checkout parent Planetiler repo - uses: actions/checkout@v3 - with: - repository: lazaa32/planetiler - ref: omt_submodule - path: planetiler - - name: Checkout this PR planetiler-openmaptiles repo - uses: actions/checkout@v3 - with: - path: planetiler-openmaptiles - - name: Move planetiler-openmaptiles into planetiler - run: mv planetiler-openmaptiles planetiler - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: 'temurin' - - name: Build and test - run: mvn --batch-mode -no-transfer-progress package --file standalone.pom.xml - working-directory: planetiler/planetiler-examples - - name: Find jar - run: mv target/*with-deps.jar ./run.jar - working-directory: planetiler/planetiler-examples - - name: Run - run: java -jar run.jar --osm-path=../planetiler-core/src/test/resources/monaco-latest.osm.pbf --mbtiles=data/out.mbtiles - working-directory: planetiler/planetiler-examples - - name: Verify - run: java -cp run.jar com.onthegomap.planetiler.mbtiles.Verify data/out.mbtiles - working-directory: planetiler/planetiler-examples + - run: ./mvnw -Dspotless.check.skip --batch-mode -no-transfer-progress clean verify run: name: Build / Run runs-on: ubuntu-latest timeout-minutes: 15 + steps: + - name: Checkout this PR planetiler-openmaptiles repo + uses: actions/checkout@v3 + - name: Cache data/sources + uses: ./.github/cache-sources-action + - name: Set up JDK + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'temurin' + cache: 'maven' + - name: Build this branch + run: ./mvnw -DskipTests -Dimage.version=CI_ONLY --batch-mode -no-transfer-progress package jib:dockerBuild --file pom.xml + - name: 'Upload artifact' + uses: actions/upload-artifact@v3 + with: + name: planetiler-build + path: target/*with-deps.jar + - name: 'Download data (java)' + run: java -jar target/*with-deps.jar --only-download --area=monaco + - name: 'Download wikidata (java)' + run: java -jar target/*with-deps.jar --only-fetch-wikidata --area=monaco + - name: 'Verify build' + run: ./scripts/test-release.sh CI_ONLY + + submodule: + name: Planetiler submodule + runs-on: ubuntu-latest + timeout-minutes: 15 steps: - name: Checkout parent Planetiler repo uses: actions/checkout@v3 with: - repository: lazaa32/planetiler - ref: omt_submodule + repository: onthegomap/planetiler + ref: main path: planetiler - name: Checkout this PR planetiler-openmaptiles repo uses: actions/checkout@v3 @@ -174,21 +126,16 @@ jobs: - name: Move planetiler-openmaptiles into planetiler run: mv planetiler-openmaptiles planetiler - name: Cache data/sources - uses: ./planetiler/.github/cache-sources-action + uses: ./planetiler/planetiler-openmaptiles/.github/cache-sources-action - name: Set up JDK uses: actions/setup-java@v3 with: java-version: 17 distribution: 'temurin' cache: 'maven' - - name: Build this branch + - name: Build and test this branch working-directory: planetiler - run: ./mvnw -DskipTests -Dimage.version=CI_ONLY --batch-mode -no-transfer-progress package jib:dockerBuild --file pom.xml - - name: 'Upload artifact' - uses: actions/upload-artifact@v3 - with: - name: planetiler-build - path: planetiler/planetiler-dist/target/*with-deps.jar + run: ./mvnw -Dimage.version=CI_ONLY --batch-mode -no-transfer-progress verify package jib:dockerBuild --file pom.xml - name: 'Download data (java)' working-directory: planetiler run: java -jar planetiler-dist/target/*with-deps.jar --only-download --area=monaco @@ -199,4 +146,4 @@ jobs: working-directory: planetiler run: ./scripts/test-release.sh CI_ONLY env: - SKIP_EXAMPLE_PROJECT: true + SKIP_EXAMPLE_PROJECT: true \ No newline at end of file diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 33aa6fd..1520f67 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -26,36 +26,20 @@ jobs: uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} - - name: 'Checkout parent Planetiler repo for branch' - uses: actions/checkout@v3 - with: - repository: lazaa32/planetiler - ref: omt_submodule - path: branch/planetiler - - name: 'Checkout parent Planetiler repo for base' - uses: actions/checkout@v3 - with: - repository: lazaa32/planetiler - ref: omt_submodule - path: base/planetiler - name: 'Checkout PT-OMT PR branch' uses: actions/checkout@v3 with: - path: branch/planetiler-openmaptiles - - name: 'Move planetiler-openmaptiles into planetiler for base' - run: mv branch/planetiler-openmaptiles branch/planetiler + path: branch - name: 'Checkout PT-OMT base' uses: actions/checkout@v3 with: - path: base/planetiler-openmaptiles + path: base ref: ${{ github.event.pull_request.base.sha }} - - name: 'Move planetiler-openmaptiles into planetiler for base' - run: mv base/planetiler-openmaptiles base/planetiler - name: 'Cache data/sources' - uses: ./branch/planetiler/.github/cache-sources-action + uses: ./branch/.github/cache-sources-action with: basedir: branch - name: 'Set up JDK' @@ -71,16 +55,16 @@ jobs: - name: 'Build branch' run: ./scripts/build.sh - working-directory: branch/planetiler + working-directory: branch - name: 'Build base' run: ./scripts/build.sh - working-directory: base/planetiler + working-directory: base - name: 'Download data' run: | set -eo pipefail - cp base/planetiler/planetiler-dist/target/*with-deps.jar run.jar && java -jar run.jar --only-download --area="${{ env.AREA }}" - cp branch/planetiler/planetiler-dist/target/*with-deps.jar run.jar && java -jar run.jar --only-download --area="${{ env.AREA }}" + cp base/target/*with-deps.jar run.jar && java -jar run.jar --only-download --area="${{ env.AREA }}" + cp branch/target/*with-deps.jar run.jar && java -jar run.jar --only-download --area="${{ env.AREA }}" - name: 'Store build info' run: | @@ -92,14 +76,14 @@ jobs: - name: 'Run branch' run: | rm -rf data/out.mbtiles data/tmp - cp branch/planetiler/planetiler-dist/target/*with-deps.jar run.jar + cp branch/target/*with-deps.jar run.jar java -Xms${{ env.RAM }} -Xmx${{ env.RAM }} -jar run.jar --area="${{ env.AREA }}" "${{ env.BOUNDS_ARG }}" --mbtiles=data/out.mbtiles 2>&1 | tee log ls -alh run.jar | tee -a log cat log | strip-ansi > build-info/branchlogs.txt - name: 'Run base' run: | rm -rf data/out.mbtiles data/tmp - cp base/planetiler/planetiler-dist/target/*with-deps.jar run.jar + cp base/target/*with-deps.jar run.jar java -Xms${{ env.RAM }} -Xmx${{ env.RAM }} -jar run.jar --area="${{ env.AREA }}" "${{ env.BOUNDS_ARG }}" --mbtiles=data/out.mbtiles 2>&1 | tee log ls -alh run.jar | tee -a log cat log | strip-ansi > build-info/baselogs.txt diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml new file mode 100644 index 0000000..22043a6 --- /dev/null +++ b/.github/workflows/snapshot.yml @@ -0,0 +1,32 @@ +# Publish a docker image on each commit to main +name: Publish a Snapshot + +on: + push: + branches: [ main ] + +jobs: + snapshot: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: 'temurin' + cache: 'maven' + - run: | + ./mvnw -B -ntp -Pjib-multi-arch \ + -Dimage.tags="latest" \ + -Djib.to.auth.username="${{ secrets.DOCKERHUB_USERNAME }}" \ + -Djib.to.auth.password="${{ secrets.DOCKERHUB_PASSWORD }}" \ + package jib:build --file pom.xml + - run: sha256sum target/*with-deps.jar + - run: md5sum target/*with-deps.jar + - name: 'Upload artifact' + uses: actions/upload-artifact@v3 + with: + name: planetiler-build + path: target/*with-deps.jar diff --git a/.github/workflows/update-pr.yml b/.github/workflows/update-pr.yml index c21b42a..a47c010 100644 --- a/.github/workflows/update-pr.yml +++ b/.github/workflows/update-pr.yml @@ -61,7 +61,7 @@ jobs: - https://github.com/onthegomap/planetiler/actions/runs/${{ github.event.workflow_run.id }} + https://github.com/openmaptiles/planetiler-openmaptiles/actions/runs/${{ github.event.workflow_run.id }}
ℹ️ Base Logs $(cat build-info/base_sha) diff --git a/.gitignore b/.gitignore index 25cf6f8..16f283d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ target/ # idea */.idea -.idea/ .idea/* *.iml !.idea/codeStyles @@ -18,4 +17,6 @@ target/ .classpath .project .settings -bin/ \ No newline at end of file +bin/ + +data/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..16a51e0 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,598 @@ + + + + + diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/eclipseCodeFormatter.xml b/.idea/eclipseCodeFormatter.xml new file mode 100644 index 0000000..02d0ec3 --- /dev/null +++ b/.idea/eclipseCodeFormatter.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.mvn/jvm.config b/.mvn/jvm.config new file mode 100644 index 0000000..813a7d4 --- /dev/null +++ b/.mvn/jvm.config @@ -0,0 +1,5 @@ +--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..3e4b704 --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,118 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to use instead of the default + * one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..2cc7d4a Binary files /dev/null and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..abd303b --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.2/apache-maven-3.8.2-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6012034 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "java.format.settings.url": "eclipse-formatter.xml", + "java.format.settings.profile": "Planetiler", + "java.completion.importOrder": [ + "#", + "" + ], + "java.sources.organizeImports.staticStarThreshold": 5, + "java.sources.organizeImports.starThreshold": 999, + "java.saveActions.organizeImports": true +} diff --git a/README.md b/README.md index de0e49b..609de41 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,27 @@ # Planetiler OpenMapTiles Profile -This OpenMapTiles profile is based on [OpenMapTiles](https://github.com/openmaptiles/openmaptiles). -See [README.md](https://github.com/onthegomap/planetiler/blob/main/README.md) in the parent repository for instructions on how to run. +This OpenMapTiles profile for [Planetiler](https://github.com/onthegomap/planetiler) is based +on [OpenMapTiles](https://github.com/openmaptiles/openmaptiles). + +## How to run + +Using pre-built docker image: + +```bash +docker run -v "$(pwd)/data":/data openmaptiles/planetiler-openmaptiles:latest --force --download --area=monaco +``` + +Or to build from source, after [installing Java 16+](https://adoptium.net/installation.html): + +```bash +# Build the project (use mvnw.cmd on windows): +./mvnw clean package +# Then run: +java -jar target/*with-deps.jar --force --download --area=monaco +``` + +See [Planetiler README.md](https://github.com/onthegomap/planetiler/blob/main/README.md) for more description of the +available options. ## Differences from OpenMapTiles @@ -14,30 +34,35 @@ See [README.md](https://github.com/onthegomap/planetiler/blob/main/README.md) in ## Code Layout -[Generate.java](./src/main/java/com/onthegomap/planetiler/openmaptiles/Generate.java) generates code in -the [generated](./src/main/java/com/onthegomap/planetiler/openmaptiles/generated) package from an OpenMapTiles tag in GitHub: +[Generate.java](src/main/java/org/openmaptiles/Generate.java) generates code in +the [generated](src/main/java/org/openmaptiles/generated) package from an OpenMapTiles tag in +GitHub: -- [OpenMapTilesSchema](./src/main/java/com/onthegomap/planetiler/openmaptiles/generated/OpenMapTilesSchema.java) +- [OpenMapTilesSchema](src/main/java/org/openmaptiles/generated/OpenMapTilesSchema.java) contains an interface for each layer with constants for the name, attributes, and allowed values for each tag in that layer -- [Tables](./src/main/java/com/onthegomap/planetiler/openmaptiles/generated/Tables.java) +- [Tables](src/main/java/org/openmaptiles/generated/Tables.java) contains a record for each table that OpenMapTiles [imposm3](https://github.com/omniscale/imposm3) configuration generates (along with the tag-filtering expression) so layers can listen on instances of those records instead of doing the tag filtering and parsing themselves -The [layers](./src/main/java/com/onthegomap/planetiler/openmaptiles/layers) package contains a port of the SQL logic to +The [layers](src/main/java/org/openmaptiles/layers) package contains a port of the SQL logic to generate each layer from OpenMapTiles. Layers define how source features (or parsed imposm3 table rows) map to vector tile features, and logic for post-processing tile geometries. -[OpenMapTilesProfile](./src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfile.java) dispatches source features to +[OpenMapTilesProfile](src/main/java/org/openmaptiles/OpenMapTilesProfile.java) dispatches source +features to layer handlers and merges the results. -[OpenMapTilesMain](./src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesMain.java) is the main driver that registers +[OpenMapTilesMain](src/main/java/org/openmaptiles/OpenMapTilesMain.java) is the main driver that +registers source data and output location. ## Regenerating Code -To run `Generate.java`, use [scripts/regenerate-openmaptiles.sh](https://github.com/onthegomap/planetiler/blob/main/scripts/regenerate-openmaptiles.sh) script with the +To run `Generate.java`, +use [scripts/regenerate-openmaptiles.sh](https://github.com/onthegomap/planetiler/blob/main/scripts/regenerate-openmaptiles.sh) +script with the OpenMapTiles release tag: ```bash @@ -54,9 +79,12 @@ If you want to regenerate from a different repository than the default openmapti ## License -All code in this repository is under the [BSD license](./LICENSE.md) and the cartography decisions encoded in the schema and SQL are licensed under [CC-BY](./LICENSE.md). +All code in this repository is under the [BSD license](./LICENSE.md) and the cartography decisions encoded in the schema +and SQL are licensed under [CC-BY](./LICENSE.md). -Products or services using maps derived from OpenMapTiles schema need to visibly credit "OpenMapTiles.org" or reference "OpenMapTiles" with a link to https://openmaptiles.org/. Exceptions to attribution requirement can be granted on request. +Products or services using maps derived from OpenMapTiles schema need to visibly credit "OpenMapTiles.org" or +reference "OpenMapTiles" with a link to https://openmaptiles.org/. Exceptions to attribution requirement can be granted +on request. For a browsable electronic map based on OpenMapTiles and OpenStreetMap data, the credit should appear in the corner of the map. For example: diff --git a/eclipse-formatter.xml b/eclipse-formatter.xml new file mode 100644 index 0000000..5fa6d15 --- /dev/null +++ b/eclipse-formatter.xml @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mvnw b/mvnw new file mode 100755 index 0000000..41c0f0c --- /dev/null +++ b/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100644 index 0000000..8611571 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/pom.xml b/pom.xml index 4d855d9..1867a4e 100644 --- a/pom.xml +++ b/pom.xml @@ -2,21 +2,62 @@ + 4.0.0 - planetiler-openmaptiles + + UTF-8 + 16 + 16 + 0.5-SNAPSHOT + 5.9.0 - - com.onthegomap.planetiler - planetiler-parent - 0.5-SNAPSHOT - + org.openmaptiles.OpenMapTilesMain + ${project.version} + openmaptiles/planetiler-openmaptiles:${image.version} + package + amd64 + linux + + + org.openmaptiles + planetiler-openmaptiles + 3.13.1 + + OpenMapTiles Vector Tile Schema implementation for Planetiler tool + + + + + osgeo + OSGeo Release Repository + https://repo.osgeo.org/repository/release/ + + false + + + true + + + + + nexus-snapshots + Nexus SNAPSHOT Repository + https://s01.oss.sonatype.org/content/repositories/snapshots/ + + true + + + false + + + com.onthegomap.planetiler planetiler-core - ${project.parent.version} + ${planetiler.version} org.yaml @@ -29,29 +70,195 @@ 0.19.0 + com.onthegomap.planetiler planetiler-core - ${project.parent.version} + ${planetiler.version} test-jar test + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + + + + org.junit.jupiter + junit-jupiter-params + ${junit.version} + test + - io.github.zlika - reproducible-build-maven-plugin + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M7 + + + org.apache.maven.plugins + maven-failsafe-plugin + 3.0.0-M7 - maven-deploy-plugin + com.diffplug.spotless + spotless-maven-plugin + 2.24.0 - - true + + + + + 4.21.0 + eclipse-formatter.xml + + + + + **/*.md + + + **/target/** + + + + + + + + + check + + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.1.0 + + + enforce-java + + enforce + + + + + 16 + + + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.4.2 + + + com.onthegomap.planetiler + planetiler-core + ${planetiler.version} + + + + + + + true + + + ${mainClass} + + + + with-deps + + false + + + + + make-assembly + ${assembly-phase} + + single + + + + + + + + com.google.cloud.tools + jib-maven-plugin + 3.2.1 + + + + eclipse-temurin:17-jre + + + + ${jib.platform-arch} + ${jib.platform-os} + + + + + ${image} + + + + + https://github.com/openmaptiles/planetiler-openmaptiles + + + ${mainClass} + + + + + jib-multi-arch + + + + com.google.cloud.tools + jib-maven-plugin + + + + + amd64 + linux + + + arm64 + linux + + + + + + + + + diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..aa40a3e --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset + +./mvnw -DskipTests=true clean package diff --git a/scripts/check-doc-links.sh b/scripts/check-doc-links.sh new file mode 100755 index 0000000..67dd44e --- /dev/null +++ b/scripts/check-doc-links.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset + +find . -name '*.md' -not -path '*/target/*' -print0 | xargs -I {} -n 1 -0 markdown-link-check --quiet --config .github/workflows/docs_mlc_config.json {} diff --git a/scripts/check-monaco.sh b/scripts/check-monaco.sh new file mode 100755 index 0000000..a7aacbd --- /dev/null +++ b/scripts/check-monaco.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset + +java -ea -cp target/*-with-deps.jar org.openmaptiles.util.VerifyMonaco $* diff --git a/scripts/format.sh b/scripts/format.sh new file mode 100755 index 0000000..3b6a99d --- /dev/null +++ b/scripts/format.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -e + +./mvnw spotless:apply diff --git a/scripts/regenerate-openmaptiles.sh b/scripts/regenerate-openmaptiles.sh new file mode 100755 index 0000000..47c8fa5 --- /dev/null +++ b/scripts/regenerate-openmaptiles.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -o errexit +set -o pipefail +set -o nounset + +TAG="${1:-"v3.13.1"}" +echo "tag=${TAG}" + +BASE_URL="${2:-"https://raw.githubusercontent.com/openmaptiles/openmaptiles/"}" +echo "base-url=${BASE_URL}" + +echo "Building..." +./mvnw -DskipTests=true package + +echo "Running..." +java -cp target/*-with-deps.jar org.openmaptiles.Generate -tag="${TAG}" -base-url="${BASE_URL}" + +echo "Formatting..." +./scripts/format.sh diff --git a/scripts/set-versions.sh b/scripts/set-versions.sh new file mode 100755 index 0000000..23e6d2d --- /dev/null +++ b/scripts/set-versions.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -eu + +if (( $# != 1 )); then + echo "Usage: set_versions.sh " >&2 + exit 1 +fi + +version="$1" + +./mvnw -B -ntp versions:set versions:commit -DnewVersion="${version}" diff --git a/scripts/test-release.sh b/scripts/test-release.sh new file mode 100755 index 0000000..61b08d7 --- /dev/null +++ b/scripts/test-release.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -exuo pipefail + +version="${1:-$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)}" + +echo "Test java build" +echo "::group::OpenMapTiles monaco (java)" +rm -f data/out.mbtiles +java -jar target/*with-deps.jar --download --area=monaco --mbtiles=data/out.mbtiles +./scripts/check-monaco.sh data/out.mbtiles +echo "::endgroup::" + +echo "::endgroup::" +echo "::group::OpenMapTiles monaco (docker)" +rm -f data/out.mbtiles +docker run -v "$(pwd)/data":/data openmaptiles/planetiler-openmaptiles:"${version}" --area=monaco --mbtiles=data/out.mbtiles +./scripts/check-monaco.sh data/out.mbtiles +echo "::endgroup::" diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/Generate.java b/src/main/java/org/openmaptiles/Generate.java similarity index 98% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/Generate.java rename to src/main/java/org/openmaptiles/Generate.java index 9bd86a4..261d826 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/Generate.java +++ b/src/main/java/org/openmaptiles/Generate.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import static com.onthegomap.planetiler.expression.Expression.*; import static java.util.stream.Collectors.joining; @@ -161,9 +161,9 @@ public class Generate { tables.putAll(layer.tables); } - String packageName = "com.onthegomap.planetiler.openmaptiles.generated"; + String packageName = "org.openmaptiles.generated"; String[] packageParts = packageName.split("\\."); - Path output = Path.of("planetiler-openmaptiles", "src", "main", "java") + Path output = Path.of("src", "main", "java") .resolve(Path.of(packageParts[0], Arrays.copyOfRange(packageParts, 1, packageParts.length))); FileUtils.deleteDirectory(output); @@ -188,7 +188,7 @@ public class Generate { import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.expression.MultiExpression; - import com.onthegomap.planetiler.openmaptiles.Layer; + import org.openmaptiles.Layer; import com.onthegomap.planetiler.util.Translations; import java.util.List; import java.util.Map; @@ -225,7 +225,7 @@ public class Generate { info.languages.stream().map(Format::quote).collect(joining(", ")), layers.stream() .map( - l -> "new com.onthegomap.planetiler.openmaptiles.layers.%s(translations, config, stats)" + l -> "new org.openmaptiles.layers.%s(translations, config, stats)" .formatted(lowerUnderscoreToUpperCamel(l.layer.id))) .collect(joining("," + LINE_SEPARATOR)) .indent(6).trim() diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/Layer.java b/src/main/java/org/openmaptiles/Layer.java similarity index 84% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/Layer.java rename to src/main/java/org/openmaptiles/Layer.java index e34f4a9..5c42a9f 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/Layer.java +++ b/src/main/java/org/openmaptiles/Layer.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import com.onthegomap.planetiler.ForwardingProfile; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesMain.java b/src/main/java/org/openmaptiles/OpenMapTilesMain.java similarity index 95% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesMain.java rename to src/main/java/org/openmaptiles/OpenMapTilesMain.java index 2663b22..0e0b729 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesMain.java +++ b/src/main/java/org/openmaptiles/OpenMapTilesMain.java @@ -1,9 +1,9 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import com.onthegomap.planetiler.Planetiler; import com.onthegomap.planetiler.config.Arguments; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import java.nio.file.Path; +import org.openmaptiles.generated.OpenMapTilesSchema; /** * Main entrypoint for generating a map using the OpenMapTiles schema. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfile.java b/src/main/java/org/openmaptiles/OpenMapTilesProfile.java similarity index 97% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfile.java rename to src/main/java/org/openmaptiles/OpenMapTilesProfile.java index 98a28c8..90d2d7b 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfile.java +++ b/src/main/java/org/openmaptiles/OpenMapTilesProfile.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import static com.onthegomap.planetiler.geo.GeoUtils.EMPTY_LINE; import static com.onthegomap.planetiler.geo.GeoUtils.EMPTY_POINT; @@ -10,10 +10,6 @@ import com.onthegomap.planetiler.Planetiler; import com.onthegomap.planetiler.Profile; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.layers.Transportation; -import com.onthegomap.planetiler.openmaptiles.layers.TransportationName; import com.onthegomap.planetiler.reader.SimpleFeature; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmElement; @@ -21,6 +17,10 @@ import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; import java.util.ArrayList; import java.util.List; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.layers.Transportation; +import org.openmaptiles.layers.TransportationName; /** * Delegates the logic for generating a map to individual implementations in the {@code layers} package. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/generated/OpenMapTilesSchema.java b/src/main/java/org/openmaptiles/generated/OpenMapTilesSchema.java similarity index 98% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/generated/OpenMapTilesSchema.java rename to src/main/java/org/openmaptiles/generated/OpenMapTilesSchema.java index f440f61..3d9e8ba 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/generated/OpenMapTilesSchema.java +++ b/src/main/java/org/openmaptiles/generated/OpenMapTilesSchema.java @@ -35,17 +35,20 @@ See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for deta */ // AUTOGENERATED BY Generate.java -- DO NOT MODIFY -package com.onthegomap.planetiler.openmaptiles.generated; +package org.openmaptiles.generated; -import static com.onthegomap.planetiler.expression.Expression.*; +import static com.onthegomap.planetiler.expression.Expression.FALSE; +import static com.onthegomap.planetiler.expression.Expression.and; +import static com.onthegomap.planetiler.expression.Expression.matchAny; +import static com.onthegomap.planetiler.expression.Expression.or; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; -import com.onthegomap.planetiler.openmaptiles.Layer; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; import java.util.List; import java.util.Set; +import org.openmaptiles.Layer; /** * All vector tile layer definitions, attributes, and allowed values generated from the @@ -68,22 +71,22 @@ public class OpenMapTilesSchema { /** Returns a list of expected layer implementation instances from the {@code layers} package. */ public static List createInstances(Translations translations, PlanetilerConfig config, Stats stats) { return List.of( - new com.onthegomap.planetiler.openmaptiles.layers.Water(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Waterway(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Landcover(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Landuse(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.MountainPeak(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Park(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Boundary(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Aeroway(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Transportation(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Building(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.WaterName(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.TransportationName(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Place(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Housenumber(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.Poi(translations, config, stats), - new com.onthegomap.planetiler.openmaptiles.layers.AerodromeLabel(translations, config, stats) + new org.openmaptiles.layers.Water(translations, config, stats), + new org.openmaptiles.layers.Waterway(translations, config, stats), + new org.openmaptiles.layers.Landcover(translations, config, stats), + new org.openmaptiles.layers.Landuse(translations, config, stats), + new org.openmaptiles.layers.MountainPeak(translations, config, stats), + new org.openmaptiles.layers.Park(translations, config, stats), + new org.openmaptiles.layers.Boundary(translations, config, stats), + new org.openmaptiles.layers.Aeroway(translations, config, stats), + new org.openmaptiles.layers.Transportation(translations, config, stats), + new org.openmaptiles.layers.Building(translations, config, stats), + new org.openmaptiles.layers.WaterName(translations, config, stats), + new org.openmaptiles.layers.TransportationName(translations, config, stats), + new org.openmaptiles.layers.Place(translations, config, stats), + new org.openmaptiles.layers.Housenumber(translations, config, stats), + new org.openmaptiles.layers.Poi(translations, config, stats), + new org.openmaptiles.layers.AerodromeLabel(translations, config, stats) ); } diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/generated/Tables.java b/src/main/java/org/openmaptiles/generated/Tables.java similarity index 99% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/generated/Tables.java rename to src/main/java/org/openmaptiles/generated/Tables.java index 6bbb1dc..eb19c3f 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/generated/Tables.java +++ b/src/main/java/org/openmaptiles/generated/Tables.java @@ -35,7 +35,7 @@ See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for deta */ // AUTOGENERATED BY Generate.java -- DO NOT MODIFY -package com.onthegomap.planetiler.openmaptiles.generated; +package org.openmaptiles.generated; import static com.onthegomap.planetiler.expression.Expression.*; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java b/src/main/java/org/openmaptiles/layers/AerodromeLabel.java similarity index 87% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java rename to src/main/java/org/openmaptiles/layers/AerodromeLabel.java index 6019a1f..7f5b39c 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabel.java +++ b/src/main/java/org/openmaptiles/layers/AerodromeLabel.java @@ -33,20 +33,20 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullOrEmpty; +import static org.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.nullOrEmpty; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; -import com.onthegomap.planetiler.openmaptiles.util.Utils; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; +import org.openmaptiles.util.Utils; /** * Defines the logic for generating map elements in the {@code aerodrome_label} layer from source features. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Aeroway.java b/src/main/java/org/openmaptiles/layers/Aeroway.java similarity index 94% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Aeroway.java rename to src/main/java/org/openmaptiles/layers/Aeroway.java index 83241fd..1f45f44 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Aeroway.java +++ b/src/main/java/org/openmaptiles/layers/Aeroway.java @@ -33,14 +33,14 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.config.PlanetilerConfig; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; /** * Defines the logic for generating map elements in the {@code aeroway} layer from source features. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Boundary.java b/src/main/java/org/openmaptiles/layers/Boundary.java similarity index 98% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Boundary.java rename to src/main/java/org/openmaptiles/layers/Boundary.java index 06d15d3..f566687 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Boundary.java +++ b/src/main/java/org/openmaptiles/layers/Boundary.java @@ -33,7 +33,7 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.util.MemoryEstimator.CLASS_HEADER_BYTES; import static com.onthegomap.planetiler.util.MemoryEstimator.POINTER_BYTES; @@ -49,8 +49,6 @@ import com.onthegomap.planetiler.collection.Hppc; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; import com.onthegomap.planetiler.reader.SimpleFeature; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmElement; @@ -79,6 +77,8 @@ import org.locationtech.jts.geom.prep.PreparedGeometry; import org.locationtech.jts.geom.prep.PreparedGeometryFactory; import org.locationtech.jts.operation.linemerge.LineMerger; import org.locationtech.jts.operation.polygonize.Polygonizer; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Building.java b/src/main/java/org/openmaptiles/layers/Building.java similarity index 95% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Building.java rename to src/main/java/org/openmaptiles/layers/Building.java index f22ec66..02268c6 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Building.java +++ b/src/main/java/org/openmaptiles/layers/Building.java @@ -33,21 +33,18 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; import static com.onthegomap.planetiler.util.MemoryEstimator.CLASS_HEADER_BYTES; import static com.onthegomap.planetiler.util.Parse.parseDoubleOrNull; import static java.util.Map.entry; +import static org.openmaptiles.util.Utils.coalesce; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.FeatureMerge; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; import com.onthegomap.planetiler.reader.osm.OsmElement; import com.onthegomap.planetiler.reader.osm.OsmRelationInfo; import com.onthegomap.planetiler.stats.Stats; @@ -56,6 +53,9 @@ import com.onthegomap.planetiler.util.Translations; import java.util.List; import java.util.Locale; import java.util.Map; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; /** * Defines the logic for generating map elements for buildings in the {@code building} layer from source features. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Housenumber.java b/src/main/java/org/openmaptiles/layers/Housenumber.java similarity index 93% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Housenumber.java rename to src/main/java/org/openmaptiles/layers/Housenumber.java index 01002a7..4cf31cf 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Housenumber.java +++ b/src/main/java/org/openmaptiles/layers/Housenumber.java @@ -33,14 +33,14 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.config.PlanetilerConfig; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; /** * Defines the logic for generating map elements in the {@code housenumber} layer from source features. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Landcover.java b/src/main/java/org/openmaptiles/layers/Landcover.java similarity index 96% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Landcover.java rename to src/main/java/org/openmaptiles/layers/Landcover.java index d2d621c..d581822 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Landcover.java +++ b/src/main/java/org/openmaptiles/layers/Landcover.java @@ -33,7 +33,7 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.FeatureMerge; @@ -41,9 +41,6 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; @@ -52,6 +49,9 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; /** * Defines the logic for generating map elements for natural land cover polygons like ice, sand, and forest in the diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Landuse.java b/src/main/java/org/openmaptiles/layers/Landuse.java similarity index 91% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Landuse.java rename to src/main/java/org/openmaptiles/layers/Landuse.java index d5082af..101281a 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Landuse.java +++ b/src/main/java/org/openmaptiles/layers/Landuse.java @@ -33,16 +33,13 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.coalesce; +import static org.openmaptiles.util.Utils.nullIfEmpty; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.config.PlanetilerConfig; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -50,6 +47,9 @@ import com.onthegomap.planetiler.util.Translations; import com.onthegomap.planetiler.util.ZoomFunction; import java.util.Map; import java.util.Set; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; /** * Defines the logic for generating map elements for man-made land use polygons like cemeteries, zoos, and hospitals in diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java b/src/main/java/org/openmaptiles/layers/MountainPeak.java similarity index 94% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java rename to src/main/java/org/openmaptiles/layers/MountainPeak.java index 0104d3b..afb32bb 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeak.java +++ b/src/main/java/org/openmaptiles/layers/MountainPeak.java @@ -33,10 +33,10 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.elevationTags; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.elevationTags; +import static org.openmaptiles.util.Utils.nullIfEmpty; import com.carrotsearch.hppc.LongIntMap; import com.onthegomap.planetiler.FeatureCollector; @@ -44,10 +44,6 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.collection.Hppc; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -58,6 +54,10 @@ import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.prep.PreparedGeometry; import org.locationtech.jts.geom.prep.PreparedGeometryFactory; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java b/src/main/java/org/openmaptiles/layers/Park.java similarity index 93% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java rename to src/main/java/org/openmaptiles/layers/Park.java index 669d02c..6bcc653 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Park.java +++ b/src/main/java/org/openmaptiles/layers/Park.java @@ -33,11 +33,11 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.collection.FeatureGroup.SORT_KEY_BITS; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.coalesce; +import static org.openmaptiles.util.Utils.nullIfEmpty; import com.carrotsearch.hppc.LongIntMap; import com.onthegomap.planetiler.FeatureCollector; @@ -48,15 +48,15 @@ import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.geo.GeometryType; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.SortKey; import com.onthegomap.planetiler.util.Translations; import java.util.List; import java.util.Locale; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; /** * Defines the logic for generating map elements for designated parks polygons and their label points in the {@code diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java b/src/main/java/org/openmaptiles/layers/Place.java similarity index 96% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java rename to src/main/java/org/openmaptiles/layers/Place.java index fe9a00b..072f144 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Place.java +++ b/src/main/java/org/openmaptiles/layers/Place.java @@ -33,12 +33,12 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.collection.FeatureGroup.SORT_KEY_BITS; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullOrEmpty; +import static org.openmaptiles.util.Utils.coalesce; +import static org.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.nullOrEmpty; import com.carrotsearch.hppc.LongIntMap; import com.onthegomap.planetiler.FeatureCollector; @@ -49,10 +49,6 @@ import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.geo.PointIndex; import com.onthegomap.planetiler.geo.PolygonIndex; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -71,6 +67,10 @@ import java.util.stream.DoubleStream; import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; import org.locationtech.jts.geom.Point; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; /** * Defines the logic for generating label points for populated places like continents, countries, cities, and towns in diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java b/src/main/java/org/openmaptiles/layers/Poi.java similarity index 93% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java rename to src/main/java/org/openmaptiles/layers/Poi.java index eb6cf74..b73febe 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Poi.java +++ b/src/main/java/org/openmaptiles/layers/Poi.java @@ -33,13 +33,13 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfLong; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullOrEmpty; import static java.util.Map.entry; +import static org.openmaptiles.util.Utils.coalesce; +import static org.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.nullIfLong; +import static org.openmaptiles.util.Utils.nullOrEmpty; import com.carrotsearch.hppc.LongIntMap; import com.onthegomap.planetiler.FeatureCollector; @@ -48,14 +48,14 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.collection.Hppc; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; import com.onthegomap.planetiler.util.Translations; import java.util.List; import java.util.Map; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; /** * Defines the logic for generating map elements for things like shops, parks, and schools in the {@code poi} layer from diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Transportation.java b/src/main/java/org/openmaptiles/layers/Transportation.java similarity index 98% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Transportation.java rename to src/main/java/org/openmaptiles/layers/Transportation.java index f275d7b..10b0913 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Transportation.java +++ b/src/main/java/org/openmaptiles/layers/Transportation.java @@ -33,13 +33,13 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.*; import static com.onthegomap.planetiler.util.MemoryEstimator.CLASS_HEADER_BYTES; import static com.onthegomap.planetiler.util.MemoryEstimator.POINTER_BYTES; import static com.onthegomap.planetiler.util.MemoryEstimator.estimateSize; import static java.util.Map.entry; +import static org.openmaptiles.util.Utils.*; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.FeatureMerge; @@ -48,9 +48,6 @@ import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmElement; import com.onthegomap.planetiler.reader.osm.OsmReader; @@ -73,6 +70,9 @@ import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.LineString; import org.locationtech.jts.geom.prep.PreparedGeometry; import org.locationtech.jts.geom.prep.PreparedGeometryFactory; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java b/src/main/java/org/openmaptiles/layers/TransportationName.java similarity index 95% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java rename to src/main/java/org/openmaptiles/layers/TransportationName.java index f83f4dd..8d0cb8b 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationName.java +++ b/src/main/java/org/openmaptiles/layers/TransportationName.java @@ -33,12 +33,12 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.layers.Transportation.highwayClass; -import static com.onthegomap.planetiler.openmaptiles.layers.Transportation.highwaySubclass; -import static com.onthegomap.planetiler.openmaptiles.layers.Transportation.isFootwayOrSteps; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.*; +import static org.openmaptiles.layers.Transportation.highwayClass; +import static org.openmaptiles.layers.Transportation.highwaySubclass; +import static org.openmaptiles.layers.Transportation.isFootwayOrSteps; +import static org.openmaptiles.util.Utils.*; import com.carrotsearch.hppc.LongArrayList; import com.carrotsearch.hppc.LongByteMap; @@ -50,10 +50,6 @@ import com.onthegomap.planetiler.ForwardingProfile; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.collection.Hppc; import com.onthegomap.planetiler.config.PlanetilerConfig; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.osm.OsmElement; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -64,6 +60,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Function; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; /** * Defines the logic for generating map elements for road, shipway, rail, and path names in the {@code diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Water.java b/src/main/java/org/openmaptiles/layers/Water.java similarity index 94% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Water.java rename to src/main/java/org/openmaptiles/layers/Water.java index b98ce8f..0b040a2 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Water.java +++ b/src/main/java/org/openmaptiles/layers/Water.java @@ -33,7 +33,7 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.FeatureMerge; @@ -42,14 +42,14 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.Utils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Translations; import java.util.List; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.Utils; /** * Defines the logic for generating map elements for oceans and lakes in the {@code water} layer from source features. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java b/src/main/java/org/openmaptiles/layers/WaterName.java similarity index 95% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java rename to src/main/java/org/openmaptiles/layers/WaterName.java index e1c53f1..2bc19fc 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/WaterName.java +++ b/src/main/java/org/openmaptiles/layers/WaterName.java @@ -33,9 +33,9 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.nullIfEmpty; import com.carrotsearch.hppc.LongObjectMap; import com.onthegomap.planetiler.FeatureCollector; @@ -43,10 +43,6 @@ import com.onthegomap.planetiler.collection.Hppc; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; import com.onthegomap.planetiler.util.Parse; @@ -54,6 +50,10 @@ import com.onthegomap.planetiler.util.Translations; import java.util.Map; import java.util.concurrent.ConcurrentSkipListMap; import org.locationtech.jts.geom.Geometry; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java b/src/main/java/org/openmaptiles/layers/Waterway.java similarity index 95% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java rename to src/main/java/org/openmaptiles/layers/Waterway.java index 3d5baa1..64d749a 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/layers/Waterway.java +++ b/src/main/java/org/openmaptiles/layers/Waterway.java @@ -33,9 +33,9 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.nullIfEmpty; +import static org.openmaptiles.util.Utils.nullIfEmpty; import com.carrotsearch.hppc.LongObjectHashMap; import com.google.common.util.concurrent.AtomicDouble; @@ -45,11 +45,6 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.collection.Hppc; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; -import com.onthegomap.planetiler.openmaptiles.generated.OpenMapTilesSchema; -import com.onthegomap.planetiler.openmaptiles.generated.Tables; -import com.onthegomap.planetiler.openmaptiles.util.OmtLanguageUtils; -import com.onthegomap.planetiler.openmaptiles.util.Utils; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmElement; import com.onthegomap.planetiler.reader.osm.OsmReader; @@ -59,6 +54,11 @@ import com.onthegomap.planetiler.util.Translations; import com.onthegomap.planetiler.util.ZoomFunction; import java.util.List; import java.util.Map; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.generated.OpenMapTilesSchema; +import org.openmaptiles.generated.Tables; +import org.openmaptiles.util.OmtLanguageUtils; +import org.openmaptiles.util.Utils; /** * Defines the logic for generating river map elements in the {@code waterway} layer from source features. diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtils.java b/src/main/java/org/openmaptiles/util/OmtLanguageUtils.java similarity index 97% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtils.java rename to src/main/java/org/openmaptiles/util/OmtLanguageUtils.java index 5b3d452..1cc36c5 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtils.java +++ b/src/main/java/org/openmaptiles/util/OmtLanguageUtils.java @@ -33,10 +33,10 @@ Design license: CC-BY 4.0 See https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md for details on usage */ -package com.onthegomap.planetiler.openmaptiles.util; +package org.openmaptiles.util; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; import static com.onthegomap.planetiler.util.LanguageUtils.*; +import static org.openmaptiles.util.Utils.coalesce; import com.onthegomap.planetiler.util.LanguageUtils; import com.onthegomap.planetiler.util.Translations; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/Utils.java b/src/main/java/org/openmaptiles/util/Utils.java similarity index 98% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/util/Utils.java rename to src/main/java/org/openmaptiles/util/Utils.java index fe8190c..de9f4bf 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/Utils.java +++ b/src/main/java/org/openmaptiles/util/Utils.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.util; +package org.openmaptiles.util; import com.onthegomap.planetiler.util.Parse; import java.util.Map; diff --git a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/VerifyMonaco.java b/src/main/java/org/openmaptiles/util/VerifyMonaco.java similarity index 96% rename from src/main/java/com/onthegomap/planetiler/openmaptiles/util/VerifyMonaco.java rename to src/main/java/org/openmaptiles/util/VerifyMonaco.java index efd57d4..fffc910 100644 --- a/src/main/java/com/onthegomap/planetiler/openmaptiles/util/VerifyMonaco.java +++ b/src/main/java/org/openmaptiles/util/VerifyMonaco.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.util; +package org.openmaptiles.util; import com.onthegomap.planetiler.mbtiles.Mbtiles; import com.onthegomap.planetiler.mbtiles.Verify; diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/GenerateTest.java b/src/test/java/org/openmaptiles/GenerateTest.java similarity index 91% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/GenerateTest.java rename to src/test/java/org/openmaptiles/GenerateTest.java index 96ca0f7..b659a91 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/GenerateTest.java +++ b/src/test/java/org/openmaptiles/GenerateTest.java @@ -1,7 +1,6 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import static com.onthegomap.planetiler.expression.Expression.*; -import static com.onthegomap.planetiler.openmaptiles.Generate.parseYaml; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.DynamicTest.dynamicTest; @@ -20,7 +19,7 @@ class GenerateTest { @Test void testParseSimple() { - MultiExpression parsed = Generate.generateFieldMapping(parseYaml(""" + MultiExpression parsed = Generate.generateFieldMapping(Generate.parseYaml(""" output: key: value key2: @@ -37,7 +36,7 @@ class GenerateTest { @Test void testParseAnd() { - MultiExpression parsed = Generate.generateFieldMapping(parseYaml(""" + MultiExpression parsed = Generate.generateFieldMapping(Generate.parseYaml(""" output: __AND__: key1: val1 @@ -53,7 +52,7 @@ class GenerateTest { @Test void testParseAndWithOthers() { - MultiExpression parsed = Generate.generateFieldMapping(parseYaml(""" + MultiExpression parsed = Generate.generateFieldMapping(Generate.parseYaml(""" output: - key0: val0 - __AND__: @@ -73,7 +72,7 @@ class GenerateTest { @Test void testParseAndContainingOthers() { - MultiExpression parsed = Generate.generateFieldMapping(parseYaml(""" + MultiExpression parsed = Generate.generateFieldMapping(Generate.parseYaml(""" output: __AND__: - key1: val1 @@ -94,7 +93,7 @@ class GenerateTest { @Test void testParseContainsKey() { - MultiExpression parsed = Generate.generateFieldMapping(parseYaml(""" + MultiExpression parsed = Generate.generateFieldMapping(Generate.parseYaml(""" output: key1: val1 key2: @@ -175,9 +174,9 @@ class GenerateTest { ) ).map(test -> dynamicTest(test.name, () -> { Expression parsed = Generate - .parseImposm3MappingExpression("point", parseYaml(test.mapping), new Generate.Imposm3Filters( - parseYaml(test.reject), - parseYaml(test.require) + .parseImposm3MappingExpression("point", Generate.parseYaml(test.mapping), new Generate.Imposm3Filters( + Generate.parseYaml(test.reject), + Generate.parseYaml(test.require) )); assertEquals(test.expected, parsed.replace(matchType("point"), TRUE).simplify()); })); @@ -186,7 +185,7 @@ class GenerateTest { @Test void testTypeMappingTopLevelType() { Expression parsed = Generate - .parseImposm3MappingExpression("point", parseYaml(""" + .parseImposm3MappingExpression("point", Generate.parseYaml(""" key: val """), new Generate.Imposm3Filters(null, null)); assertEquals(and( @@ -198,10 +197,10 @@ class GenerateTest { @Test void testTypeMappings() { Map props = new LinkedHashMap<>(); - props.put("points", parseYaml(""" + props.put("points", Generate.parseYaml(""" key: val """)); - props.put("polygons", parseYaml(""" + props.put("polygons", Generate.parseYaml(""" key2: val2 """)); Expression parsed = Generate diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfileTest.java b/src/test/java/org/openmaptiles/OpenMapTilesProfileTest.java similarity index 96% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfileTest.java rename to src/test/java/org/openmaptiles/OpenMapTilesProfileTest.java index 864d8ee..0ffafa8 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesProfileTest.java +++ b/src/test/java/org/openmaptiles/OpenMapTilesProfileTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesTest.java b/src/test/java/org/openmaptiles/OpenMapTilesTest.java similarity index 87% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesTest.java rename to src/test/java/org/openmaptiles/OpenMapTilesTest.java index bc30a10..53d2b10 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/OpenMapTilesTest.java +++ b/src/test/java/org/openmaptiles/OpenMapTilesTest.java @@ -1,8 +1,7 @@ -package com.onthegomap.planetiler.openmaptiles; +package org.openmaptiles; import static com.onthegomap.planetiler.TestUtils.assertContains; import static com.onthegomap.planetiler.TestUtils.assertFeatureNear; -import static com.onthegomap.planetiler.openmaptiles.util.VerifyMonaco.MONACO_BOUNDS; import static com.onthegomap.planetiler.util.Gzip.gunzip; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.DynamicTest.dynamicTest; @@ -11,7 +10,7 @@ import com.onthegomap.planetiler.TestUtils; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.config.Arguments; import com.onthegomap.planetiler.mbtiles.Mbtiles; -import com.onthegomap.planetiler.openmaptiles.util.VerifyMonaco; +import com.onthegomap.planetiler.util.FileUtils; import java.io.IOException; import java.nio.file.Path; import java.util.Map; @@ -23,11 +22,13 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestFactory; +import org.junit.jupiter.api.Timeout; import org.junit.jupiter.api.io.TempDir; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.LineString; import org.locationtech.jts.geom.Point; import org.locationtech.jts.geom.Polygon; +import org.openmaptiles.util.VerifyMonaco; /** * End-to-end tests for OpenMapTiles generation. @@ -42,22 +43,29 @@ class OpenMapTilesTest { private static Mbtiles mbtiles; @BeforeAll + @Timeout(30) public static void runPlanetiler() throws Exception { Path dbPath = tmpDir.resolve("output.mbtiles"); + var osmPath = TestUtils.extractPathToResource(tmpDir, "monaco-latest.osm.pbf"); + var naturalEarthPath = TestUtils.extractPathToResource(tmpDir, "natural_earth_vector.sqlite.zip"); + var waterPath = tmpDir.resolve("water"); + // windows seems to have trouble closing zip file after reading from it, so extract first instead + FileUtils.unzipResource("/water-polygons-split-3857.zip", waterPath); OpenMapTilesMain.run(Arguments.of( // Override input source locations - "osm_path", TestUtils.pathToResource("monaco-latest.osm.pbf"), - "natural_earth_path", TestUtils.pathToResource("natural_earth_vector.sqlite.zip"), - "water_polygons_path", TestUtils.pathToResource("water-polygons-split-3857.zip"), + "osm_path", osmPath, + "natural_earth_path", naturalEarthPath, + "water_polygons_path", waterPath, // no centerlines in monaco - so fake it out with an empty source - "lake_centerlines_path", TestUtils.pathToResource("water-polygons-split-3857.zip"), + "lake_centerlines_path", waterPath, // Override temp dir location - "tmp", tmpDir.toString(), + "tmpdir", tmpDir.resolve("tmp"), // Override output location - "mbtiles", dbPath.toString() + "mbtiles", dbPath )); + mbtiles = Mbtiles.newReadOnlyDatabase(dbPath); } @@ -220,6 +228,6 @@ class OpenMapTilesTest { private static void assertNumFeatures(String layer, Map attrs, int zoom, int expected, Class clazz) { - TestUtils.assertNumFeatures(mbtiles, layer, zoom, attrs, MONACO_BOUNDS, expected, clazz); + TestUtils.assertNumFeatures(mbtiles, layer, zoom, attrs, VerifyMonaco.MONACO_BOUNDS, expected, clazz); } } diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AbstractLayerTest.java b/src/test/java/org/openmaptiles/layers/AbstractLayerTest.java similarity index 93% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AbstractLayerTest.java rename to src/test/java/org/openmaptiles/layers/AbstractLayerTest.java index b63c57f..1f688cb 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AbstractLayerTest.java +++ b/src/test/java/org/openmaptiles/layers/AbstractLayerTest.java @@ -1,11 +1,9 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.assertSubmap; import static com.onthegomap.planetiler.TestUtils.newLineString; import static com.onthegomap.planetiler.TestUtils.newPoint; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.util.Utils.coalesce; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; @@ -15,7 +13,6 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.reader.SimpleFeature; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmReader; @@ -29,6 +26,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.StreamSupport; +import org.openmaptiles.OpenMapTilesProfile; +import org.openmaptiles.util.Utils; public abstract class AbstractLayerTest { @@ -45,7 +44,7 @@ public abstract class AbstractLayerTest { static void assertFeatures(int zoom, List> expected, Iterable actual) { // ensure both are sorted by layer var expectedList = - expected.stream().sorted(Comparator.comparing(d -> coalesce(d.get("_layer"), "").toString())).toList(); + expected.stream().sorted(Comparator.comparing(d -> Utils.coalesce(d.get("_layer"), "").toString())).toList(); var actualList = StreamSupport.stream(actual.spliterator(), false) .sorted(Comparator.comparing(FeatureCollector.Feature::getLayer)) .toList(); @@ -122,7 +121,7 @@ public abstract class AbstractLayerTest { return SimpleFeature.create( newPoint(0, 0), new HashMap<>(props), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ); @@ -132,7 +131,7 @@ public abstract class AbstractLayerTest { return SimpleFeature.create( newLineString(0, 0, 1, 1), new HashMap<>(props), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ); @@ -142,7 +141,7 @@ public abstract class AbstractLayerTest { return SimpleFeature.createFakeOsmFeature( newLineString(0, 0, 1, 0, 1, 1, 0, 1, 0, 0), new HashMap<>(props), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0, null @@ -153,7 +152,7 @@ public abstract class AbstractLayerTest { return SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(area))), new HashMap<>(props), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ); @@ -169,7 +168,7 @@ public abstract class AbstractLayerTest { return SimpleFeature.createFakeOsmFeature( newLineString(0, 0, 1, 1), map, - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0, (relationInfos == null ? List.of() : relationInfos).stream() diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabelTest.java b/src/test/java/org/openmaptiles/layers/AerodromeLabelTest.java similarity index 98% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabelTest.java rename to src/test/java/org/openmaptiles/layers/AerodromeLabelTest.java index 82b8cfe..d1a7fd7 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AerodromeLabelTest.java +++ b/src/test/java/org/openmaptiles/layers/AerodromeLabelTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import java.util.List; import java.util.Map; diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AerowayTest.java b/src/test/java/org/openmaptiles/layers/AerowayTest.java similarity index 97% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AerowayTest.java rename to src/test/java/org/openmaptiles/layers/AerowayTest.java index ec55d8a..d277fa6 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/AerowayTest.java +++ b/src/test/java/org/openmaptiles/layers/AerowayTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import java.util.List; import java.util.Map; diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/BoundaryTest.java b/src/test/java/org/openmaptiles/layers/BoundaryTest.java similarity index 91% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/BoundaryTest.java rename to src/test/java/org/openmaptiles/layers/BoundaryTest.java index 3307063..310d3b6 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/BoundaryTest.java +++ b/src/test/java/org/openmaptiles/layers/BoundaryTest.java @@ -1,9 +1,7 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.newLineString; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -18,6 +16,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Stream; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class BoundaryTest extends AbstractLayerTest { @@ -28,21 +27,21 @@ class BoundaryTest extends AbstractLayerTest { process(SimpleFeature.create( newLineString(0, 0, 1, 1), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_admin_0_boundary_lines_land", 0 )), process(SimpleFeature.create( newLineString(0, 0, 1, 1), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_admin_0_boundary_lines_land", 1 )), process(SimpleFeature.create( newLineString(0, 0, 1, 1), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_0_boundary_lines_land", 2 )) @@ -62,7 +61,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "featurecla", "International boundary (verify)" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_admin_0_boundary_lines_land", 0 ))); @@ -79,7 +78,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "featurecla", "Disputed (please verify)" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_admin_0_boundary_lines_land", 0 ))); @@ -93,7 +92,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "featurecla", "International boundary (verify)" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_admin_0_boundary_lines_land", 0 ))); @@ -107,7 +106,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "featurecla", "International boundary (verify)" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_0_boundary_lines_land", 0 ))); @@ -117,7 +116,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "featurecla", "Lease Limit" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_0_boundary_lines_land", 0 ))); @@ -140,7 +139,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "min_zoom", 7d ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces_lines", 0 ))); @@ -159,7 +158,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "min_zoom", 7.6d ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces_lines", 0 ))); @@ -169,7 +168,7 @@ class BoundaryTest extends AbstractLayerTest { Map.of( "min_zoom", 7.9d ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces_lines", 0 ))); @@ -177,7 +176,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(0, List.of(), process(SimpleFeature.create( newLineString(0, 0, 1, 1), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces_lines", 0 ))); @@ -416,7 +415,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( newLineString(0, 0, 0, 10), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, Stream.concat( @@ -430,7 +429,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( newLineString(0, 0, 5, 10), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 4, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -440,7 +439,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( newLineString(0, 10, 5, 10), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 4, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -452,7 +451,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( newLineString(0, 0, -5, 10), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 4, profile.preprocessOsmRelation(country2).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -462,7 +461,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( newLineString(0, 10, -5, 10), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 4, profile.preprocessOsmRelation(country2).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -471,7 +470,7 @@ class BoundaryTest extends AbstractLayerTest { )); List features = new ArrayList<>(); - profile.finish(OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); + profile.finish(OpenMapTilesProfile.OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); assertEquals(3, features.size()); // ensure shared edge has country labels on right sides @@ -515,7 +514,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( newLineString(0, 0, 0, 10, 5, 5), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -523,7 +522,7 @@ class BoundaryTest extends AbstractLayerTest { ))); List features = new ArrayList<>(); - profile.finish(OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); + profile.finish(OpenMapTilesProfile.OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); assertFeatures(0, List.of(Map.of( "adm0_r", "", "adm0_l", "", @@ -546,7 +545,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( GeoUtils.polygonToLineString(rectangle(0, 10)), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -555,7 +554,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( GeoUtils.polygonToLineString(rectangle(1, 9)), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -563,7 +562,7 @@ class BoundaryTest extends AbstractLayerTest { ))); List features = new ArrayList<>(); - profile.finish(OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); + profile.finish(OpenMapTilesProfile.OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); assertFeatures(0, List.of(Map.of( "adm0_l", "C1", "adm0_r", "" @@ -584,7 +583,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( GeoUtils.worldToLatLonCoords(newLineString(0, 0, 0.1, 0, 0.1, 0.1, 0.02, 0.1, 0.02, -0.02)), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -592,7 +591,7 @@ class BoundaryTest extends AbstractLayerTest { ))); List features = new ArrayList<>(); - profile.finish(OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); + profile.finish(OpenMapTilesProfile.OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); assertFeatures(0, List.of(Map.of( "adm0_l", "", "adm0_r", "" @@ -610,7 +609,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( GeoUtils.worldToLatLonCoords(newLineString(0, 0, 0.1, 0, 0.1, 0.1, 0.2, 0.1, 0.2, -0.2)), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -620,7 +619,7 @@ class BoundaryTest extends AbstractLayerTest { assertFeatures(14, List.of(), process(SimpleFeature.createFakeOsmFeature( GeoUtils.worldToLatLonCoords(GeoUtils.polygonToLineString(rectangle(0.2, 0.3))), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 3, profile.preprocessOsmRelation(country1).stream().map(r -> new OsmReader.RelationMember<>("", r)) @@ -628,7 +627,7 @@ class BoundaryTest extends AbstractLayerTest { ))); List features = new ArrayList<>(); - profile.finish(OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); + profile.finish(OpenMapTilesProfile.OSM_SOURCE, new FeatureCollector.Factory(params, stats), features::add); assertFeatures(0, List.of(Map.of( "adm0_l", "", "adm0_r", "" diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/BuildingTest.java b/src/test/java/org/openmaptiles/layers/BuildingTest.java similarity index 94% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/BuildingTest.java rename to src/test/java/org/openmaptiles/layers/BuildingTest.java index 8a4b9ee..077501f 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/BuildingTest.java +++ b/src/test/java/org/openmaptiles/layers/BuildingTest.java @@ -1,8 +1,6 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; -import static org.junit.jupiter.api.Assertions.assertEquals; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.geo.GeoUtils; @@ -12,7 +10,9 @@ import com.onthegomap.planetiler.reader.osm.OsmElement; import com.onthegomap.planetiler.reader.osm.OsmReader; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class BuildingTest extends AbstractLayerTest { @@ -118,7 +118,7 @@ class BuildingTest extends AbstractLayerTest { Map.of( "building", "yes" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0, relationInfos @@ -142,11 +142,11 @@ class BuildingTest extends AbstractLayerTest { 0 ); - assertEquals( + Assertions.assertEquals( 2, profile.postProcessLayerFeatures(Building.LAYER_NAME, 14, List.of(poly1, poly2)).size() ); - assertEquals( + Assertions.assertEquals( 1, profile.postProcessLayerFeatures(Building.LAYER_NAME, 13, List.of(poly1, poly2)).size() ); diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/HousenumberTest.java b/src/test/java/org/openmaptiles/layers/HousenumberTest.java similarity index 92% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/HousenumberTest.java rename to src/test/java/org/openmaptiles/layers/HousenumberTest.java index 045fce4..6ead5e9 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/HousenumberTest.java +++ b/src/test/java/org/openmaptiles/layers/HousenumberTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import java.util.List; import java.util.Map; diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/LandcoverTest.java b/src/test/java/org/openmaptiles/layers/LandcoverTest.java similarity index 94% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/LandcoverTest.java rename to src/test/java/org/openmaptiles/layers/LandcoverTest.java index 5f2fab2..6dc07f0 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/LandcoverTest.java +++ b/src/test/java/org/openmaptiles/layers/LandcoverTest.java @@ -1,8 +1,6 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static org.junit.jupiter.api.Assertions.assertEquals; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.geo.GeoUtils; @@ -11,7 +9,9 @@ import com.onthegomap.planetiler.reader.SimpleFeature; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class LandcoverTest extends AbstractLayerTest { @@ -20,21 +20,21 @@ class LandcoverTest extends AbstractLayerTest { var glacier1 = process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_glaciated_areas", 0 )); var glacier2 = process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_glaciated_areas", 0 )); var glacier3 = process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_glaciated_areas", 0 )); @@ -68,14 +68,14 @@ class LandcoverTest extends AbstractLayerTest { var ice1 = process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_antarctic_ice_shelves_polys", 0 )); var ice2 = process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_antarctic_ice_shelves_polys", 0 )); @@ -201,7 +201,7 @@ class LandcoverTest extends AbstractLayerTest { private void assertMerges(List> expected, List in, int zoom) throws GeometryException { - assertEquals(expected, + Assertions.assertEquals(expected, profile.postProcessLayerFeatures("landcover", zoom, in).stream().map( VectorTile.Feature::attrs) .toList()); diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/LanduseTest.java b/src/test/java/org/openmaptiles/layers/LanduseTest.java similarity index 91% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/LanduseTest.java rename to src/test/java/org/openmaptiles/layers/LanduseTest.java index ff21bca..57b9999 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/LanduseTest.java +++ b/src/test/java/org/openmaptiles/layers/LanduseTest.java @@ -1,13 +1,13 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.reader.SimpleFeature; import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class LanduseTest extends AbstractLayerTest { @@ -20,14 +20,14 @@ class LanduseTest extends AbstractLayerTest { )), process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of("scalerank", 1.9), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_urban_areas", 0 ))); assertFeatures(0, List.of(), process(SimpleFeature.create( GeoUtils.worldToLatLonCoords(rectangle(0, Math.sqrt(1))), Map.of("scalerank", 2.1), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_urban_areas", 0 ))); diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeakTest.java b/src/test/java/org/openmaptiles/layers/MountainPeakTest.java similarity index 92% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeakTest.java rename to src/test/java/org/openmaptiles/layers/MountainPeakTest.java index 991bbfb..6c56eb4 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/MountainPeakTest.java +++ b/src/test/java/org/openmaptiles/layers/MountainPeakTest.java @@ -1,10 +1,7 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.newPoint; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; -import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.collect.Lists; import com.onthegomap.planetiler.VectorTile; @@ -13,8 +10,10 @@ import com.onthegomap.planetiler.reader.SimpleFeature; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class MountainPeakTest extends AbstractLayerTest { @@ -156,7 +155,7 @@ class MountainPeakTest extends AbstractLayerTest { process(SimpleFeature.create( rectangle(0, 0.1), Map.of("iso_a2", "US"), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_0_countries", 0 )); @@ -173,7 +172,7 @@ class MountainPeakTest extends AbstractLayerTest { "natural", "volcano", "ele", "100" )), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -190,7 +189,7 @@ class MountainPeakTest extends AbstractLayerTest { "natural", "volcano", "ele", "100" )), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -226,9 +225,9 @@ class MountainPeakTest extends AbstractLayerTest { @Test void testMountainPeakPostProcessing() throws GeometryException { - assertEquals(List.of(), profile.postProcessLayerFeatures(MountainPeak.LAYER_NAME, 13, List.of())); + Assertions.assertEquals(List.of(), profile.postProcessLayerFeatures(MountainPeak.LAYER_NAME, 13, List.of())); - assertEquals(List.of(pointFeature( + Assertions.assertEquals(List.of(pointFeature( MountainPeak.LAYER_NAME, Map.of("rank", 1), 1 @@ -238,7 +237,7 @@ class MountainPeakTest extends AbstractLayerTest { 1 )))); - assertEquals(List.of( + Assertions.assertEquals(List.of( pointFeature( MountainPeak.LAYER_NAME, Map.of("rank", 1, "name", "a"), @@ -273,7 +272,7 @@ class MountainPeakTest extends AbstractLayerTest { @Test void testMountainPeakPostProcessingLimitsFeaturesOutsideZoom() throws GeometryException { - assertEquals(Lists.newArrayList( + Assertions.assertEquals(Lists.newArrayList( new VectorTile.Feature( MountainPeak.LAYER_NAME, 1, diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/ParkTest.java b/src/test/java/org/openmaptiles/layers/ParkTest.java similarity index 98% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/ParkTest.java rename to src/test/java/org/openmaptiles/layers/ParkTest.java index 33cd12a..a393b21 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/ParkTest.java +++ b/src/test/java/org/openmaptiles/layers/ParkTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import com.onthegomap.planetiler.geo.GeoUtils; import java.util.List; diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/PlaceTest.java b/src/test/java/org/openmaptiles/layers/PlaceTest.java similarity index 87% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/PlaceTest.java rename to src/test/java/org/openmaptiles/layers/PlaceTest.java index 972f98d..cbb59b0 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/PlaceTest.java +++ b/src/test/java/org/openmaptiles/layers/PlaceTest.java @@ -1,13 +1,9 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.newPoint; import static com.onthegomap.planetiler.TestUtils.rectangle; import static com.onthegomap.planetiler.collection.FeatureGroup.SORT_KEY_MAX; import static com.onthegomap.planetiler.collection.FeatureGroup.SORT_KEY_MIN; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.layers.Place.getSortKey; -import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; import com.onthegomap.planetiler.geo.GeoUtils; @@ -15,7 +11,9 @@ import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.reader.SimpleFeature; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class PlaceTest extends AbstractLayerTest { @@ -53,7 +51,7 @@ class PlaceTest extends AbstractLayerTest { "scalerank", 0, "labelrank", 2 ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_0_countries", 0 )); @@ -79,7 +77,7 @@ class PlaceTest extends AbstractLayerTest { "name:en", "United States of America", "country_code_iso3166_1_alpha_2", "US" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -105,7 +103,7 @@ class PlaceTest extends AbstractLayerTest { "name:en", "United States of America", "country_code_iso3166_1_alpha_2", "US" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -122,7 +120,7 @@ class PlaceTest extends AbstractLayerTest { "labelrank", 2, "datarank", 1 ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces", 0 )); @@ -135,7 +133,7 @@ class PlaceTest extends AbstractLayerTest { "labelrank", 8, "datarank", 1 ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces", 0 )); @@ -149,7 +147,7 @@ class PlaceTest extends AbstractLayerTest { "name", "Massachusetts", "name:en", "Massachusetts" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -163,7 +161,7 @@ class PlaceTest extends AbstractLayerTest { "name", "Massachusetts", "name:en", "Massachusetts" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -188,7 +186,7 @@ class PlaceTest extends AbstractLayerTest { "name", "Massachusetts", "name:en", "Massachusetts" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -205,7 +203,7 @@ class PlaceTest extends AbstractLayerTest { "labelrank", 3, "datarank", 3 ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_1_states_provinces", 0 )); @@ -226,7 +224,7 @@ class PlaceTest extends AbstractLayerTest { "wikidata", "Q95027", "name", "Lugo" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -293,24 +291,24 @@ class PlaceTest extends AbstractLayerTest { void testPlaceSortKeyRanking() { int[] sortKeys = new int[]{ // max - getSortKey(0, Place.PlaceType.CITY, 1_000_000_000, "name"), + Place.getSortKey(0, Place.PlaceType.CITY, 1_000_000_000, "name"), - getSortKey(0, Place.PlaceType.CITY, 1_000_000_000, "name longer"), - getSortKey(0, Place.PlaceType.CITY, 1_000_000_000, "x".repeat(32)), + Place.getSortKey(0, Place.PlaceType.CITY, 1_000_000_000, "name longer"), + Place.getSortKey(0, Place.PlaceType.CITY, 1_000_000_000, "x".repeat(32)), - getSortKey(0, Place.PlaceType.CITY, 10_000_000, "name"), - getSortKey(0, Place.PlaceType.CITY, 0, "name"), + Place.getSortKey(0, Place.PlaceType.CITY, 10_000_000, "name"), + Place.getSortKey(0, Place.PlaceType.CITY, 0, "name"), - getSortKey(0, Place.PlaceType.TOWN, 1_000_000_000, "name"), - getSortKey(0, Place.PlaceType.ISOLATED_DWELLING, 1_000_000_000, "name"), - getSortKey(0, null, 1_000_000_000, "name"), + Place.getSortKey(0, Place.PlaceType.TOWN, 1_000_000_000, "name"), + Place.getSortKey(0, Place.PlaceType.ISOLATED_DWELLING, 1_000_000_000, "name"), + Place.getSortKey(0, null, 1_000_000_000, "name"), - getSortKey(1, Place.PlaceType.CITY, 1_000_000_000, "name"), - getSortKey(10, Place.PlaceType.CITY, 1_000_000_000, "name"), - getSortKey(null, Place.PlaceType.CITY, 1_000_000_000, "name"), + Place.getSortKey(1, Place.PlaceType.CITY, 1_000_000_000, "name"), + Place.getSortKey(10, Place.PlaceType.CITY, 1_000_000_000, "name"), + Place.getSortKey(null, Place.PlaceType.CITY, 1_000_000_000, "name"), // min - getSortKey(null, null, 0, null), + Place.getSortKey(null, null, 0, null), }; for (int i = 0; i < sortKeys.length; i++) { if (sortKeys[i] < SORT_KEY_MIN) { @@ -332,7 +330,7 @@ class PlaceTest extends AbstractLayerTest { "scalerank", 0, "wikidataid", "Q61" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_populated_places", 0 )); @@ -366,7 +364,7 @@ class PlaceTest extends AbstractLayerTest { "scalerank", 2, "wikidataid", "Q100" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_populated_places", 0 )); @@ -401,7 +399,7 @@ class PlaceTest extends AbstractLayerTest { "population", "667137", "capital", "4" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -476,9 +474,9 @@ class PlaceTest extends AbstractLayerTest { @Test void testCitySetRankFromGridrank() throws GeometryException { var layerName = Place.LAYER_NAME; - assertEquals(List.of(), profile.postProcessLayerFeatures(layerName, 13, List.of())); + Assertions.assertEquals(List.of(), profile.postProcessLayerFeatures(layerName, 13, List.of())); - assertEquals(List.of(pointFeature( + Assertions.assertEquals(List.of(pointFeature( layerName, Map.of("rank", 11), 1 @@ -488,7 +486,7 @@ class PlaceTest extends AbstractLayerTest { 1 )))); - assertEquals(List.of( + Assertions.assertEquals(List.of( pointFeature( layerName, Map.of("rank", 11, "name", "a"), diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/PoiTest.java b/src/test/java/org/openmaptiles/layers/PoiTest.java similarity index 95% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/PoiTest.java rename to src/test/java/org/openmaptiles/layers/PoiTest.java index 7884a09..dd556af 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/PoiTest.java +++ b/src/test/java/org/openmaptiles/layers/PoiTest.java @@ -1,11 +1,10 @@ -package com.onthegomap.planetiler.openmaptiles.layers; - -import static org.junit.jupiter.api.Assertions.assertEquals; +package org.openmaptiles.layers; import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.reader.SourceFeature; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -137,9 +136,9 @@ class PoiTest extends AbstractLayerTest { @Test void testGridRank() throws GeometryException { var layerName = Poi.LAYER_NAME; - assertEquals(List.of(), profile.postProcessLayerFeatures(layerName, 13, List.of())); + Assertions.assertEquals(List.of(), profile.postProcessLayerFeatures(layerName, 13, List.of())); - assertEquals(List.of(pointFeature( + Assertions.assertEquals(List.of(pointFeature( layerName, Map.of("rank", 1), 1 @@ -149,7 +148,7 @@ class PoiTest extends AbstractLayerTest { 1 )))); - assertEquals(List.of( + Assertions.assertEquals(List.of( pointFeature( layerName, Map.of("rank", 1, "name", "a"), diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationTest.java b/src/test/java/org/openmaptiles/layers/TransportationTest.java similarity index 98% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationTest.java rename to src/test/java/org/openmaptiles/layers/TransportationTest.java index 79574ee..3c6ff27 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/TransportationTest.java +++ b/src/test/java/org/openmaptiles/layers/TransportationTest.java @@ -1,16 +1,13 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.newLineString; import static com.onthegomap.planetiler.TestUtils.newPoint; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.config.Arguments; import com.onthegomap.planetiler.config.PlanetilerConfig; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile; import com.onthegomap.planetiler.reader.SimpleFeature; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.reader.osm.OsmElement; @@ -21,6 +18,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import org.openmaptiles.OpenMapTilesProfile; class TransportationTest extends AbstractLayerTest { @@ -495,7 +493,7 @@ class TransportationTest extends AbstractLayerTest { FeatureCollector features = process(SimpleFeature.create( newPoint(1, 2), junctionNode.tags(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, junctionNode.id() )); @@ -893,7 +891,7 @@ class TransportationTest extends AbstractLayerTest { process(SimpleFeature.create( rectangle(0, 0.1), Map.of("iso_a2", "GB"), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_admin_0_countries", 0 )); @@ -919,7 +917,7 @@ class TransportationTest extends AbstractLayerTest { "oneway", "yes", "ref", "M1" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); @@ -945,7 +943,7 @@ class TransportationTest extends AbstractLayerTest { "oneway", "yes", "ref", "M1" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 ))); diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterNameTest.java b/src/test/java/org/openmaptiles/layers/WaterNameTest.java similarity index 91% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterNameTest.java rename to src/test/java/org/openmaptiles/layers/WaterNameTest.java index bcf3317..54e0b00 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterNameTest.java +++ b/src/test/java/org/openmaptiles/layers/WaterNameTest.java @@ -1,10 +1,7 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.newLineString; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.LAKE_CENTERLINE_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; import com.onthegomap.planetiler.TestUtils; import com.onthegomap.planetiler.geo.GeoUtils; @@ -14,6 +11,7 @@ import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; import org.locationtech.jts.geom.Geometry; +import org.openmaptiles.OpenMapTilesProfile; class WaterNameTest extends AbstractLayerTest { @@ -60,7 +58,7 @@ class WaterNameTest extends AbstractLayerTest { new HashMap<>(Map.of( "OSM_ID", -10 )), - LAKE_CENTERLINE_SOURCE, + OpenMapTilesProfile.LAKE_CENTERLINE_SOURCE, null, 0 ))); @@ -84,7 +82,7 @@ class WaterNameTest extends AbstractLayerTest { "natural", "water", "water", "pond" )), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 10 ))); @@ -97,7 +95,7 @@ class WaterNameTest extends AbstractLayerTest { new HashMap<>(Map.of( "OSM_ID", -10 )), - LAKE_CENTERLINE_SOURCE, + OpenMapTilesProfile.LAKE_CENTERLINE_SOURCE, null, 0 ))); @@ -106,7 +104,7 @@ class WaterNameTest extends AbstractLayerTest { new HashMap<>(Map.of( "OSM_ID", -10 )), - LAKE_CENTERLINE_SOURCE, + OpenMapTilesProfile.LAKE_CENTERLINE_SOURCE, null, 0 ))); @@ -134,7 +132,7 @@ class WaterNameTest extends AbstractLayerTest { "natural", "water", "water", "pond" )), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 10 ))); @@ -148,7 +146,7 @@ class WaterNameTest extends AbstractLayerTest { "scalerank", 1, "name", "Black sea" )), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_geography_marine_polys", 0 ))); diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterTest.java b/src/test/java/org/openmaptiles/layers/WaterTest.java similarity index 88% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterTest.java rename to src/test/java/org/openmaptiles/layers/WaterTest.java index d0a0b4e..d396c68 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterTest.java +++ b/src/test/java/org/openmaptiles/layers/WaterTest.java @@ -1,9 +1,6 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.rectangle; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.WATER_POLYGON_SOURCE; import com.onthegomap.planetiler.geo.GeoUtils; import com.onthegomap.planetiler.reader.SimpleFeature; @@ -11,6 +8,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.jupiter.api.Test; +import org.openmaptiles.OpenMapTilesProfile; class WaterTest extends AbstractLayerTest { @@ -26,7 +24,7 @@ class WaterTest extends AbstractLayerTest { )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_lakes", 0 ))); @@ -40,7 +38,7 @@ class WaterTest extends AbstractLayerTest { )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_ocean", 0 ))); @@ -53,7 +51,7 @@ class WaterTest extends AbstractLayerTest { )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_lakes", 0 ))); @@ -66,7 +64,7 @@ class WaterTest extends AbstractLayerTest { )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_ocean", 0 ))); @@ -84,7 +82,7 @@ class WaterTest extends AbstractLayerTest { )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - WATER_POLYGON_SOURCE, + OpenMapTilesProfile.WATER_POLYGON_SOURCE, null, 0 ))); @@ -106,7 +104,7 @@ class WaterTest extends AbstractLayerTest { "natural", "water", "water", "reservoir" )), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, id ))); @@ -215,28 +213,28 @@ class WaterTest extends AbstractLayerTest { process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_ocean", 0 )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_ocean", 0 )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_ocean", 0 )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - WATER_POLYGON_SOURCE, + OpenMapTilesProfile.WATER_POLYGON_SOURCE, null, 0 )) @@ -249,21 +247,21 @@ class WaterTest extends AbstractLayerTest { process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_lakes", 0 )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_lakes", 0 )), process(SimpleFeature.create( rectangle(0, 10), Map.of(), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_10m_lakes", 0 )), @@ -273,7 +271,7 @@ class WaterTest extends AbstractLayerTest { "natural", "water", "water", "reservoir" ), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0 )) diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterwayTest.java b/src/test/java/org/openmaptiles/layers/WaterwayTest.java similarity index 95% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterwayTest.java rename to src/test/java/org/openmaptiles/layers/WaterwayTest.java index d05cedb..6bac579 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/layers/WaterwayTest.java +++ b/src/test/java/org/openmaptiles/layers/WaterwayTest.java @@ -1,8 +1,6 @@ -package com.onthegomap.planetiler.openmaptiles.layers; +package org.openmaptiles.layers; import static com.onthegomap.planetiler.TestUtils.newLineString; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.NATURAL_EARTH_SOURCE; -import static com.onthegomap.planetiler.openmaptiles.OpenMapTilesProfile.OSM_SOURCE; import static org.junit.jupiter.api.Assertions.assertEquals; import com.onthegomap.planetiler.FeatureCollector; @@ -18,6 +16,7 @@ import java.util.Map; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; +import org.openmaptiles.OpenMapTilesProfile; class WaterwayTest extends AbstractLayerTest { @@ -33,7 +32,7 @@ class WaterwayTest extends AbstractLayerTest { FeatureCollector features = process(SimpleFeature.createFakeOsmFeature( newLineString(0, 0, 0, isLongEnough ? 3 : 1), Map.of(), - OSM_SOURCE, + OpenMapTilesProfile.OSM_SOURCE, null, 0, (relationInfos == null ? List.of() : relationInfos).stream() @@ -209,7 +208,7 @@ class WaterwayTest extends AbstractLayerTest { "featurecla", "River", "name", "name" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_110m_rivers_lake_centerlines", 0 ))); @@ -228,7 +227,7 @@ class WaterwayTest extends AbstractLayerTest { "featurecla", "River", "name", "name" ), - NATURAL_EARTH_SOURCE, + OpenMapTilesProfile.NATURAL_EARTH_SOURCE, "ne_50m_rivers_lake_centerlines", 0 ))); diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtilsTest.java b/src/test/java/org/openmaptiles/util/OmtLanguageUtilsTest.java similarity index 99% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtilsTest.java rename to src/test/java/org/openmaptiles/util/OmtLanguageUtilsTest.java index 3f47807..93a818a 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/util/OmtLanguageUtilsTest.java +++ b/src/test/java/org/openmaptiles/util/OmtLanguageUtilsTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.util; +package org.openmaptiles.util; import static com.onthegomap.planetiler.TestUtils.assertSubmap; import static com.onthegomap.planetiler.util.LanguageUtils.containsOnlyLatinCharacters; @@ -78,6 +78,7 @@ class OmtLanguageUtilsTest { } } + @ParameterizedTest @CsvSource(value = { "abcaāíìś+, null", diff --git a/src/test/java/com/onthegomap/planetiler/openmaptiles/util/VerifyMonacoTest.java b/src/test/java/org/openmaptiles/util/VerifyMonacoTest.java similarity index 96% rename from src/test/java/com/onthegomap/planetiler/openmaptiles/util/VerifyMonacoTest.java rename to src/test/java/org/openmaptiles/util/VerifyMonacoTest.java index b82ab41..4f3c7bf 100644 --- a/src/test/java/com/onthegomap/planetiler/openmaptiles/util/VerifyMonacoTest.java +++ b/src/test/java/org/openmaptiles/util/VerifyMonacoTest.java @@ -1,4 +1,4 @@ -package com.onthegomap.planetiler.openmaptiles.util; +package org.openmaptiles.util; import static com.onthegomap.planetiler.geo.GeoUtils.point; import static com.onthegomap.planetiler.util.Gzip.gzip; diff --git a/submodule.pom.xml b/submodule.pom.xml new file mode 100644 index 0000000..60f3d7c --- /dev/null +++ b/submodule.pom.xml @@ -0,0 +1,57 @@ + + + + 4.0.0 + + org.openmaptiles + planetiler-openmaptiles + + + com.onthegomap.planetiler + planetiler-parent + 0.5-SNAPSHOT + + + + + com.onthegomap.planetiler + planetiler-core + ${project.parent.version} + + + org.yaml + snakeyaml + + + org.commonmark + commonmark + + + + com.onthegomap.planetiler + planetiler-core + ${project.parent.version} + test-jar + test + + + + + + + io.github.zlika + reproducible-build-maven-plugin + + + + maven-deploy-plugin + + + true + + + + +