diff --git a/.gitignore b/.gitignore index 4f82b7d348d..7de2589ee5a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ coverage .nyc_output *_generated.js yarn.lock +test/integration/**/index.html +test/integration/**/actual.png +test/integration/**/diff.png diff --git a/debug/chinese.html b/debug/chinese.html index e9324552931..8637a7368a5 100644 --- a/debug/chinese.html +++ b/debug/chinese.html @@ -41,7 +41,7 @@ map.on('load', function () { map.addSource("points", { "type": "geojson", - "data": '/node_modules/mapbox-gl-test-suite/data/chinese.geojson' + "data": '/test/integration/data/chinese.geojson' }); map.addLayer({ diff --git a/debug/circles.html b/debug/circles.html index 3d67db5e808..c9943e5cd36 100644 --- a/debug/circles.html +++ b/debug/circles.html @@ -33,7 +33,7 @@ map.addSource('circles', { "type": "geojson", - "data": "/node_modules/mapbox-gl-test-suite/data/places.geojson" + "data": "/test/integration/data/places.geojson" }); map.addLayer({ diff --git a/debug/cluster.html b/debug/cluster.html index cf78f096a5f..d40092eabc3 100644 --- a/debug/cluster.html +++ b/debug/cluster.html @@ -32,12 +32,12 @@ "sources": { "geojson": { "type": "geojson", - "data": "/node_modules/mapbox-gl-test-suite/data/places.geojson", + "data": "/test/integration/data/places.geojson", "cluster": true, "clusterRadius": 25 } }, - "glyphs": "/node_modules/mapbox-gl-test-suite/glyphs/{fontstack}/{range}.pbf", + "glyphs": "/test/integration/glyphs/{fontstack}/{range}.pbf", "layers": [ { "id": "cluster", diff --git a/debug/debug.html b/debug/debug.html index 1d692bc0052..f6459f01fd9 100644 --- a/debug/debug.html +++ b/debug/debug.html @@ -52,7 +52,7 @@ map.on('load', function() { map.addSource('geojson', { "type": "geojson", - "data": "/node_modules/mapbox-gl-test-suite/data/linestring.geojson" + "data": "/test/integration/data/linestring.geojson" }); map.addLayer({ "id": "route", diff --git a/debug/image.html b/debug/image.html index 994b259ff2d..646e5d8671b 100644 --- a/debug/image.html +++ b/debug/image.html @@ -23,7 +23,7 @@ "sources": { "image": { "type": "image", - "url": "/node_modules/mapbox-gl-test-suite/image/0.png", + "url": "/test/integration/image/0.png", "coordinates": [ [-122.51596391201019, 37.56238816766053], [-122.51467645168304, 37.56410183312965], diff --git a/package.json b/package.json index 51376687149..032c3955094 100644 --- a/package.json +++ b/package.json @@ -46,32 +46,39 @@ "benchmark": "~2.1.0", "browserify": "^13.0.0", "clipboard": "^1.5.12", + "colors": "^1.1.2", "concat-stream": "1.5.2", "coveralls": "^2.11.8", + "d3-queue": "^3.0.3", + "diff": "^3.0.0", "documentation": "4.0.0-beta12", "envify": "^3.4.0", - "eslint": "3.12.1", "eslint-config-mourner": "^2.0.0", "eslint-plugin-flowtype": "^2.20.0", "eslint-plugin-html": "^1.5.1", + "eslint": "3.12.1", "flow-bin": "^0.36.0", "flow-remove-types": "^1.0.4", "github-slugger": "^1.1.1", "gl": "^4.0.1", + "handlebars": "^4.0.5", "highlight.js": "9.8.0", "in-publish": "^2.0.0", "jsdom": "^9.4.2", + "jsonlint": "^1.6.2", "lodash.template": "^4.4.0", - "mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#7438620cfcdb406c6ea7f4a10918e4f5a2d517d6", "minifyify": "^7.0.1", "npm-run-all": "^3.0.0", "nyc": "^8.3.0", + "pixelmatch": "^4.0.2", + "pngjs": "^3.0.0", "proxyquire": "^1.7.9", "sinon": "^1.15.4", + "st": "^1.1.0", "st": "^1.2.0", "tap": "^5.7.0", - "vinyl": "2.0.0", "vinyl-fs": "2.4.4", + "vinyl": "2.0.0", "watchify": "^3.7.0" }, "browserify": { @@ -110,13 +117,14 @@ "build-docs": "documentation build --github --format html --config documentation.yml --theme ./docs/_theme --output docs/api/", "build": "npm run build-docs # invoked by publisher when publishing docs on the mb-pages branch", "start-docs": "npm run build-min && npm run build-docs && jekyll serve --watch", - "lint": "eslint --ignore-path .gitignore js test bench docs/_posts/examples/*.html debug/*.html", + "lint": "eslint --ignore-path .gitignore js test bench docs/_posts/examples/*.html debug/*.html", "lint-docs": "documentation lint", "open-changed-examples": "git diff --name-only mb-pages HEAD -- docs/_posts/examples/*.html | awk '{print \"http://127.0.0.1:4000/mapbox-gl-js/example/\" substr($0,33,length($0)-37)}' | xargs open", "plugin-deploy": "set -e; node plugins/exists.js; aws s3 sync --exclude *.DS_Store --acl public-read plugins/src s3://mapbox-gl-js/plugins/; echo ' -- DEPLOYED --'", "test": "run-s lint test-unit test-plugin test-flow", "test-plugin": "tap test/plugins/", "test-suite": "run-s test-render test-query", + "test-suite-clean": "find test/integration/*-tests -mindepth 2 -type d -not \\( -exec test -e \"{}/style.json\" \\; \\) -print | xargs -t rm -r", "test-unit": "tap --reporter dot --no-coverage test/js", "test-render": "node test/render.test.js", "test-query": "node test/query.test.js", diff --git a/test/README.md b/test/README.md index 8b26c575a82..5aaa7fe0e86 100644 --- a/test/README.md +++ b/test/README.md @@ -8,7 +8,7 @@ First you must configure your development environment per [`../CONTRIBUTING.md`] There are two test suites associated with Mapbox GL JS - `npm test` runs quick unit tests - - `npm run test-suite` runs integration tests from the [mapbox-gl-test-suite](https://github.com/mapbox/mapbox-gl-test-suite) repository + - `npm run test-suite` runs slower integration tests ## Writing Unit Tests diff --git a/test/integration/README.md b/test/integration/README.md new file mode 100644 index 00000000000..c5249edd569 --- /dev/null +++ b/test/integration/README.md @@ -0,0 +1,66 @@ +Verify correctness and consistency of [mapbox-gl-js](https://github.com/mapbox/mapbox-gl-js) and +[mapbox-gl-native](https://github.com/mapbox/mapbox-gl-native) rendering. + +## Organization + +Tests are contained in a directory tree, generally organized by [style specification](https://github.com/mapbox/mapbox-gl-style-spec) +property: `background-color`, `line-width`, etc., with a second level of directories below that for individual tests. + +Within a leaf directory is a `style.json` file, which contains the minimal style needed for the given test case. The style can specify the map size, center, bearing, and pitch, and additional test metadata. The expected output for a given test case is in `expected.png`, e.g. [`tests/background-color/constant/expected.png`](https://github.com/mapbox/mapbox-gl-js/blob/master/test/integration/render-tests/background-color/constant/expected.png). + +Supporting files -- glyphs, sprites, and tiles -- live in their own respective subdirectories at the top level. The test +harness sets up the environment such that requests for these resources are directed to the correct location. + +The contents of vector tile fixtures can be read using the [`vt2geojson`](https://github.com/mapbox/vt2geojson) tool + +## Running tests + +Run `npm run test-suite` in mapbox-gl-js or mapbox-gl-native. To view the results graphically, run: + +``` +open ./test/integration/render-tests/index.html +``` +or +``` +open ./test/integration/query-tests/index.html +``` + +When run via Travis, the test artifacts are uploaded to S3 as a permanent record of results. Near the +end of the Travis output is a link to the result, for example: + +http://mapbox.s3.amazonaws.com/mapbox-gl-native/tests/5952.10/index.html + +## Writing new tests + +Expected results are always generated with the **js** implementation. This is merely for consistency and does not +imply that in the event of a rendering discrepancy, the js implementation is always correct. + +``` +UPDATE=1 npm run test-suite +[review and commit changes] +``` + +### Reading Vector Tile Fixtures + +Install `vt2geojson`, a command line utility which turns vector tiles into geojson, and `harp`, a simple file server. + +``` +npm install -g vt2geojson harp +``` + +Start a static file server +``` +harp server . +``` + +Read the contents of an entire vector tile + +``` +vt2geojson -z 14 -y 8803 -x 5374 http://localhost:9000/tiles/14-8803-5374.mvt +``` + +Read the contents of a particular layer in a vector tile + +``` +vt2geojson --layer poi_label -z 14 -y 8803 -x 5374 http://localhost:9000/tiles/14-8803-5374.mvt +``` diff --git a/test/integration/data/121points.geojson b/test/integration/data/121points.geojson new file mode 100644 index 00000000000..2f5f315a894 --- /dev/null +++ b/test/integration/data/121points.geojson @@ -0,0 +1,1336 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -5, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -4, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -3, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + -0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -2, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 2, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 3, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 4, + 5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + -5 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + -4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + -3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + -2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + -1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + 0 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + 1 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + 2 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + 3 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + 4 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 5, + 5 + ] + } + } + ] +} diff --git a/test/integration/data/chinese.geojson b/test/integration/data/chinese.geojson new file mode 100644 index 00000000000..f1dd53bb31f --- /dev/null +++ b/test/integration/data/chinese.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73270889049581,43.41627085800398]},"properties":{"name":"的一是不了"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76298169713937,43.44261374841698]},"properties":{"name":"在人有我他"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73750788686539,43.42129081598136]},"properties":{"name":"这个们中来"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68983653183295,43.36893537983959]},"properties":{"name":"上大为和国"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78480371728801,43.385713038402734]},"properties":{"name":"地到以说时"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82444442057749,43.3981364143174]},"properties":{"name":"要就出会可"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73178458119855,43.42150465372435]},"properties":{"name":"也你对生能"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81785610131647,43.36772142802819]},"properties":{"name":"而子那得于"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71407211903534,43.396000025590936]},"properties":{"name":"着下自之年"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79407351218833,43.41860722639433]},"properties":{"name":"过发后作里"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67633907003255,43.4171921149322]},"properties":{"name":"用道行所然"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77300637827193,43.39388127052078]},"properties":{"name":"家种事成方"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81926263607329,43.339585481875]},"properties":{"name":"多经么去法"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76701252093699,43.35773661014847]},"properties":{"name":"学如都同现"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7737515090821,43.44366259492489]},"properties":{"name":"当没动面起"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73829309937992,43.34378736524005]},"properties":{"name":"看定天分还"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71836466571312,43.33057012451926]},"properties":{"name":"进好小部其"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8115615374345,43.43176089412675]},"properties":{"name":"些主样理心"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72375031275442,43.427220939712534]},"properties":{"name":"她本前开但"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70314387005055,43.389688637563765]},"properties":{"name":"因只从想实"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76039207819576,43.36975807892726]},"properties":{"name":"日军者意无"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78682420394216,43.365202354108135]},"properties":{"name":"力它与长把"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78460575433382,43.430490774626286]},"properties":{"name":"机十民第公"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7823602114513,43.35546405309943]},"properties":{"name":"此已工使情"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69186049292512,43.422688902696564]},"properties":{"name":"明性知全三"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80768244315095,43.43381601437478]},"properties":{"name":"又关点正业"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72756567031774,43.400333914786785]},"properties":{"name":"外将两高间"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69534099799966,43.422190395818994]},"properties":{"name":"由问很最重"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83581194006001,43.41564978584469]},"properties":{"name":"并物手应战"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74950948614969,43.43062747741384]},"properties":{"name":"向头文体政"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72733267952117,43.39116317525604]},"properties":{"name":"美相见被利"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72085520401288,43.43205067390052]},"properties":{"name":"什二等产或"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74851416375623,43.44382863716304]},"properties":{"name":"新己制身果"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8394813306677,43.37578833067203]},"properties":{"name":"加西斯月话"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77187743426293,43.359984149537226]},"properties":{"name":"合回特代内"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69004478877105,43.32857475596884]},"properties":{"name":"信表化老给"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7543304983983,43.45029457922705]},"properties":{"name":"世位次度门"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74270392666222,43.436224623306195]},"properties":{"name":"任常先海通"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70207094875059,43.39809173301537]},"properties":{"name":"教儿原东声"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75571436014798,43.3468089398027]},"properties":{"name":"提立及比员"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8233978214821,43.42514681243842]},"properties":{"name":"解水名筱论"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68193517172404,43.43279789478497]},"properties":{"name":"处走义各入"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80028992255848,43.33690838162077]},"properties":{"name":"几口认条平"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71507317067244,43.401143748258455]},"properties":{"name":"系气题活尔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78889469900332,43.45182031313233]},"properties":{"name":"更别打女变"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6791223720029,43.38861188362641]},"properties":{"name":"四神总何电"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72988047792478,43.33359777731984]},"properties":{"name":"数安少报才"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76988704019641,43.365757148416336]},"properties":{"name":"结反受目太"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75657912670522,43.39062671107417]},"properties":{"name":"量再感建务"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71694934526477,43.376825304235226]},"properties":{"name":"做接必场件"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67458813089615,43.36108038884236]},"properties":{"name":"计管期市直"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73092396663014,43.451194179973356]},"properties":{"name":"德资命山金"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71805769966886,43.441661018342145]},"properties":{"name":"指克许统区"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81861278781616,43.426572973941695]},"properties":{"name":"保至队形社"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78874389125303,43.383000090716834]},"properties":{"name":"便空决治展"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77038527017976,43.357431603981965]},"properties":{"name":"马科司五基"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76028190008401,43.396620706760984]},"properties":{"name":"眼书非则听"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72120167890262,43.33581886107876]},"properties":{"name":"白却界达光"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83215351153285,43.42486709690492]},"properties":{"name":"放强即像难"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74438919600198,43.33050804734877]},"properties":{"name":"且权思王象"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78421479421195,43.40712629232671]},"properties":{"name":"完设式色路"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7497489802472,43.33114312974759]},"properties":{"name":"记南品住告"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66478914990057,43.38347958366816]},"properties":{"name":"类求据程北"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79279423940079,43.444583002746775]},"properties":{"name":"边死张该交"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76906741636776,43.419984311312625]},"properties":{"name":"规万取拉格"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75612128325247,43.37612751347973]},"properties":{"name":"望觉术领共"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77176654843697,43.43095760221496]},"properties":{"name":"确传师观清"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77393503776875,43.373380874335005]},"properties":{"name":"今切院让识"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71310318142423,43.43803340638478]},"properties":{"name":"候带导争运"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81563594692398,43.346211434247635]},"properties":{"name":"笑飞风步改"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69670553324158,43.4029553787535]},"properties":{"name":"收根干造言"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68140692646466,43.45196741095145]},"properties":{"name":"联持组每济"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71393977312255,43.352840358239604]},"properties":{"name":"车亲极林服"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77520183044271,43.370446718107615]},"properties":{"name":"快办议往元"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7705171135467,43.42031530315453]},"properties":{"name":"英士证近失"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79700244767992,43.370796588876516]},"properties":{"name":"转夫令准布"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68495501730467,43.44587605391778]},"properties":{"name":"始怎呢存未"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66875438862098,43.428265013064504]},"properties":{"name":"远叫台单影"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78255633374283,43.344190485138526]},"properties":{"name":"具罗字爱击"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73950662616426,43.39914435521945]},"properties":{"name":"流备兵连调"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66711705844682,43.42765258781692]},"properties":{"name":"深商算质团"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67424805301926,43.367364311972324]},"properties":{"name":"集百需价花"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73542075892419,43.405725847481825]},"properties":{"name":"党华城石级"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83006410836333,43.35664000828751]},"properties":{"name":"整府离况亚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72345388556187,43.34752030391647]},"properties":{"name":"请技际约示"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74116502544712,43.39729245583676]},"properties":{"name":"复病息究线"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73088213630854,43.349605386889884]},"properties":{"name":"似官火断精"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67745194820873,43.41123711240646]},"properties":{"name":"满支视消越"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6817792850643,43.42344437828406]},"properties":{"name":"器容照须九"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67395214801763,43.39977158479005]},"properties":{"name":"增研写称企"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72161818475706,43.382293003810005]},"properties":{"name":"八功吗包片"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72855664275721,43.41261360254286]},"properties":{"name":"史委乎查轻"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83086291556356,43.36050725709127]},"properties":{"name":"易早曾除农"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75354201321716,43.4442740937665]},"properties":{"name":"找装广显吧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7131699827778,43.345394151190725]},"properties":{"name":"阿李标谈吃"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7649695364853,43.44088050766551]},"properties":{"name":"图念六引历"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71225333661914,43.35591317841684]},"properties":{"name":"首医局突专"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79971900833698,43.392362357661604]},"properties":{"name":"费号尽另周"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70626144043672,43.42036951093048]},"properties":{"name":"较注语仅考"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7040667445608,43.433803705173396]},"properties":{"name":"落青随选列"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.813440070051,43.385923123380685]},"properties":{"name":"武红响虽推"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7070736167725,43.37259236901997]},"properties":{"name":"势参希古众"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76888123702702,43.39800691496971]},"properties":{"name":"构房半节土"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74421053508104,43.34325732766496]},"properties":{"name":"投某案黑维"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69038090599406,43.366814529767844]},"properties":{"name":"革划敌致陈"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66650853289048,43.34867037886478]},"properties":{"name":"律足态护七"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66952516027868,43.40685068681997]},"properties":{"name":"兴派孩验责"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68151887308431,43.3821590323556]},"properties":{"name":"营星够章音"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71453679914157,43.41655508237566]},"properties":{"name":"跟志底站严"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7286383345945,43.389659720807465]},"properties":{"name":"巴例防族供"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78968425737912,43.42832250510841]},"properties":{"name":"效续施留讲"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77126855272127,43.432091911546834]},"properties":{"name":"型料终答紧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80150644673267,43.384293717872744]},"properties":{"name":"黄绝奇察母"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70325368034901,43.342142138944126]},"properties":{"name":"京段依批群"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74350685450099,43.33815688393118]},"properties":{"name":"项故按河米"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68640694219539,43.32988121926636]},"properties":{"name":"围江织害斗"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82314765576484,43.36757657335591]},"properties":{"name":"双境客纪采"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77855847885985,43.44537272495857]},"properties":{"name":"举杀攻父苏"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69097776744456,43.38523317400271]},"properties":{"name":"密低朝友诉"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7421211758674,43.3800236955169]},"properties":{"name":"止细愿千值"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7755043980751,43.36667122483581]},"properties":{"name":"仍男钱破网"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75295729292066,43.44281164137731]},"properties":{"name":"热助倒育属"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77224286592354,43.3253127146371]},"properties":{"name":"坐帝限船脸"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8242325149331,43.347561311210455]},"properties":{"name":"职速刻乐否"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80801165451248,43.43367913152873]},"properties":{"name":"刚威毛状率"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77302849618263,43.372749462523885]},"properties":{"name":"甚独球般普"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73703546176603,43.328032643768076]},"properties":{"name":"怕弹校苦创"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67624744048317,43.344889116256184]},"properties":{"name":"伟久错承印"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79964252293848,43.38656670136357]},"properties":{"name":"晚兰试股拿"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74049655553154,43.344659220383505]},"properties":{"name":"脑预谁益阳"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72304384605104,43.35607154684429]},"properties":{"name":"若哪微尼继"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7526981722367,43.39981729891517]},"properties":{"name":"送急血惊伤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68568625772969,43.34763712888965]},"properties":{"name":"素药适波夜"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81743986333095,43.429533375195334]},"properties":{"name":"省初喜卫源"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80579718643094,43.35988688107485]},"properties":{"name":"食险待述陆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83223099273255,43.43425284429113]},"properties":{"name":"习置居劳财"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80006585484625,43.35132639892201]},"properties":{"name":"环排福纳欢"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70924590877894,43.383011511165705]},"properties":{"name":"雷警获模充"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68249560431013,43.35743306628053]},"properties":{"name":"负云停木游"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68774304395902,43.33419609182944]},"properties":{"name":"龙树疑层冷"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67733078337824,43.327826458540464]},"properties":{"name":"洲冲射略范"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68834955622151,43.431281245921824]},"properties":{"name":"竟句室异激"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8091257333308,43.43459785012007]},"properties":{"name":"汉村哈策演"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67144809840102,43.397513621281995]},"properties":{"name":"简卡罪判担"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82363606504714,43.37710068801484]},"properties":{"name":"州静退既衣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74061761816665,43.4212255093278]},"properties":{"name":"您宗积余痛"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7045488688891,43.36750358756782]},"properties":{"name":"检差富灵协"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82580595102172,43.42392475722188]},"properties":{"name":"角占配征修"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77008645152546,43.34480018782685]},"properties":{"name":"皮挥胜降阶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71651166319498,43.34427801604752]},"properties":{"name":"审沉坚善妈"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83028376706352,43.39600333853026]},"properties":{"name":"刘读啊超免"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72932534685151,43.32911672353392]},"properties":{"name":"压银买皇养"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68036932940231,43.36393499520703]},"properties":{"name":"伊怀执副乱"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77298183161474,43.44003908109747]},"properties":{"name":"抗犯追帮宣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81552785528402,43.34735681961522]},"properties":{"name":"佛岁航优怪"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78578499835658,43.41906317070564]},"properties":{"name":"香著田铁控"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78354709597988,43.368113417254776]},"properties":{"name":"税左右份穿"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82797590542668,43.35143064769927]},"properties":{"name":"艺背阵草脚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79055192707074,43.43537476712199]},"properties":{"name":"概恶块顿敢"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70654512079273,43.41147087462913]},"properties":{"name":"守酒岛托央"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68733618863007,43.41836228588271]},"properties":{"name":"户烈洋哥索"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7154416231333,43.33529886942282]},"properties":{"name":"胡款靠评版"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73493527274877,43.370844496181796]},"properties":{"name":"宝座释景顾"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73770378945937,43.39088303970504]},"properties":{"name":"弟登货互付"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83211159305392,43.32846502905939]},"properties":{"name":"伯慢欧换闻"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68908894596007,43.44014380512324]},"properties":{"name":"危忙核暗姐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6902922126892,43.403538514368456]},"properties":{"name":"介坏讨丽良"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76141611184084,43.36152240176037]},"properties":{"name":"序升监临亮"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67547588081197,43.34877423379756]},"properties":{"name":"露永呼味野"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74561868818364,43.40177322844116]},"properties":{"name":"架域沙掉括"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82147468187486,43.345501872146336]},"properties":{"name":"舰鱼杂误湾"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72331018618115,43.41869149001808]},"properties":{"name":"吉减编楚肯"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81418024432423,43.39045046575978]},"properties":{"name":"测败屋跑梦"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69068592136318,43.3685438560169]},"properties":{"name":"散温困剑渐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83747349864097,43.32783583160479]},"properties":{"name":"封救贵枪缺"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66638697581311,43.38651479270904]},"properties":{"name":"楼县尚毫移"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73073327718703,43.39856744262681]},"properties":{"name":"娘朋画班智"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74104845728016,43.38961856762863]},"properties":{"name":"亦耳恩短掌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7539775992791,43.37962584070818]},"properties":{"name":"恐遗固席松"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67308167308965,43.440433177549636]},"properties":{"name":"秘谢鲁遇康"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68724650885542,43.3438023389739]},"properties":{"name":"虑幸均销钟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6690021588247,43.3604969931925]},"properties":{"name":"诗藏赶剧票"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77503168804014,43.415001819151854]},"properties":{"name":"损忽巨炮旧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79229079700326,43.41771721089227]},"properties":{"name":"端探湖录叶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75545867980964,43.404726107598385]},"properties":{"name":"春乡附吸予"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68343503303822,43.32628692794371]},"properties":{"name":"礼港雨呀板"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7017168198081,43.408124296254805]},"properties":{"name":"庭妇归睛饭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75177113079917,43.40327950333013]},"properties":{"name":"额含顺输摇"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70633448491662,43.33353916165031]},"properties":{"name":"招婚脱补谓"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80796698838185,43.38855809467828]},"properties":{"name":"督毒油疗旅"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71316371386729,43.40035203701606]},"properties":{"name":"泽材灭逐莫"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73512074699465,43.39091219011503]},"properties":{"name":"笔亡鲜词圣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8091237096005,43.33089437793854]},"properties":{"name":"择寻厂睡博"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71888919977027,43.37203728663009]},"properties":{"name":"勒烟授诺伦"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6680803788322,43.4500067687054]},"properties":{"name":"岸奥唐卖俄"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66925720953805,43.372341602453425]},"properties":{"name":"炸载洛健堂"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66882286164855,43.423630694619916]},"properties":{"name":"旁宫喝借君"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77390029854541,43.445009580661186]},"properties":{"name":"禁阴园谋宋"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71985438791216,43.398099248509034]},"properties":{"name":"避抓荣姑孙"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74294883903804,43.4173240632121]},"properties":{"name":"逃牙束跳顶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66689798156858,43.34124127734229]},"properties":{"name":"玉镇雪午练"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75171381658947,43.39159204675984]},"properties":{"name":"迫爷篇肉嘴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81096888891352,43.42308178495851]},"properties":{"name":"馆遍凡础洞"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73965294263871,43.40406594519991]},"properties":{"name":"卷坦牛宁纸"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72554678621145,43.37774074563721]},"properties":{"name":"诸训私庄祖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67178856070768,43.389572230853304]},"properties":{"name":"丝翻暴森塔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66509793278783,43.41061135866706]},"properties":{"name":"默握戏隐熟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73326538252331,43.44230808801419]},"properties":{"name":"骨访弱蒙歌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.763294657595,43.42569076002226]},"properties":{"name":"店鬼软典欲"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70805275051043,43.33022223454242]},"properties":{"name":"萨伙遭盘爸"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80356155228401,43.35448684283324]},"properties":{"name":"扩盖弄雄稳"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71671550436804,43.358590543375485]},"properties":{"name":"忘亿刺拥徒"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79930692168546,43.44009080139547]},"properties":{"name":"姆杨齐赛趣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79587187411107,43.353732548898144]},"properties":{"name":"曲刀床迎冰"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79719578990535,43.37696041213408]},"properties":{"name":"虚玩析窗醒"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69965497394605,43.36639187084689]},"properties":{"name":"妻透购替塞"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7921343910175,43.39881694771324]},"properties":{"name":"努休虎扬途"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72017632396182,43.38361317683319]},"properties":{"name":"侵刑绿兄迅"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68359785932444,43.34831766076865]},"properties":{"name":"套贸毕唯谷"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81414767105343,43.40958963502256]},"properties":{"name":"轮库迹尤竞"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80253128177446,43.36605742276838]},"properties":{"name":"街促延震弃"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70089574338908,43.44275792279891]},"properties":{"name":"甲伟麻川申"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83317739247832,43.442243183384164]},"properties":{"name":"缓潜闪售灯"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67721696102126,43.42843016937564]},"properties":{"name":"针哲络抵朱"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71723432403815,43.36649527257002]},"properties":{"name":"埃抱鼓植纯"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69481568423726,43.40301142667125]},"properties":{"name":"夏忍页杰筑"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68468959578695,43.35720648266311]},"properties":{"name":"折郑贝尊吴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72149391956373,43.361699359813706]},"properties":{"name":"秀混臣雅振"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70660354920619,43.38448871648363]},"properties":{"name":"染盛怒舞圆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76299651747377,43.35074913433199]},"properties":{"name":"搞狂措姓残"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77539316698676,43.39435306815789]},"properties":{"name":"秋培迷诚宽"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71830531729574,43.35119394975593]},"properties":{"name":"宇猛摆梅毁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81118685367528,43.37563814779732]},"properties":{"name":"伸摩盟末乃"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79642660311492,43.377657505705734]},"properties":{"name":"悲拍丁赵硬"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7888253988358,43.337163828964385]},"properties":{"name":"麦蒋操耶阻"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70485407817159,43.42571907384735]},"properties":{"name":"订彩抽赞魔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66969568481909,43.35045513475347]},"properties":{"name":"纷沿喊违妹"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66930716449406,43.44367042306718]},"properties":{"name":"浪汇币丰蓝"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69189873670894,43.43076512052666]},"properties":{"name":"殊献桌啦瓦"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79353235204508,43.37368059280777]},"properties":{"name":"莱援译夺汽"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70219104390617,43.33231431216638]},"properties":{"name":"烧距裁偏符"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76689379197433,43.36916089976166]},"properties":{"name":"勇触课敬哭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82121823517355,43.3890494143254]},"properties":{"name":"懂墙袭召罚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83471876958811,43.40298009860645]},"properties":{"name":"侠厅拜巧侧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79381721196569,43.43790173544968]},"properties":{"name":"韩冒债曼融"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78649372015207,43.36341720491033]},"properties":{"name":"惯享戴童犹"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78560735030351,43.44361961433385]},"properties":{"name":"乘挂奖绍厚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75079314695358,43.33861416363164]},"properties":{"name":"纵障讯涉彻"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74953762736641,43.40607632034917]},"properties":{"name":"刊丈爆乌役"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74238703575702,43.35555088566464]},"properties":{"name":"描洗玛患妙"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83816796506198,43.41942390467601]},"properties":{"name":"镜唱烦签仙"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81616133746593,43.350962266236195]},"properties":{"name":"彼弗症仿倾"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79219311701308,43.387858965559424]},"properties":{"name":"牌陷鸟轰咱"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66780267369268,43.36965922024568]},"properties":{"name":"菜闭奋庆撤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76678459362029,43.41517258008821]},"properties":{"name":"泪茶疾缘播"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80142993141635,43.341730907669636]},"properties":{"name":"朗杜奶季丹"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77921260855874,43.421873232284376]},"properties":{"name":"狗尾仪偷奔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83144706066832,43.36621272347986]},"properties":{"name":"珠虫驻孔宜"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70722008394114,43.35038684779588]},"properties":{"name":"艾桥淡翼恨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79020734973255,43.33479279298051]},"properties":{"name":"繁寒伴叹旦"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67291568124347,43.43540548255966]},"properties":{"name":"愈潮粮缩罢"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82768299138934,43.36836454991645]},"properties":{"name":"聚径恰挑袋"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75399246803045,43.418397519140655]},"properties":{"name":"灰捕徐珍幕"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74220063622761,43.35676855353936]},"properties":{"name":"映裂泰隔启"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67156749173591,43.32753321179319]},"properties":{"name":"尖忠累炎暂"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7337656762229,43.362393286271406]},"properties":{"name":"估泛荒偿横"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72030044521398,43.382476256772236]},"properties":{"name":"拒瑞忆孤鼻"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7526464325656,43.436104808005915]},"properties":{"name":"闹羊呆厉衡"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71485882023808,43.429619924972954]},"properties":{"name":"胞零穷舍码"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75909970307748,43.330400132266675]},"properties":{"name":"赫婆魂灾洪"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81135682893091,43.42006743640997]},"properties":{"name":"腿胆津俗辩"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67022303291196,43.35877085029656]},"properties":{"name":"胸晓劲贫仁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73190488058117,43.36210649884719]},"properties":{"name":"偶辑邦恢赖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79749258159609,43.43829648566227]},"properties":{"name":"圈摸仰润堆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81412739294592,43.42486673759098]},"properties":{"name":"碰艇稍迟辆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73942862821696,43.41857560346666]},"properties":{"name":"废净凶署壁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73194496367705,43.36236970705654]},"properties":{"name":"御奉旋冬矿"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77277965716348,43.42795996100599]},"properties":{"name":"抬蛋晨伏吹"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79677774850097,43.386918730187254]},"properties":{"name":"鸡倍糊秦盾"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7755677565865,43.41930911043181]},"properties":{"name":"杯租骑乏隆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83969235862696,43.40300089042435]},"properties":{"name":"诊奴摄丧污"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79056823232804,43.36644340374012]},"properties":{"name":"渡旗甘耐凭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79024794978068,43.450759361929514]},"properties":{"name":"扎抢绪粗肩"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7960531583467,43.42912547125532]},"properties":{"name":"梁幻菲皆碎"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71188677769896,43.40578991754939]},"properties":{"name":"宙叔岩荡综"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80973210979664,43.405074830026]},"properties":{"name":"爬荷悉蒂返"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83094842280389,43.383506992650275]},"properties":{"name":"井壮薄悄扫"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68880786616319,43.4408736919135]},"properties":{"name":"敏碍殖详迪"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83637982623713,43.37932687230065]},"properties":{"name":"矛霍允幅撒"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7120551129583,43.38478419358865]},"properties":{"name":"剩凯颗骂赏"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79655496709165,43.353914671185876]},"properties":{"name":"液番箱贴漫"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82183396335495,43.34951148058995]},"properties":{"name":"酸郎腰舒眉"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7386077853289,43.42153859100138]},"properties":{"name":"忧浮辛恋餐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70073597694773,43.3950412068982]},"properties":{"name":"吓挺励辞艘"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67738562238901,43.37299568230138]},"properties":{"name":"键伍峰尺昨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76967766127837,43.43523403455177]},"properties":{"name":"黎辈贯侦滑"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66711217868942,43.34498516856536]},"properties":{"name":"券崇扰宪绕"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71263407544393,43.44878125927471]},"properties":{"name":"趋慈乔阅汗"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81736193811139,43.3268554930083]},"properties":{"name":"枝拖墨胁插"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72823672941468,43.39913772571227]},"properties":{"name":"箭腊粉泥氏"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80909585278732,43.42911070681641]},"properties":{"name":"彭拔骗凤慧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75079532407926,43.42721943663759]},"properties":{"name":"媒佩愤扑龄"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71058457033814,43.367755763373076]},"properties":{"name":"驱惜豪掩兼"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69298119807172,43.42626514840551]},"properties":{"name":"跃尸肃帕驶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83650346598006,43.41933636859189]},"properties":{"name":"堡届欣惠册"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7067569578021,43.4410164115811]},"properties":{"name":"储飘桑闲惨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8266463758855,43.429931233602844]},"properties":{"name":"洁踪勃宾频"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78659303223958,43.338321981323276]},"properties":{"name":"仇磨递邪撞"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80639026067729,43.36026255177993]},"properties":{"name":"拟滚奏巡颜"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68785430058597,43.391834351083176]},"properties":{"name":"剂绩贡疯坡"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77329479710443,43.331029684633386]},"properties":{"name":"瞧截燃焦殿"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83944140776111,43.36094548943541]},"properties":{"name":"伪柳锁逼颇"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77328811212737,43.39281904629793]},"properties":{"name":"昏劝呈搜勤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80847732751408,43.37011711911654]},"properties":{"name":"戒驾漂饮曹"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69083308544123,43.34616816533698]},"properties":{"name":"朵仔柔俩孟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71997028929218,43.39262356330771]},"properties":{"name":"腐幼践籍牧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70795456797441,43.43662706130826]},"properties":{"name":"凉牲佳娜浓"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74983541518577,43.36433290673387]},"properties":{"name":"芳稿竹腹跌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72199664814889,43.399196067397874]},"properties":{"name":"逻垂遵脉貌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76282152809654,43.33979211362029]},"properties":{"name":"柏狱猜怜惑"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72295717357065,43.32965718674516]},"properties":{"name":"陶兽帐饰贷"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76962927584191,43.417191219398504]},"properties":{"name":"昌叙躺钢沟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79867291448863,43.44693460246704]},"properties":{"name":"寄扶铺邓寿"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80762496150783,43.447198828628444]},"properties":{"name":"惧询汤盗肥"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73700170958546,43.42215816219742]},"properties":{"name":"尝匆辉奈扣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79048870955376,43.368949995240996]},"properties":{"name":"廷澳嘛董迁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8255365161358,43.39707569876099]},"properties":{"name":"凝慰厌脏腾"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67286163429799,43.38896639656718]},"properties":{"name":"幽怨鞋丢埋"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76401826500387,43.37508033645364]},"properties":{"name":"泉涌辖躲晋"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77611649584469,43.400255751529066]},"properties":{"name":"紫艰魏吾慌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70951490545667,43.33112009433672]},"properties":{"name":"祝邮吐狠鉴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7066983545883,43.42345908175173]},"properties":{"name":"曰械咬邻赤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82127073113952,43.339820786610595]},"properties":{"name":"挤弯椅陪割"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71675786236483,43.43096503945724]},"properties":{"name":"揭韦悟聪雾"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78950346431157,43.40237228555073]},"properties":{"name":"锋梯猫祥阔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75258281784954,43.390836247816566]},"properties":{"name":"誉筹丛牵鸣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76638218213247,43.32741343188597]},"properties":{"name":"沈阁穆屈旨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72154484965267,43.45222086361347]},"properties":{"name":"袖猎臂蛇贺"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76627772335996,43.437491216616706]},"properties":{"name":"柱抛鼠瑟戈"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73925198284087,43.44218709248913]},"properties":{"name":"牢逊迈欺吨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77499563521542,43.418523278482645]},"properties":{"name":"琴衰瓶恼燕"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8169860967655,43.384473967748534]},"properties":{"name":"仲诱狼池疼"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78032431371867,43.446660440194194]},"properties":{"name":"卢仗冠粒遥"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71753936465939,43.45285380044917]},"properties":{"name":"吕玄尘冯抚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69263196333395,43.419665985695886]},"properties":{"name":"浅敦纠钻晶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70765474537438,43.42017682128563]},"properties":{"name":"岂峡苍喷耗"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69765841770732,43.33820610443803]},"properties":{"name":"凌敲菌赔涂"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82267605236211,43.42357169093535]},"properties":{"name":"粹扁亏寂煤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73336307802492,43.42297002833131]},"properties":{"name":"熊恭湿循暖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83811908518328,43.33925460912034]},"properties":{"name":"糖赋抑秩帽"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73171881207145,43.354563903522724]},"properties":{"name":"哀宿踏烂袁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6961362492757,43.35411874665983]},"properties":{"name":"侯抖夹昆肝"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68661836305637,43.36823198552959]},"properties":{"name":"擦猪炼恒慎"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83961700277996,43.3510427803368]},"properties":{"name":"搬纽纹玻渔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74947187088583,43.39389891860199]},"properties":{"name":"磁铜齿跨押"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72910695071641,43.36486528376062]},"properties":{"name":"怖漠疲叛遣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69754557797296,43.39387045930845]},"properties":{"name":"兹祭醉拳弥"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73710033565021,43.384584096889725]},"properties":{"name":"斜档稀捷肤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68689162255396,43.36871487059363]},"properties":{"name":"疫肿豆削岗"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7994804315831,43.33013942649552]},"properties":{"name":"晃吞宏癌肚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7988314518434,43.39336940273254]},"properties":{"name":"隶履涨耀扭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71307712205453,43.41174462631271]},"properties":{"name":"坛拨沃绘伐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72580987651236,43.38478891558823]},"properties":{"name":"堪仆郭牺歼"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7036186715095,43.41690955477799]},"properties":{"name":"墓雇廉契拼"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76149458704094,43.367965367570484]},"properties":{"name":"惩捉覆刷劫"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8058814547212,43.403167911414506]},"properties":{"name":"嫌瓜歇雕闷"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71361559233537,43.376334729032095]},"properties":{"name":"乳串娃缴唤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73154162252649,43.38490610787597]},"properties":{"name":"赢莲霸桃妥"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79186204272446,43.376665125080876]},"properties":{"name":"瘦搭赴岳嘉"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6661296359971,43.452468442692734]},"properties":{"name":"舱俊址庞耕"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7616259928136,43.44408598398389]},"properties":{"name":"锐缝悔邀玲"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78766358344183,43.37143374956189]},"properties":{"name":"惟斥宅添挖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68890499690951,43.44979275747692]},"properties":{"name":"呵讼氧浩羽"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67281208362147,43.3973497257669]},"properties":{"name":"斤酷掠妖祸"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71588028401948,43.442055130438646]},"properties":{"name":"侍乙妨贪挣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71721666322901,43.32562249083662]},"properties":{"name":"汪尿莉悬唇"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67841066689653,43.34185192725603]},"properties":{"name":"翰仓轨枚盐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73531620540507,43.36415708253743]},"properties":{"name":"览傅帅庙芬"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72425220806053,43.351560221312894]},"properties":{"name":"屏寺胖璃愚"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68594161715737,43.409583613235085]},"properties":{"name":"滴疏萧姿颤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73655883818446,43.33441638119229]},"properties":{"name":"丑劣柯寸扔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6752721298426,43.32966752267923]},"properties":{"name":"盯辱匹俱辨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6904923700813,43.327341256271836]},"properties":{"name":"饿蜂哦腔郁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78054278610125,43.394614279098086]},"properties":{"name":"溃谨糟葛苗"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74335729998438,43.40451717893259]},"properties":{"name":"肠忌溜鸿爵"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7569937171229,43.44689633183004]},"properties":{"name":"鹏鹰笼丘桂"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8360965058364,43.40171500153021]},"properties":{"name":"滋聊挡纲肌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71513986618811,43.43457019529001]},"properties":{"name":"茨壳痕碗穴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7952919780746,43.44165282752506]},"properties":{"name":"膀卓贤卧膜"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68173948092863,43.44800154193802]},"properties":{"name":"毅锦欠哩函"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81701665551464,43.389228319829925]},"properties":{"name":"茫昂薛皱夸"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77895341666135,43.394861202037575]},"properties":{"name":"豫胃舌剥傲"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75351540071551,43.4219368264491]},"properties":{"name":"拾窝睁携陵"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81052088748493,43.424322611524985]},"properties":{"name":"哼棉晴铃填"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69578376327627,43.37844309252077]},"properties":{"name":"饲渴吻扮逆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78368098309056,43.388133327996385]},"properties":{"name":"脆喘罩卜炉"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70213684589817,43.400458123228596]},"properties":{"name":"柴愉绳胎蓄"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75735508441994,43.33521557571769]},"properties":{"name":"眠竭喂傻慕"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7165813035499,43.449836563440115]},"properties":{"name":"浑奸扇柜悦"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67118947948529,43.32648454903178]},"properties":{"name":"拦诞饱乾泡"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73583864324974,43.40494189377406]},"properties":{"name":"贼亭夕爹酬"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7592708719767,43.37376037403405]},"properties":{"name":"儒姻卵氛泄"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81937170824858,43.42605432516992]},"properties":{"name":"杆挨僧蜜吟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82074352007112,43.36580652869758]},"properties":{"name":"猩遂狭肖甜"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7436711727496,43.372504265635634]},"properties":{"name":"霞驳裕顽於"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67000504535372,43.38201541721379]},"properties":{"name":"摘矮秒卿畜"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77440106794256,43.37650136295896]},"properties":{"name":"咽披辅勾盆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68061636193306,43.33728440664312]},"properties":{"name":"疆赌塑畏吵"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66503257911336,43.38062935022041]},"properties":{"name":"囊嗯泊肺骤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70403178494416,43.36877483548238]},"properties":{"name":"缠冈羞瞪吊"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75963805364609,43.40329643349728]},"properties":{"name":"贾漏斑涛悠"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67318084901217,43.42404258860719]},"properties":{"name":"鹿俘锡卑葬"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7664044443527,43.43862549454096]},"properties":{"name":"铭滩嫁催璇"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76699292336798,43.37550577167776]},"properties":{"name":"翅盒蛮矣潘"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73291945020628,43.3674976351091]},"properties":{"name":"歧赐鲍锅廊"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80291150700305,43.3459863032626]},"properties":{"name":"拆灌勉盲宰"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67799156621277,43.336989953022176]},"properties":{"name":"佐啥胀扯禧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75967314468016,43.44864855947221]},"properties":{"name":"辽抹筒棋裤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77895542262922,43.37606635807544]},"properties":{"name":"唉朴咐孕誓"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74354294751629,43.401586326632675]},"properties":{"name":"喉妄拘链驰"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71739241962405,43.32949392714524]},"properties":{"name":"栏逝窃艳臭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78738846011674,43.347806614069704]},"properties":{"name":"纤玑棵趁匠"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68105058004221,43.384474385118985]},"properties":{"name":"盈翁愁瞬婴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74292700712704,43.43924277428903]},"properties":{"name":"孝颈倘浙谅"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72330992960815,43.44448236676838]},"properties":{"name":"蔽畅赠妮莎"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80374649087389,43.423236258780996]},"properties":{"name":"尉冻跪闯葡"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7843960910941,43.37735348316894]},"properties":{"name":"後厨鸭颠遮"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77111562727168,43.377397868656345]},"properties":{"name":"谊圳吁仑辟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75822663806775,43.403893701294244]},"properties":{"name":"瘤嫂陀框谭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76760909818859,43.365752206325446]},"properties":{"name":"亨钦庸歉芝"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67688920728415,43.35171094097246]},"properties":{"name":"吼甫衫摊宴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81636243364756,43.37912531315445]},"properties":{"name":"嘱衷娇陕矩"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76577508596074,43.34670065336113]},"properties":{"name":"浦讶耸裸碧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6734781883506,43.339763982233066]},"properties":{"name":"摧薪淋耻胶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67229678701096,43.37951866037416]},"properties":{"name":"屠鹅饥盼脖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.67370422785643,43.33477495020771]},"properties":{"name":"虹翠崩账萍"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72454219260635,43.38020083184419]},"properties":{"name":"逢赚撑翔倡"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.8127777939444,43.33011026808491]},"properties":{"name":"绵猴枯巫昭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82476845378096,43.345917052691725]},"properties":{"name":"怔渊凑溪蠢"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.79458199273176,43.37007854115475]},"properties":{"name":"禅阐旺寓藤"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77530815590762,43.3745956095525]},"properties":{"name":"匪伞碑挪琼"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81943466645043,43.38442804867082]},"properties":{"name":"脂谎慨菩萄"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7111729135977,43.41659485703934]},"properties":{"name":"狮掘抄岭晕"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81519536270207,43.35551688679179]},"properties":{"name":"逮砍掏狄晰"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80141816757077,43.373296346452975]},"properties":{"name":"罕挽脾舟痴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73913970139529,43.36766474919193]},"properties":{"name":"蔡剪脊弓懒"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68861229532558,43.447177904904464]},"properties":{"name":"叉拐喃僚捐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70887924537146,43.36989440125427]},"properties":{"name":"姊骚拓歪粘"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72727783404389,43.43862238253905]},"properties":{"name":"柄坑陌窄湘"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80459063938179,43.337120260313164]},"properties":{"name":"兆崖骄刹鞭"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76679035695634,43.335932458145194]},"properties":{"name":"芒筋聘钩棍"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6765199485153,43.33916485424814]},"properties":{"name":"嚷腺弦焰耍"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80245708208167,43.40137212585799]},"properties":{"name":"俯厘愣厦恳"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77978667389289,43.32653195985271]},"properties":{"name":"饶钉寡憾摔"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.83554141642708,43.36208645578587]},"properties":{"name":"叠惹喻谱愧"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78226428764992,43.45214674512842]},"properties":{"name":"煌徽溶坠煞"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68707804799033,43.389474442588785]},"properties":{"name":"巾滥洒堵瓷"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80216082023526,43.35618116364861]},"properties":{"name":"咒姨棒郡浴"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70300949696957,43.338949270378016]},"properties":{"name":"媚稣淮哎屁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68015060855032,43.40296808063941]},"properties":{"name":"漆淫巢吩撰"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68989328476619,43.39232508258088]},"properties":{"name":"啸滞玫硕钓"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71598403078042,43.38262581866229]},"properties":{"name":"蝶膝姚茂躯"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71912615539532,43.452016174114505]},"properties":{"name":"吏猿寨恕渠"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74577920821866,43.36541829164119]},"properties":{"name":"戚辰舶颁惶"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72712613526619,43.39671896203547]},"properties":{"name":"狐讽笨袍嘲"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.70664604422745,43.34278992771991]},"properties":{"name":"啡泼衔倦涵"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.68493815003421,43.39354964761166]},"properties":{"name":"雀旬僵撕肢"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75455462754235,43.36155500394566]},"properties":{"name":"垄夷逸茅侨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77873016450667,43.366122899933224]},"properties":{"name":"舆窑涅蒲谦"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80791232048796,43.33394744370124]},"properties":{"name":"杭噢弊勋刮"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6997965679875,43.40806371864969]},"properties":{"name":"郊凄捧浸砖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66838019631632,43.35606605074788]},"properties":{"name":"鼎篮蒸饼亩"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.7069571753982,43.34266177851345]},"properties":{"name":"肾陡爪兔殷"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71273809195645,43.35495186858789]},"properties":{"name":"贞荐哑炭坟"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73519729235159,43.4163297000404]},"properties":{"name":"眨搏咳拢舅"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71910739744908,43.45181104214278]},"properties":{"name":"昧擅爽咖搁"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.72594206510075,43.33440744203501]},"properties":{"name":"禄雌哨巩绢"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69001132062567,43.36003830098169]},"properties":{"name":"螺裹昔轩谬"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.76804370175068,43.37362703079163]},"properties":{"name":"谍龟媳姜瞎"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77043742133355,43.325828830544545]},"properties":{"name":"冤鸦蓬巷琳"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66452596219278,43.377082454312294]},"properties":{"name":"栽沾诈斋瞒"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78052164197288,43.39882235229331]},"properties":{"name":"彪厄咨纺罐"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.74768201610368,43.34347333416988]},"properties":{"name":"桶壤糕颂膨"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77257029502562,43.353659062164375]},"properties":{"name":"谐垒咕隙辣"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82229997433387,43.36602478810474]},"properties":{"name":"绑宠嘿兑霉"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77697418935259,43.39302377957722]},"properties":{"name":"挫稽辐乞纱"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82932283412902,43.344460090153106]},"properties":{"name":"裙嘻哇绣杖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.75834764860247,43.43886099129135]},"properties":{"name":"塘衍轴攀膊"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.71397262576284,43.43847474002368]},"properties":{"name":"譬斌祈踢肆"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.78490097957456,43.41708495277058]},"properties":{"name":"坎轿棚泣屡"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.82596603943784,43.37280499147228]},"properties":{"name":"躁邱凰溢椎"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80376452461223,43.41299359444341]},"properties":{"name":"砸趟帘帆栖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.73771479115749,43.38964563062126]},"properties":{"name":"窜丸斩堤塌"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.77914081236031,43.36200438697811]},"properties":{"name":"贩厢掀喀乖"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6885010122187,43.3536150480067]},"properties":{"name":"谜捏阎滨虏"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.6809883295955,43.4279302964151]},"properties":{"name":"匙芦苹卸沼"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.66638088219406,43.356600228775875]},"properties":{"name":"钥株祷剖熙"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.81508020435649,43.44503598067335]},"properties":{"name":"哗劈怯棠胳"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.80562566482058,43.441746093418764]},"properties":{"name":"桩瑰娱娶沫"}},{"type":"Feature","geometry":{"type":"Point","coordinates":[-70.69680728921867,43.37119072206014]},"properties":{"name":"嗓蹲焚淘嫩"}}]} \ No newline at end of file diff --git a/test/integration/data/feature.geojson b/test/integration/data/feature.geojson new file mode 100644 index 00000000000..e1f58b06a5b --- /dev/null +++ b/test/integration/data/feature.geojson @@ -0,0 +1,707 @@ +{ + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -77.066104, + 38.910203 + ], + [ + -77.066106, + 38.910321 + ], + [ + -77.066112, + 38.910758 + ], + [ + -77.065249, + 38.910775 + ], + [ + -77.065178, + 38.910793 + ], + [ + -77.065139, + 38.910804 + ], + [ + -77.064904, + 38.91036 + ], + [ + -77.064855, + 38.910268 + ], + [ + -77.064621, + 38.909825 + ], + [ + -77.06459, + 38.909766 + ], + [ + -77.064342, + 38.909298 + ], + [ + -77.064281, + 38.909182 + ], + [ + -77.064201, + 38.909226 + ], + [ + -77.064175, + 38.909235 + ], + [ + -77.064149, + 38.909241 + ], + [ + -77.064122, + 38.909244 + ], + [ + -77.06336, + 38.90926 + ], + [ + -77.061442, + 38.909288 + ], + [ + -77.060801, + 38.909297 + ], + [ + -77.059237, + 38.909315 + ], + [ + -77.058186, + 38.90933 + ], + [ + -77.057113, + 38.909343 + ], + [ + -77.055623, + 38.909368 + ], + [ + -77.054762, + 38.909377 + ], + [ + -77.053951, + 38.909389 + ], + [ + -77.053904, + 38.909393 + ], + [ + -77.053858, + 38.909399 + ], + [ + -77.053813, + 38.909408 + ], + [ + -77.052833, + 38.909635 + ], + [ + -77.052799, + 38.909642 + ], + [ + -77.052772, + 38.909645 + ], + [ + -77.052692, + 38.90965 + ], + [ + -77.052443, + 38.909649 + ], + [ + -77.05096, + 38.909639 + ], + [ + -77.050327, + 38.909634 + ], + [ + -77.049545, + 38.909631 + ], + [ + -77.049533, + 38.909635 + ], + [ + -77.049341, + 38.909635 + ], + [ + -77.048903, + 38.909635 + ], + [ + -77.048797, + 38.909634 + ], + [ + -77.04773, + 38.909639 + ], + [ + -77.046632, + 38.90964 + ], + [ + -77.045758, + 38.909641 + ], + [ + -77.044877, + 38.909643 + ], + [ + -77.044578, + 38.909641 + ], + [ + -77.044493, + 38.909635 + ], + [ + -77.04442, + 38.909626 + ], + [ + -77.044345, + 38.909608 + ], + [ + -77.044283, + 38.909578 + ], + [ + -77.044249, + 38.909541 + ], + [ + -77.044212, + 38.909496 + ], + [ + -77.044199, + 38.909458 + ], + [ + -77.044182, + 38.909421 + ], + [ + -77.044162, + 38.909385 + ], + [ + -77.04414, + 38.90935 + ], + [ + -77.044113, + 38.909313 + ], + [ + -77.044083, + 38.90928 + ], + [ + -77.044051, + 38.909247 + ], + [ + -77.044018, + 38.909165 + ], + [ + -77.044018, + 38.909117 + ], + [ + -77.044029, + 38.909071 + ], + [ + -77.044037, + 38.909038 + ], + [ + -77.044058, + 38.908981 + ], + [ + -77.043996, + 38.909021 + ], + [ + -77.043919, + 38.909052 + ], + [ + -77.043854, + 38.909067 + ], + [ + -77.043798, + 38.909073 + ], + [ + -77.043755, + 38.909075 + ], + [ + -77.043689, + 38.909056 + ], + [ + -77.043656, + 38.909048 + ], + [ + -77.04359, + 38.909036 + ], + [ + -77.043527, + 38.909028 + ], + [ + -77.043486, + 38.909026 + ], + [ + -77.043444, + 38.909025 + ], + [ + -77.043402, + 38.909026 + ], + [ + -77.043344, + 38.909029 + ], + [ + -77.043286, + 38.909037 + ], + [ + -77.043263, + 38.909041 + ], + [ + -77.04323, + 38.909047 + ], + [ + -77.043194, + 38.909056 + ], + [ + -77.043022, + 38.909118 + ], + [ + -77.042995, + 38.909132 + ], + [ + -77.04296, + 38.909151 + ], + [ + -77.042938, + 38.909165 + ], + [ + -77.042915, + 38.90918 + ], + [ + -77.042875, + 38.909209 + ], + [ + -77.04284, + 38.909239 + ], + [ + -77.042823, + 38.909255 + ], + [ + -77.042791, + 38.909288 + ], + [ + -77.042774, + 38.909307 + ], + [ + -77.042712, + 38.909315 + ], + [ + -77.042637, + 38.909322 + ], + [ + -77.042551, + 38.909317 + ], + [ + -77.042422, + 38.909299 + ], + [ + -77.041676, + 38.90903 + ], + [ + -77.039935, + 38.908425 + ], + [ + -77.038503, + 38.907925 + ], + [ + -77.037656, + 38.907632 + ], + [ + -77.037477, + 38.907534 + ], + [ + -77.037317, + 38.907438 + ], + [ + -77.037238, + 38.90739 + ], + [ + -77.037121, + 38.907315 + ], + [ + -77.036997, + 38.907233 + ], + [ + -77.036875, + 38.907137 + ], + [ + -77.036833, + 38.907094 + ], + [ + -77.036817, + 38.907081 + ], + [ + -77.036795, + 38.907068 + ], + [ + -77.036774, + 38.907058 + ], + [ + -77.036767, + 38.907052 + ], + [ + -77.036712, + 38.907034 + ], + [ + -77.03669, + 38.907028 + ], + [ + -77.036643, + 38.907022 + ], + [ + -77.03661, + 38.907021 + ], + [ + -77.03653, + 38.907021 + ], + [ + -77.036474, + 38.907021 + ], + [ + -77.03643, + 38.907025 + ], + [ + -77.03639, + 38.907033 + ], + [ + -77.036295, + 38.907058 + ], + [ + -77.036005, + 38.906995 + ], + [ + -77.035439, + 38.906869 + ], + [ + -77.035142, + 38.906757 + ], + [ + -77.035049, + 38.906725 + ], + [ + -77.0348, + 38.906641 + ], + [ + -77.034673, + 38.906594 + ], + [ + -77.034568, + 38.906558 + ], + [ + -77.034059, + 38.906382 + ], + [ + -77.033931, + 38.906338 + ], + [ + -77.032623, + 38.905883 + ], + [ + -77.03129, + 38.905426 + ], + [ + -77.030031, + 38.904982 + ], + [ + -77.029623, + 38.904835 + ], + [ + -77.028082, + 38.904304 + ], + [ + -77.027679, + 38.904167 + ], + [ + -77.02705, + 38.903949 + ], + [ + -77.026409, + 38.903729 + ], + [ + -77.025984, + 38.903579 + ], + [ + -77.024321, + 38.902997 + ], + [ + -77.024139, + 38.902954 + ], + [ + -77.023952, + 38.902954 + ], + [ + -77.023188, + 38.902956 + ], + [ + -77.022699, + 38.902958 + ], + [ + -77.021917, + 38.90296 + ], + [ + -77.021918, + 38.902902 + ], + [ + -77.021918, + 38.902521 + ], + [ + -77.019907, + 38.902521 + ], + [ + -77.018928, + 38.902521 + ], + [ + -77.016176, + 38.902519 + ], + [ + -77.015177, + 38.902518 + ], + [ + -77.013722, + 38.902514 + ], + [ + -77.012171, + 38.902516 + ], + [ + -77.011237, + 38.902516 + ], + [ + -77.009846, + 38.902515 + ], + [ + -77.009117, + 38.902514 + ], + [ + -77.009126, + 38.901346 + ], + [ + -77.00912, + 38.900203 + ], + [ + -77.009062, + 38.900203 + ], + [ + -77.008975, + 38.900203 + ], + [ + -77.008004, + 38.900198 + ], + [ + -77.00631, + 38.900193 + ], + [ + -77.005531, + 38.900197 + ], + [ + -77.002929, + 38.9002 + ], + [ + -77.002038, + 38.900203 + ], + [ + -77.001892, + 38.900203 + ], + [ + -77.000571, + 38.900205 + ], + [ + -76.999507, + 38.900204 + ], + [ + -76.998442, + 38.900204 + ], + [ + -76.998369, + 38.900204 + ], + [ + -76.996167, + 38.900205 + ], + [ + -76.994961, + 38.900203 + ], + [ + -76.994962, + 38.899748 + ], + [ + -76.994961, + 38.899626 + ], + [ + -76.994961, + 38.899367 + ], + [ + -76.994961, + 38.898908 + ], + [ + -76.994962, + 38.898447 + ] + ] + }, + "properties": { + "name": "P Street Northwest - Massachusetts Avenue Northwest" + } +} diff --git a/test/integration/data/invalid.geojson b/test/integration/data/invalid.geojson new file mode 100644 index 00000000000..d81cc0710eb --- /dev/null +++ b/test/integration/data/invalid.geojson @@ -0,0 +1 @@ +42 diff --git a/test/integration/data/linestring.geojson b/test/integration/data/linestring.geojson new file mode 100644 index 00000000000..0075931f29c --- /dev/null +++ b/test/integration/data/linestring.geojson @@ -0,0 +1,701 @@ +{ + "type": "LineString", + "coordinates": [ + [ + -77.066104, + 38.910203 + ], + [ + -77.066106, + 38.910321 + ], + [ + -77.066112, + 38.910758 + ], + [ + -77.065249, + 38.910775 + ], + [ + -77.065178, + 38.910793 + ], + [ + -77.065139, + 38.910804 + ], + [ + -77.064904, + 38.91036 + ], + [ + -77.064855, + 38.910268 + ], + [ + -77.064621, + 38.909825 + ], + [ + -77.06459, + 38.909766 + ], + [ + -77.064342, + 38.909298 + ], + [ + -77.064281, + 38.909182 + ], + [ + -77.064201, + 38.909226 + ], + [ + -77.064175, + 38.909235 + ], + [ + -77.064149, + 38.909241 + ], + [ + -77.064122, + 38.909244 + ], + [ + -77.06336, + 38.90926 + ], + [ + -77.061442, + 38.909288 + ], + [ + -77.060801, + 38.909297 + ], + [ + -77.059237, + 38.909315 + ], + [ + -77.058186, + 38.90933 + ], + [ + -77.057113, + 38.909343 + ], + [ + -77.055623, + 38.909368 + ], + [ + -77.054762, + 38.909377 + ], + [ + -77.053951, + 38.909389 + ], + [ + -77.053904, + 38.909393 + ], + [ + -77.053858, + 38.909399 + ], + [ + -77.053813, + 38.909408 + ], + [ + -77.052833, + 38.909635 + ], + [ + -77.052799, + 38.909642 + ], + [ + -77.052772, + 38.909645 + ], + [ + -77.052692, + 38.90965 + ], + [ + -77.052443, + 38.909649 + ], + [ + -77.05096, + 38.909639 + ], + [ + -77.050327, + 38.909634 + ], + [ + -77.049545, + 38.909631 + ], + [ + -77.049533, + 38.909635 + ], + [ + -77.049341, + 38.909635 + ], + [ + -77.048903, + 38.909635 + ], + [ + -77.048797, + 38.909634 + ], + [ + -77.04773, + 38.909639 + ], + [ + -77.046632, + 38.90964 + ], + [ + -77.045758, + 38.909641 + ], + [ + -77.044877, + 38.909643 + ], + [ + -77.044578, + 38.909641 + ], + [ + -77.044493, + 38.909635 + ], + [ + -77.04442, + 38.909626 + ], + [ + -77.044345, + 38.909608 + ], + [ + -77.044283, + 38.909578 + ], + [ + -77.044249, + 38.909541 + ], + [ + -77.044212, + 38.909496 + ], + [ + -77.044199, + 38.909458 + ], + [ + -77.044182, + 38.909421 + ], + [ + -77.044162, + 38.909385 + ], + [ + -77.04414, + 38.90935 + ], + [ + -77.044113, + 38.909313 + ], + [ + -77.044083, + 38.90928 + ], + [ + -77.044051, + 38.909247 + ], + [ + -77.044018, + 38.909165 + ], + [ + -77.044018, + 38.909117 + ], + [ + -77.044029, + 38.909071 + ], + [ + -77.044037, + 38.909038 + ], + [ + -77.044058, + 38.908981 + ], + [ + -77.043996, + 38.909021 + ], + [ + -77.043919, + 38.909052 + ], + [ + -77.043854, + 38.909067 + ], + [ + -77.043798, + 38.909073 + ], + [ + -77.043755, + 38.909075 + ], + [ + -77.043689, + 38.909056 + ], + [ + -77.043656, + 38.909048 + ], + [ + -77.04359, + 38.909036 + ], + [ + -77.043527, + 38.909028 + ], + [ + -77.043486, + 38.909026 + ], + [ + -77.043444, + 38.909025 + ], + [ + -77.043402, + 38.909026 + ], + [ + -77.043344, + 38.909029 + ], + [ + -77.043286, + 38.909037 + ], + [ + -77.043263, + 38.909041 + ], + [ + -77.04323, + 38.909047 + ], + [ + -77.043194, + 38.909056 + ], + [ + -77.043022, + 38.909118 + ], + [ + -77.042995, + 38.909132 + ], + [ + -77.04296, + 38.909151 + ], + [ + -77.042938, + 38.909165 + ], + [ + -77.042915, + 38.90918 + ], + [ + -77.042875, + 38.909209 + ], + [ + -77.04284, + 38.909239 + ], + [ + -77.042823, + 38.909255 + ], + [ + -77.042791, + 38.909288 + ], + [ + -77.042774, + 38.909307 + ], + [ + -77.042712, + 38.909315 + ], + [ + -77.042637, + 38.909322 + ], + [ + -77.042551, + 38.909317 + ], + [ + -77.042422, + 38.909299 + ], + [ + -77.041676, + 38.90903 + ], + [ + -77.039935, + 38.908425 + ], + [ + -77.038503, + 38.907925 + ], + [ + -77.037656, + 38.907632 + ], + [ + -77.037477, + 38.907534 + ], + [ + -77.037317, + 38.907438 + ], + [ + -77.037238, + 38.90739 + ], + [ + -77.037121, + 38.907315 + ], + [ + -77.036997, + 38.907233 + ], + [ + -77.036875, + 38.907137 + ], + [ + -77.036833, + 38.907094 + ], + [ + -77.036817, + 38.907081 + ], + [ + -77.036795, + 38.907068 + ], + [ + -77.036774, + 38.907058 + ], + [ + -77.036767, + 38.907052 + ], + [ + -77.036712, + 38.907034 + ], + [ + -77.03669, + 38.907028 + ], + [ + -77.036643, + 38.907022 + ], + [ + -77.03661, + 38.907021 + ], + [ + -77.03653, + 38.907021 + ], + [ + -77.036474, + 38.907021 + ], + [ + -77.03643, + 38.907025 + ], + [ + -77.03639, + 38.907033 + ], + [ + -77.036295, + 38.907058 + ], + [ + -77.036005, + 38.906995 + ], + [ + -77.035439, + 38.906869 + ], + [ + -77.035142, + 38.906757 + ], + [ + -77.035049, + 38.906725 + ], + [ + -77.0348, + 38.906641 + ], + [ + -77.034673, + 38.906594 + ], + [ + -77.034568, + 38.906558 + ], + [ + -77.034059, + 38.906382 + ], + [ + -77.033931, + 38.906338 + ], + [ + -77.032623, + 38.905883 + ], + [ + -77.03129, + 38.905426 + ], + [ + -77.030031, + 38.904982 + ], + [ + -77.029623, + 38.904835 + ], + [ + -77.028082, + 38.904304 + ], + [ + -77.027679, + 38.904167 + ], + [ + -77.02705, + 38.903949 + ], + [ + -77.026409, + 38.903729 + ], + [ + -77.025984, + 38.903579 + ], + [ + -77.024321, + 38.902997 + ], + [ + -77.024139, + 38.902954 + ], + [ + -77.023952, + 38.902954 + ], + [ + -77.023188, + 38.902956 + ], + [ + -77.022699, + 38.902958 + ], + [ + -77.021917, + 38.90296 + ], + [ + -77.021918, + 38.902902 + ], + [ + -77.021918, + 38.902521 + ], + [ + -77.019907, + 38.902521 + ], + [ + -77.018928, + 38.902521 + ], + [ + -77.016176, + 38.902519 + ], + [ + -77.015177, + 38.902518 + ], + [ + -77.013722, + 38.902514 + ], + [ + -77.012171, + 38.902516 + ], + [ + -77.011237, + 38.902516 + ], + [ + -77.009846, + 38.902515 + ], + [ + -77.009117, + 38.902514 + ], + [ + -77.009126, + 38.901346 + ], + [ + -77.00912, + 38.900203 + ], + [ + -77.009062, + 38.900203 + ], + [ + -77.008975, + 38.900203 + ], + [ + -77.008004, + 38.900198 + ], + [ + -77.00631, + 38.900193 + ], + [ + -77.005531, + 38.900197 + ], + [ + -77.002929, + 38.9002 + ], + [ + -77.002038, + 38.900203 + ], + [ + -77.001892, + 38.900203 + ], + [ + -77.000571, + 38.900205 + ], + [ + -76.999507, + 38.900204 + ], + [ + -76.998442, + 38.900204 + ], + [ + -76.998369, + 38.900204 + ], + [ + -76.996167, + 38.900205 + ], + [ + -76.994961, + 38.900203 + ], + [ + -76.994962, + 38.899748 + ], + [ + -76.994961, + 38.899626 + ], + [ + -76.994961, + 38.899367 + ], + [ + -76.994961, + 38.898908 + ], + [ + -76.994962, + 38.898447 + ] + ] +} diff --git a/test/integration/data/malformed.geojson b/test/integration/data/malformed.geojson new file mode 100644 index 00000000000..cf22d738365 --- /dev/null +++ b/test/integration/data/malformed.geojson @@ -0,0 +1,7 @@ +{ + "type": "Model", + "geometry": [ -77.050327, 38.909634 ], + "properties": { + "name": "P Street Northwest - Massachusetts Avenue Northwest" + } +} diff --git a/test/integration/data/places.geojson b/test/integration/data/places.geojson new file mode 100644 index 00000000000..fc8440aec83 --- /dev/null +++ b/test/integration/data/places.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"scalerank":2,"name":"Niagara Falls","comment":null,"name_alt":null,"lat_y":43.087653,"long_x":-79.044073,"region":"North America","subregion":null,"featureclass":"waterfall"},"geometry":{"type":"Point","coordinates":[-79.04411780507252,43.08771393436908]}},{"type":"Feature","properties":{"scalerank":2,"name":"Salto Angel","comment":null,"name_alt":"Angel Falls","lat_y":5.686836,"long_x":-62.061848,"region":"South America","subregion":null,"featureclass":"waterfall"},"geometry":{"type":"Point","coordinates":[-62.06181800038502,5.686896063275327]}},{"type":"Feature","properties":{"scalerank":2,"name":"Iguazu Falls","comment":null,"name_alt":null,"lat_y":-25.568265,"long_x":-54.582842,"region":"South America","subregion":null,"featureclass":"waterfall"},"geometry":{"type":"Point","coordinates":[-54.58299719960377,-25.568291925005923]}},{"type":"Feature","properties":{"scalerank":3,"name":"Gees Gwardafuy","comment":null,"name_alt":null,"lat_y":11.812855,"long_x":51.235173,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[51.258313644180184,11.822028799226407]}},{"type":"Feature","properties":{"scalerank":3,"name":"Victoria Falls","comment":null,"name_alt":null,"lat_y":-17.77079,"long_x":25.460133,"region":"Africa","subregion":null,"featureclass":"waterfall"},"geometry":{"type":"Point","coordinates":[25.852793816021233,-17.928033135943423]}},{"type":"Feature","properties":{"scalerank":3,"name":"Wright I.","comment":null,"name_alt":null,"lat_y":-50.959168,"long_x":-72.995002,"region":"Antarctica","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[-116.89262854726002,-74.06670501094342]}},{"type":"Feature","properties":{"scalerank":3,"name":"Grant I.","comment":null,"name_alt":null,"lat_y":-50.959168,"long_x":-72.995002,"region":"Antarctica","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[-131.48540198476002,-74.48272063594342]}},{"type":"Feature","properties":{"scalerank":3,"name":"Newman I.","comment":null,"name_alt":null,"lat_y":-50.959168,"long_x":-72.995002,"region":"Antarctica","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[-145.68681800038502,-75.59185149531842]}},{"type":"Feature","properties":{"scalerank":3,"name":"Dean I.","comment":null,"name_alt":null,"lat_y":-50.959168,"long_x":-72.995002,"region":"Antarctica","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[-127.63438880116627,-74.50066497188092]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape Canaveral","comment":null,"name_alt":null,"lat_y":28.483713,"long_x":-80.534941,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-80.53625603636821,28.473056814472134]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape Mendocino","comment":null,"name_alt":null,"lat_y":40.350222,"long_x":-124.323474,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-124.39201745043425,40.44222065537283]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cabo San Lucas","comment":null,"name_alt":null,"lat_y":22.887711,"long_x":-109.969843,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-109.96983801991627,22.887762762494077]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape Churchill","comment":null,"name_alt":null,"lat_y":58.752014,"long_x":-93.182023,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-93.18211829335377,58.75208161015033]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape Cod","comment":null,"name_alt":null,"lat_y":41.734867,"long_x":-69.964865,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-70.03687833567446,41.9914589934385]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape May","comment":null,"name_alt":null,"lat_y":37.2017,"long_x":-75.926791,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-74.95121933164988,38.92969645987068]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cabo de Hornos","comment":null,"name_alt":"Cape Horn","lat_y":-55.862824,"long_x":-67.169425,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-67.16942298085377,-55.86284758906842]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape of Good Hope","comment":null,"name_alt":null,"lat_y":-34.307311,"long_x":18.441206,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[18.441294792583733,-34.30718352656842]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape Palmas","comment":null,"name_alt":null,"lat_y":4.373924,"long_x":-7.457356,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-7.457386848041267,4.373968817181577]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cape Verde","comment":null,"name_alt":null,"lat_y":14.732312,"long_x":-17.471776,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-17.471730109760017,14.732489324994077]}},{"type":"Feature","properties":{"scalerank":3,"name":"Cap Bon","comment":null,"name_alt":null,"lat_y":37.073954,"long_x":11.024061,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[11.024180534771233,37.07398102421283]}},{"type":"Feature","properties":{"scalerank":3,"name":"Oceanic pole of inaccessibility","comment":null,"name_alt":null,"lat_y":-48.865032,"long_x":-123.401986,"region":"Seven seas (open ocean)","subregion":"South Pacific Ocean","featureclass":"pole"},"geometry":{"type":"Point","coordinates":[-123.40202796132252,-48.86504485469342]}},{"type":"Feature","properties":{"scalerank":3,"name":"South Magnetic Pole 2005 (est)","comment":null,"name_alt":null,"lat_y":-48.865032,"long_x":-123.401986,"region":"Antarctica","subregion":"Southern Ocean","featureclass":"pole"},"geometry":{"type":"Point","coordinates":[137.85425865977123,-64.51824309688092]}},{"type":"Feature","properties":{"scalerank":3,"name":"North Magnetic Pole 2005 (est)","comment":null,"name_alt":null,"lat_y":-48.865032,"long_x":-123.401986,"region":"Seven seas (open ocean)","subregion":"Arctic Ocean","featureclass":"pole"},"geometry":{"type":"Point","coordinates":[-114.40569007069752,82.71008942265033]}},{"type":"Feature","properties":{"scalerank":4,"name":"Lands End","comment":null,"name_alt":null,"lat_y":50.069677,"long_x":-5.668629,"region":"Europe","subregion":"British Isles","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-5.668629523822517,50.06970856327533]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape York","comment":null,"name_alt":null,"lat_y":76.218919,"long_x":-68.218612,"region":"North America","subregion":"Greenland","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-68.21861731679127,76.21887848515033]}},{"type":"Feature","properties":{"scalerank":4,"name":"Nunap Isua","comment":null,"name_alt":"Cape Farewell","lat_y":59.862583,"long_x":-43.90088,"region":"North America","subregion":"Greenland","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-43.90080725819752,59.86267731327533]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape Vohimena","comment":null,"name_alt":null,"lat_y":-25.546355,"long_x":45.158683,"region":"Africa","subregion":"Indian Ocean","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[45.15870201914623,-25.546319268755923]}},{"type":"Feature","properties":{"scalerank":4,"name":"Vavau","comment":null,"name_alt":null,"lat_y":-18.590062,"long_x":-173.976769,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-173.97673499257252,-18.590020440630923]}},{"type":"Feature","properties":{"scalerank":4,"name":"I. de Pascua","comment":null,"name_alt":"Easter I.","lat_y":-27.102117,"long_x":-109.367953,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-109.36790930897877,-27.102227471880923]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape Agulhas","comment":null,"name_alt":null,"lat_y":-34.801182,"long_x":19.993472,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[19.993418816021233,-34.80108001094342]}},{"type":"Feature","properties":{"scalerank":4,"name":"Plain of Jars","comment":null,"name_alt":null,"lat_y":20.550709,"long_x":101.890532,"region":"Asia","subregion":null,"featureclass":"plain"},"geometry":{"type":"Point","coordinates":[101.89063561289623,20.550909735150327]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cabo Corrientes","comment":null,"name_alt":null,"lat_y":20.409471,"long_x":-105.683581,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-105.67795873874799,20.420365114940253]}},{"type":"Feature","properties":{"scalerank":4,"name":"Pt. Eugenia","comment":null,"name_alt":null,"lat_y":27.861925,"long_x":-115.07629,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-115.04623945046137,27.842887092585283]}},{"type":"Feature","properties":{"scalerank":4,"name":"Point Conception","comment":null,"name_alt":null,"lat_y":34.582313,"long_x":-120.659016,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-120.46360036202867,34.46027592467621]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape Hatteras","comment":null,"name_alt":null,"lat_y":35.437762,"long_x":-75.450543,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-75.54032952413311,35.24475263812895]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape Sable","comment":null,"name_alt":null,"lat_y":25.124896,"long_x":-81.090442,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-81.09044348866627,25.124762274212827]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape Hope","comment":null,"name_alt":null,"lat_y":68.35638,"long_x":-166.815582,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-166.81321268769543,68.35380207543972]}},{"type":"Feature","properties":{"scalerank":4,"name":"Point Barrow","comment":null,"name_alt":null,"lat_y":71.372637,"long_x":-156.615894,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-156.4719492091668,71.40589128763096]}},{"type":"Feature","properties":{"scalerank":4,"name":"Punta Negra","comment":null,"name_alt":null,"lat_y":-5.948875,"long_x":-81.108252,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-81.10832678944752,-5.948663018755923]}},{"type":"Feature","properties":{"scalerank":4,"name":"Punta Lavapié","comment":null,"name_alt":null,"lat_y":-37.262867,"long_x":-73.606377,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-73.60304396243782,-37.17120002933805]}},{"type":"Feature","properties":{"scalerank":4,"name":"Punta Galera","comment":null,"name_alt":null,"lat_y":0.731221,"long_x":-80.062205,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-80.06212317616627,0.731207586712827]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cap Lopez","comment":null,"name_alt":null,"lat_y":-0.604761,"long_x":8.726423,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[8.727299789450319,-0.615086490513119]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cape Bobaomby","comment":null,"name_alt":null,"lat_y":-11.966598,"long_x":49.262904,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[49.26282799570873,-11.966485284380923]}},{"type":"Feature","properties":{"scalerank":4,"name":"Cap Blanc","comment":null,"name_alt":null,"lat_y":20.822108,"long_x":-17.052856,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-17.052906867572517,20.822088934369077]}},{"type":"Feature","properties":{"scalerank":5,"name":"South West Cape","comment":null,"name_alt":null,"lat_y":-43.510984,"long_x":146.054227,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[146.03379804609568,-43.5404025683706]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Howe","comment":null,"name_alt":null,"lat_y":-37.488775,"long_x":149.95853,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[149.95838463633373,-37.48894622188092]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Otway","comment":null,"name_alt":null,"lat_y":-38.857622,"long_x":143.565403,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[143.537005108191,-38.85472383068997]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Jaffa","comment":null,"name_alt":null,"lat_y":-36.944244,"long_x":139.690866,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[139.68061977964746,-36.95624316107086]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Carnot","comment":null,"name_alt":null,"lat_y":-34.920233,"long_x":135.656027,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[135.65378326897053,-34.93870859313661]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Byron","comment":null,"name_alt":null,"lat_y":-28.658282,"long_x":153.632849,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[153.62799176015545,-28.66197417050363]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Manifold","comment":null,"name_alt":null,"lat_y":-22.702081,"long_x":150.811228,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[150.81116783945873,-22.702080987505923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape York","comment":null,"name_alt":null,"lat_y":-10.710859,"long_x":142.522018,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[142.52173912852123,-10.710747979693423]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Melville","comment":null,"name_alt":null,"lat_y":-14.163629,"long_x":144.506417,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[144.50660240977123,-14.163506768755923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Arnhem","comment":null,"name_alt":null,"lat_y":-12.337984,"long_x":136.952429,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[136.91481885262823,-12.295662864626316]}},{"type":"Feature","properties":{"scalerank":5,"name":"West Cape Howe","comment":null,"name_alt":null,"lat_y":-35.104301,"long_x":117.597011,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[117.59693444102123,-35.10430266719342]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Leeuwin","comment":null,"name_alt":null,"lat_y":-34.297841,"long_x":115.10633,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[115.1280088910596,-34.328007092559645]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Pasley","comment":null,"name_alt":null,"lat_y":-33.929054,"long_x":123.517283,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[123.51722252695873,-33.92888762813092]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Londonderry","comment":null,"name_alt":null,"lat_y":-13.713856,"long_x":126.964514,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[126.94130045687105,-13.74290642667802]}},{"type":"Feature","properties":{"scalerank":5,"name":"Steep Point","comment":null,"name_alt":null,"lat_y":-26.16822,"long_x":113.169959,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[113.14519563289093,-26.157463616878637]}},{"type":"Feature","properties":{"scalerank":5,"name":"North West Cape","comment":null,"name_alt":null,"lat_y":-21.809776,"long_x":114.117534,"region":"Oceania","subregion":"Australia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[114.16010761213809,-21.801474697071743]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Gracias a Dios","comment":null,"name_alt":null,"lat_y":14.994242,"long_x":-83.15866,"region":"North America","subregion":"Central America","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-83.15874182851002,14.994208074994077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Brewster","comment":null,"name_alt":null,"lat_y":70.150754,"long_x":-22.122616,"region":"North America","subregion":"Greenland","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-22.122731086322517,70.15088532108783]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Morris Jesup","comment":null,"name_alt":null,"lat_y":83.626331,"long_x":-32.491541,"region":"North America","subregion":"Greenland","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-32.49150550038502,83.62628815311908]}},{"type":"Feature","properties":{"scalerank":5,"name":"Grmsey","comment":null,"name_alt":null,"lat_y":66.669359,"long_x":-18.251096,"region":"Europe","subregion":"Iceland","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-18.251088019916267,66.66937897343158]}},{"type":"Feature","properties":{"scalerank":5,"name":"Surtsey","comment":null,"name_alt":null,"lat_y":63.217764,"long_x":-20.434929,"region":"Europe","subregion":"Iceland","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-20.434803840228767,63.21771881718158]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cap Est","comment":null,"name_alt":null,"lat_y":-15.274849,"long_x":50.499889,"region":"Africa","subregion":"Indian Ocean","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[50.49976647227123,-15.274956964068423]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Cretin","comment":null,"name_alt":null,"lat_y":-6.637492,"long_x":147.852392,"region":"Oceania","subregion":"Melanesia","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[147.85242760508373,-6.637261651568423]}},{"type":"Feature","properties":{"scalerank":5,"name":"Îles Chesterfield","comment":null,"name_alt":null,"lat_y":-19.20447,"long_x":159.95171,"region":"Oceania","subregion":"Melanesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[159.95167076914623,-19.204644464068423]}},{"type":"Feature","properties":{"scalerank":5,"name":"Pagan","comment":null,"name_alt":null,"lat_y":18.119631,"long_x":145.785087,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[145.78492272227123,18.119635321087827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Wake I.","comment":null,"name_alt":null,"lat_y":19.303497,"long_x":166.63626,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[166.63624108164623,19.303595282025327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Tabiteuea","comment":null,"name_alt":null,"lat_y":-1.201405,"long_x":174.755207,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[174.75513756602123,-1.201348565630923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Aranuka","comment":null,"name_alt":null,"lat_y":0.226766,"long_x":173.626286,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[173.62623131602123,0.226752020306577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Nauru","comment":null,"name_alt":null,"lat_y":-0.505856,"long_x":166.930778,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[166.93067467539623,-0.505791925005923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ebon","comment":null,"name_alt":null,"lat_y":4.59977,"long_x":168.736432,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[168.73633873789623,4.599798895306577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Jaluit","comment":null,"name_alt":null,"lat_y":5.964455,"long_x":169.682894,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[169.68299401133373,5.964483953900327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Mili","comment":null,"name_alt":null,"lat_y":6.107334,"long_x":171.725875,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[171.72584069102123,6.107489324994077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Majuro","comment":null,"name_alt":null,"lat_y":7.118009,"long_x":171.159743,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[171.15980065195873,7.117987371869077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ailinglapalap","comment":null,"name_alt":null,"lat_y":7.276392,"long_x":168.596926,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[168.59693444102123,7.276495672650327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Kwajalein","comment":null,"name_alt":null,"lat_y":8.746619,"long_x":167.735072,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[167.73511803477123,8.746710516400327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Rongelap","comment":null,"name_alt":null,"lat_y":11.164329,"long_x":166.869876,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[166.86988365977123,11.164496160931577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Bikini","comment":null,"name_alt":null,"lat_y":11.639231,"long_x":165.550698,"region":"Oceania","subregion":"Micronesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[165.55042565195873,11.639288641400327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Reinga","comment":null,"name_alt":null,"lat_y":-34.432767,"long_x":172.7285,"region":"Oceania","subregion":"New Zealand","featureclass":"cape"},"geometry":{"type":"Point","coordinates":[172.70558117137455,-34.42039113947056]}},{"type":"Feature","properties":{"scalerank":5,"name":"Kanton","comment":null,"name_alt":null,"lat_y":-2.757106,"long_x":-171.71703,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-171.71703040272877,-2.757134698443423]}},{"type":"Feature","properties":{"scalerank":5,"name":"Tabuaeran","comment":null,"name_alt":"Fanning I.","lat_y":3.866545,"long_x":-159.326781,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-159.32683264882252,3.866705633587827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Malden","comment":null,"name_alt":null,"lat_y":-4.042491,"long_x":-154.983478,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-154.98350989491627,-4.042657159380923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Rarotonga","comment":null,"name_alt":null,"lat_y":-21.201867,"long_x":-159.797637,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-159.79771887929127,-21.201836846880923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Rangiroa","comment":null,"name_alt":null,"lat_y":-15.2046,"long_x":-147.773967,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-147.77403723866627,-15.204766534380923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Funafuti","comment":null,"name_alt":null,"lat_y":-8.491577,"long_x":179.19841,"region":"Oceania","subregion":"Polynesia","featureclass":"island"},"geometry":{"type":"Point","coordinates":[179.19837487070873,-8.491631768755923]}},{"type":"Feature","properties":{"scalerank":5,"name":"St. Croix","comment":null,"name_alt":null,"lat_y":17.762944,"long_x":-64.763088,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-64.76317298085377,17.763006903119077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Grand Cayman","comment":null,"name_alt":null,"lat_y":19.315829,"long_x":-81.271416,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-81.27159583241627,19.315802313275327]}},{"type":"Feature","properties":{"scalerank":5,"name":"San Salvador","comment":null,"name_alt":null,"lat_y":24.052793,"long_x":-74.492848,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-74.49290930897877,24.052801824994077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Grenada","comment":null,"name_alt":null,"lat_y":12.105978,"long_x":-61.723079,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.72319495351002,12.105963446087827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Barbuda","comment":null,"name_alt":null,"lat_y":17.622525,"long_x":-61.789243,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.78929602772877,17.622626043744077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Antigua","comment":null,"name_alt":null,"lat_y":17.040441,"long_x":-61.775982,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.77592932851002,17.040594793744077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Guadeloupe","comment":null,"name_alt":null,"lat_y":16.180583,"long_x":-61.656947,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.65703284413502,16.180670477337827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Dominica","comment":null,"name_alt":null,"lat_y":15.452943,"long_x":-61.352652,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.35271155507252,15.452887274212827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Martinique","comment":null,"name_alt":null,"lat_y":14.672462,"long_x":-61.008715,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.00883948476002,14.672491766400327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Saint Lucia","comment":null,"name_alt":null,"lat_y":13.918332,"long_x":-60.982225,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-60.98222815663502,13.918280340619077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Saint Vincent","comment":null,"name_alt":null,"lat_y":13.270131,"long_x":-61.207143,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-61.20720374257252,13.270209051556577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Barbados","comment":null,"name_alt":null,"lat_y":13.164326,"long_x":-59.566742,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-59.56682288319752,13.164252020306577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Tobago","comment":null,"name_alt":null,"lat_y":11.259334,"long_x":-60.677992,"region":"South America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-60.67808997304127,11.259283758587827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Margarita","comment":null,"name_alt":null,"lat_y":10.981467,"long_x":-64.051401,"region":"South America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-64.05144202382252,10.981512762494077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Curaao","comment":null,"name_alt":null,"lat_y":12.185355,"long_x":-68.999109,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-68.99919593007252,12.185309149212827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Aruba","comment":null,"name_alt":null,"lat_y":12.502849,"long_x":-69.96488,"region":"North America","subregion":"West Indies","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-69.96501624257252,12.502752996869077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ra’s Banäs","comment":null,"name_alt":null,"lat_y":23.950592,"long_x":35.778059,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[35.77808678477123,23.950628973431577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ponta das Salinas","comment":null,"name_alt":null,"lat_y":-12.832908,"long_x":12.928991,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[12.968705086077254,-12.855718342716505]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ponta das Palmeirinhas","comment":null,"name_alt":null,"lat_y":-9.071387,"long_x":12.999549,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[13.033811372274608,-9.099938228394153]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Bojador","comment":null,"name_alt":null,"lat_y":26.157836,"long_x":-14.473111,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-14.473194953510017,26.157965399212827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Comorin","comment":null,"name_alt":null,"lat_y":8.143554,"long_x":77.471497,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[77.51210506924555,8.085338515340696]}},{"type":"Feature","properties":{"scalerank":5,"name":"Dondra Head","comment":null,"name_alt":null,"lat_y":5.947528,"long_x":80.616321,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[80.59180925571331,5.929580617022318]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Yelizavety","comment":null,"name_alt":null,"lat_y":54.416083,"long_x":142.720445,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[142.72059166758373,54.41620514530658]}},{"type":"Feature","properties":{"scalerank":5,"name":"Pt. Yuzhnyy","comment":null,"name_alt":null,"lat_y":57.733572,"long_x":156.796426,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[156.79664147227123,57.73346588749408]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Sata","comment":null,"name_alt":null,"lat_y":31.026941,"long_x":130.695089,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[130.69520104258373,31.026922918744077]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Aniva","comment":null,"name_alt":null,"lat_y":46.081706,"long_x":143.43487,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[143.43482506602123,46.08179352421283]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Terpeniya","comment":null,"name_alt":null,"lat_y":48.66928,"long_x":144.712582,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[144.71253502695873,48.66937897343158]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Lopatka","comment":null,"name_alt":null,"lat_y":50.914155,"long_x":156.651536,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[156.65162194102123,50.91412994999408]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Ozernoy","comment":null,"name_alt":null,"lat_y":57.7708,"long_x":163.246685,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[163.24683678477123,57.77088043827533]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Olyutorskiy","comment":null,"name_alt":null,"lat_y":59.960807,"long_x":170.31265,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[170.31287682383373,59.96082184452533]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Navarin","comment":null,"name_alt":null,"lat_y":62.327239,"long_x":179.074225,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[179.07422936289623,62.32727692265033]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Lopatka","comment":null,"name_alt":null,"lat_y":71.907853,"long_x":150.066042,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[150.06592858164623,71.90778229374408]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Ince","comment":null,"name_alt":null,"lat_y":42.084312,"long_x":34.983358,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[34.98328698008373,42.08417389530658]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ra’s Fartak","comment":null,"name_alt":null,"lat_y":15.677412,"long_x":52.229105,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[52.2389696999939,15.65795249845498]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ras Sharbatat","comment":null,"name_alt":null,"lat_y":18.164534,"long_x":56.56827,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[56.558165806017215,18.166986171245085]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ra's al Had","comment":null,"name_alt":null,"lat_y":22.530158,"long_x":59.849134,"region":"Asia","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[59.7995168175437,22.518675327148298]}},{"type":"Feature","properties":{"scalerank":5,"name":"Hachijjima","comment":null,"name_alt":null,"lat_y":33.109796,"long_x":139.804903,"region":"Asia","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[139.80482018320873,33.10980866093158]}},{"type":"Feature","properties":{"scalerank":5,"name":"Nordkapp","comment":null,"name_alt":null,"lat_y":71.18337,"long_x":25.662398,"region":"Europe","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[25.66067519711473,71.15450206702127]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo de São Vicentete","comment":null,"name_alt":null,"lat_y":37.038304,"long_x":-8.969391,"region":"Europe","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-8.969410773822517,37.03827545780658]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Fisterra","comment":null,"name_alt":null,"lat_y":42.952418,"long_x":-9.267837,"region":"Europe","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-9.26996282865152,42.92873605781255]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape San Blas","comment":null,"name_alt":null,"lat_y":29.713967,"long_x":-85.270961,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-85.27092444569752,29.713995672650327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Sable","comment":null,"name_alt":null,"lat_y":43.469097,"long_x":-65.610769,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-65.61082923085377,43.46900055546283]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Bauld","comment":null,"name_alt":null,"lat_y":51.568576,"long_x":-55.430306,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-55.43028723866627,51.56848786015033]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape Fear","comment":null,"name_alt":null,"lat_y":33.867949,"long_x":-77.990568,"region":"North America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-77.99058997304127,33.86798737186908]}},{"type":"Feature","properties":{"scalerank":5,"name":"I. Guadalupe","comment":null,"name_alt":null,"lat_y":29.052552,"long_x":-118.317465,"region":"Seven seas (open ocean)","subregion":"North Pacific Ocean","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-118.31749426991627,29.052496649212827]}},{"type":"Feature","properties":{"scalerank":5,"name":"Miquelon","comment":null,"name_alt":null,"lat_y":46.929526,"long_x":-56.329884,"region":"North America","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[-56.32988440663502,46.92938873905658]}},{"type":"Feature","properties":{"scalerank":5,"name":"I. Robinson Crusoe","comment":null,"name_alt":null,"lat_y":-33.589852,"long_x":-78.872522,"region":"Seven seas (open ocean)","subregion":"South Pacific Ocean","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-78.87254798085377,-33.58965422969342]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Orange","comment":null,"name_alt":null,"lat_y":4.125735,"long_x":-51.242144,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-51.26287766987179,4.135614177285231]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo de Santa Marta Grande","comment":null,"name_alt":null,"lat_y":-28.558078,"long_x":-48.735526,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-48.80338037734664,-28.57198267323537]}},{"type":"Feature","properties":{"scalerank":5,"name":"Punta del Este","comment":null,"name_alt":null,"lat_y":-34.975503,"long_x":-54.933154,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-54.94628769070382,-34.96658679840526]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo San Antonio","comment":null,"name_alt":null,"lat_y":-36.381052,"long_x":-56.655377,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-56.716792100626165,-36.40959917438929]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Corrientes","comment":null,"name_alt":null,"lat_y":-38.135985,"long_x":-57.546212,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-57.56252349612641,-38.066376942128464]}},{"type":"Feature","properties":{"scalerank":5,"name":"Punta Rasa","comment":null,"name_alt":null,"lat_y":-40.834718,"long_x":-62.282201,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-62.25911745789756,-40.72626411656719]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Dos Bahías","comment":null,"name_alt":null,"lat_y":-44.9887,"long_x":-65.615952,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-65.5438334451688,-44.89439847091873]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Delgado","comment":null,"name_alt":null,"lat_y":-10.670103,"long_x":40.624309,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[40.62440026133373,-10.670098565630923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ponta da Barra","comment":null,"name_alt":null,"lat_y":-23.829888,"long_x":35.515696,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[35.51563561289623,-23.830010675005923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ponta São Sebastio","comment":null,"name_alt":null,"lat_y":-22.118899,"long_x":35.480417,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[35.48023522227123,-22.118829034380923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ras Cantin","comment":null,"name_alt":null,"lat_y":32.581636,"long_x":-9.273918,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-9.273915168353767,32.58161041874408]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ra’s Kasr","comment":null,"name_alt":null,"lat_y":18.076817,"long_x":38.573746,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[38.58027735871919,18.075167704493374]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ponta de Jericoacoara","comment":null,"name_alt":null,"lat_y":-2.85044,"long_x":-40.067208,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-39.991649927946355,-2.851822991583529]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo de São Roque","comment":null,"name_alt":null,"lat_y":-5.193476,"long_x":-35.447654,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-35.50994900651512,-5.156866121305913]}},{"type":"Feature","properties":{"scalerank":5,"name":"Ponta da Baleia","comment":null,"name_alt":null,"lat_y":-17.710136,"long_x":-39.157619,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-39.14557867836578,-17.678753845220847]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo de São Tomé","comment":null,"name_alt":null,"lat_y":-21.996382,"long_x":-41.009692,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-40.98763990313761,-21.971754611783773]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Frio","comment":null,"name_alt":null,"lat_y":-22.869501,"long_x":-41.962188,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-41.89015627474056,-22.759730815669258]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo San Diego","comment":null,"name_alt":null,"lat_y":-54.6406,"long_x":-65.21365,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-65.21361243397877,-54.64067962031842]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cabo Tres Puntas","comment":null,"name_alt":null,"lat_y":-47.237629,"long_x":-65.774707,"region":"South America","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[-65.74439816328368,-47.328778975372465]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cap Saint André","comment":null,"name_alt":null,"lat_y":-16.174457,"long_x":44.467405,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[44.46729576914623,-16.174493096880923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape St. Lucia","comment":null,"name_alt":null,"lat_y":-28.552694,"long_x":32.367221,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[32.36732018320873,-28.552666925005923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Cape St. Francis","comment":null,"name_alt":null,"lat_y":-34.171766,"long_x":24.817688,"region":"Africa","subregion":null,"featureclass":"cape"},"geometry":{"type":"Point","coordinates":[24.84143613032799,-34.18861022316314]}},{"type":"Feature","properties":{"scalerank":5,"name":"Minamitori-shima","comment":null,"name_alt":"Marcus I.","lat_y":24.319813,"long_x":153.958899,"region":"Seven seas (open ocean)","subregion":"North Pacific Ocean","featureclass":"island"},"geometry":{"type":"Point","coordinates":[153.95887291758373,24.319769598431577]}},{"type":"Feature","properties":{"scalerank":5,"name":"Is. Martin Vaz","comment":null,"name_alt":null,"lat_y":-20.559422,"long_x":-29.338439,"region":"Seven seas (open ocean)","subregion":"Southern Atlantic Ocean","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-29.338429328510017,-20.559502862505923]}},{"type":"Feature","properties":{"scalerank":5,"name":"Rockall","comment":null,"name_alt":null,"lat_y":58.163524,"long_x":-12.408715,"region":"Seven seas (open ocean)","subregion":"North Atlantic Ocean","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-12.408741828510017,58.16339752811908]}},{"type":"Feature","properties":{"scalerank":5,"name":"I. de Cozumel","comment":null,"name_alt":null,"lat_y":20.444687,"long_x":-86.880555,"region":"North America","subregion":null,"featureclass":"island"},"geometry":{"type":"Point","coordinates":[-86.88060462147877,20.444708563275327]}},{"type":"Feature","properties":{"scalerank":5,"name":"Bermuda Islands","comment":null,"name_alt":null,"lat_y":32.317339,"long_x":-64.742895,"region":"Seven seas (open ocean)","subregion":"North Atlantic Ocean","featureclass":"island"},"geometry":{"type":"Point","coordinates":[-64.74290930897877,32.31726715702533]}}]} \ No newline at end of file diff --git a/test/integration/data/winding.geojson b/test/integration/data/winding.geojson new file mode 100644 index 00000000000..b7d141d0911 --- /dev/null +++ b/test/integration/data/winding.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","id":"112025b24165963ca83d2b9e6e5943e3","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-48.51562499999926,44.08758502824452],[-48.86718749999943,1.7575368113081424],[5.9765624999998295,-2.2737367544323206e-13],[3.8671874999998295,44.5904671813081],[-48.51562499999926,44.08758502824452]]]}},{"type":"Feature","id":"c5aece77e9cb2eac3b1e3a146e9df170","properties":{},"geometry":{"type":"Polygon","coordinates":[[[29.531249999999517,15.623036831527799],[29.882812499999574,-27.994401411045992],[-17.57812499999983,-22.268764039073815],[-14.062499999999801,24.84656534821923],[29.531249999999517,15.623036831527799]]]}}]} diff --git a/test/integration/geojson/point.json b/test/integration/geojson/point.json new file mode 100644 index 00000000000..32ad660f67b --- /dev/null +++ b/test/integration/geojson/point.json @@ -0,0 +1,7 @@ +{ + "type": "Point", + "coordinates": [ + 0, + 0 + ] +} diff --git a/test/integration/glyphs/NotoCJK/0-255.pbf b/test/integration/glyphs/NotoCJK/0-255.pbf new file mode 100644 index 00000000000..5a0f7c2cc39 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/0-255.pbf differ diff --git a/test/integration/glyphs/NotoCJK/1024-1279.pbf b/test/integration/glyphs/NotoCJK/1024-1279.pbf new file mode 100644 index 00000000000..01797f7b972 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/1024-1279.pbf differ diff --git a/test/integration/glyphs/NotoCJK/10240-10495.pbf b/test/integration/glyphs/NotoCJK/10240-10495.pbf new file mode 100644 index 00000000000..d47e8a46736 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/10240-10495.pbf @@ -0,0 +1,3 @@ + +$ +Noto Sans CJK JP Thin 10240-10495 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/10496-10751.pbf b/test/integration/glyphs/NotoCJK/10496-10751.pbf new file mode 100644 index 00000000000..cdd4469dcec Binary files /dev/null and b/test/integration/glyphs/NotoCJK/10496-10751.pbf differ diff --git a/test/integration/glyphs/NotoCJK/10752-11007.pbf b/test/integration/glyphs/NotoCJK/10752-11007.pbf new file mode 100644 index 00000000000..fe59b88c262 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/10752-11007.pbf @@ -0,0 +1,3 @@ + +$ +Noto Sans CJK JP Thin 10752-11007 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/11008-11263.pbf b/test/integration/glyphs/NotoCJK/11008-11263.pbf new file mode 100644 index 00000000000..7056c758cac Binary files /dev/null and b/test/integration/glyphs/NotoCJK/11008-11263.pbf differ diff --git a/test/integration/glyphs/NotoCJK/11264-11519.pbf b/test/integration/glyphs/NotoCJK/11264-11519.pbf new file mode 100644 index 00000000000..193259ea1c8 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/11264-11519.pbf @@ -0,0 +1,3 @@ + +$ +Noto Sans CJK JP Thin 11264-11519 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/11520-11775.pbf b/test/integration/glyphs/NotoCJK/11520-11775.pbf new file mode 100644 index 00000000000..923c5ede3d6 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/11520-11775.pbf @@ -0,0 +1,3 @@ + +$ +Noto Sans CJK JP Thin 11520-11775 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/11776-12031.pbf b/test/integration/glyphs/NotoCJK/11776-12031.pbf new file mode 100644 index 00000000000..48a1fea2c9b Binary files /dev/null and b/test/integration/glyphs/NotoCJK/11776-12031.pbf differ diff --git a/test/integration/glyphs/NotoCJK/12032-12287.pbf b/test/integration/glyphs/NotoCJK/12032-12287.pbf new file mode 100644 index 00000000000..de306323ac8 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/12032-12287.pbf differ diff --git a/test/integration/glyphs/NotoCJK/12288-12543.pbf b/test/integration/glyphs/NotoCJK/12288-12543.pbf new file mode 100644 index 00000000000..b3e361ec34b Binary files /dev/null and b/test/integration/glyphs/NotoCJK/12288-12543.pbf differ diff --git a/test/integration/glyphs/NotoCJK/12544-12799.pbf b/test/integration/glyphs/NotoCJK/12544-12799.pbf new file mode 100644 index 00000000000..6f1f9aa3213 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/12544-12799.pbf differ diff --git a/test/integration/glyphs/NotoCJK/1280-1535.pbf b/test/integration/glyphs/NotoCJK/1280-1535.pbf new file mode 100644 index 00000000000..835a3554bef --- /dev/null +++ b/test/integration/glyphs/NotoCJK/1280-1535.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 1280-1535 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/12800-13055.pbf b/test/integration/glyphs/NotoCJK/12800-13055.pbf new file mode 100644 index 00000000000..0e646200b26 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/12800-13055.pbf differ diff --git a/test/integration/glyphs/NotoCJK/13056-13311.pbf b/test/integration/glyphs/NotoCJK/13056-13311.pbf new file mode 100644 index 00000000000..4ca46634fe7 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/13056-13311.pbf differ diff --git a/test/integration/glyphs/NotoCJK/13312-13567.pbf b/test/integration/glyphs/NotoCJK/13312-13567.pbf new file mode 100644 index 00000000000..4615002ce05 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/13312-13567.pbf differ diff --git a/test/integration/glyphs/NotoCJK/13568-13823.pbf b/test/integration/glyphs/NotoCJK/13568-13823.pbf new file mode 100644 index 00000000000..ff4c0853981 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/13568-13823.pbf differ diff --git a/test/integration/glyphs/NotoCJK/13824-14079.pbf b/test/integration/glyphs/NotoCJK/13824-14079.pbf new file mode 100644 index 00000000000..4af676134a5 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/13824-14079.pbf differ diff --git a/test/integration/glyphs/NotoCJK/14080-14335.pbf b/test/integration/glyphs/NotoCJK/14080-14335.pbf new file mode 100644 index 00000000000..b4f351940f3 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/14080-14335.pbf differ diff --git a/test/integration/glyphs/NotoCJK/14336-14591.pbf b/test/integration/glyphs/NotoCJK/14336-14591.pbf new file mode 100644 index 00000000000..5f5d6df6a71 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/14336-14591.pbf differ diff --git a/test/integration/glyphs/NotoCJK/14592-14847.pbf b/test/integration/glyphs/NotoCJK/14592-14847.pbf new file mode 100644 index 00000000000..99f514391c0 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/14592-14847.pbf differ diff --git a/test/integration/glyphs/NotoCJK/14848-15103.pbf b/test/integration/glyphs/NotoCJK/14848-15103.pbf new file mode 100644 index 00000000000..f59cb54a31f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/14848-15103.pbf differ diff --git a/test/integration/glyphs/NotoCJK/15104-15359.pbf b/test/integration/glyphs/NotoCJK/15104-15359.pbf new file mode 100644 index 00000000000..23d123ddab0 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/15104-15359.pbf differ diff --git a/test/integration/glyphs/NotoCJK/1536-1791.pbf b/test/integration/glyphs/NotoCJK/1536-1791.pbf new file mode 100644 index 00000000000..4d1770001f8 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/1536-1791.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 1536-1791 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/15360-15615.pbf b/test/integration/glyphs/NotoCJK/15360-15615.pbf new file mode 100644 index 00000000000..a1f992589dc Binary files /dev/null and b/test/integration/glyphs/NotoCJK/15360-15615.pbf differ diff --git a/test/integration/glyphs/NotoCJK/15616-15871.pbf b/test/integration/glyphs/NotoCJK/15616-15871.pbf new file mode 100644 index 00000000000..7cb7afd4a54 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/15616-15871.pbf differ diff --git a/test/integration/glyphs/NotoCJK/15872-16127.pbf b/test/integration/glyphs/NotoCJK/15872-16127.pbf new file mode 100644 index 00000000000..9616366e6fb Binary files /dev/null and b/test/integration/glyphs/NotoCJK/15872-16127.pbf differ diff --git a/test/integration/glyphs/NotoCJK/16128-16383.pbf b/test/integration/glyphs/NotoCJK/16128-16383.pbf new file mode 100644 index 00000000000..8e7e5d35031 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/16128-16383.pbf differ diff --git a/test/integration/glyphs/NotoCJK/16384-16639.pbf b/test/integration/glyphs/NotoCJK/16384-16639.pbf new file mode 100644 index 00000000000..d938224206b Binary files /dev/null and b/test/integration/glyphs/NotoCJK/16384-16639.pbf differ diff --git a/test/integration/glyphs/NotoCJK/16640-16895.pbf b/test/integration/glyphs/NotoCJK/16640-16895.pbf new file mode 100644 index 00000000000..81a5092ddaf Binary files /dev/null and b/test/integration/glyphs/NotoCJK/16640-16895.pbf differ diff --git a/test/integration/glyphs/NotoCJK/16896-17151.pbf b/test/integration/glyphs/NotoCJK/16896-17151.pbf new file mode 100644 index 00000000000..bb1e5b5da5b Binary files /dev/null and b/test/integration/glyphs/NotoCJK/16896-17151.pbf differ diff --git a/test/integration/glyphs/NotoCJK/17152-17407.pbf b/test/integration/glyphs/NotoCJK/17152-17407.pbf new file mode 100644 index 00000000000..3f1946024b6 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/17152-17407.pbf differ diff --git a/test/integration/glyphs/NotoCJK/17408-17663.pbf b/test/integration/glyphs/NotoCJK/17408-17663.pbf new file mode 100644 index 00000000000..6b3ffbf52bd Binary files /dev/null and b/test/integration/glyphs/NotoCJK/17408-17663.pbf differ diff --git a/test/integration/glyphs/NotoCJK/17664-17919.pbf b/test/integration/glyphs/NotoCJK/17664-17919.pbf new file mode 100644 index 00000000000..3002699c447 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/17664-17919.pbf differ diff --git a/test/integration/glyphs/NotoCJK/1792-2047.pbf b/test/integration/glyphs/NotoCJK/1792-2047.pbf new file mode 100644 index 00000000000..769e27e7a6b --- /dev/null +++ b/test/integration/glyphs/NotoCJK/1792-2047.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 1792-2047 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/17920-18175.pbf b/test/integration/glyphs/NotoCJK/17920-18175.pbf new file mode 100644 index 00000000000..9377601085e Binary files /dev/null and b/test/integration/glyphs/NotoCJK/17920-18175.pbf differ diff --git a/test/integration/glyphs/NotoCJK/18176-18431.pbf b/test/integration/glyphs/NotoCJK/18176-18431.pbf new file mode 100644 index 00000000000..b395162c33f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/18176-18431.pbf differ diff --git a/test/integration/glyphs/NotoCJK/18432-18687.pbf b/test/integration/glyphs/NotoCJK/18432-18687.pbf new file mode 100644 index 00000000000..759902b6265 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/18432-18687.pbf differ diff --git a/test/integration/glyphs/NotoCJK/18688-18943.pbf b/test/integration/glyphs/NotoCJK/18688-18943.pbf new file mode 100644 index 00000000000..f5247326ea7 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/18688-18943.pbf differ diff --git a/test/integration/glyphs/NotoCJK/18944-19199.pbf b/test/integration/glyphs/NotoCJK/18944-19199.pbf new file mode 100644 index 00000000000..c7ae80936f8 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/18944-19199.pbf differ diff --git a/test/integration/glyphs/NotoCJK/19200-19455.pbf b/test/integration/glyphs/NotoCJK/19200-19455.pbf new file mode 100644 index 00000000000..301932f37c0 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/19200-19455.pbf differ diff --git a/test/integration/glyphs/NotoCJK/19456-19711.pbf b/test/integration/glyphs/NotoCJK/19456-19711.pbf new file mode 100644 index 00000000000..166d00ec2e2 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/19456-19711.pbf differ diff --git a/test/integration/glyphs/NotoCJK/19712-19967.pbf b/test/integration/glyphs/NotoCJK/19712-19967.pbf new file mode 100644 index 00000000000..2e1992175f8 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/19712-19967.pbf differ diff --git a/test/integration/glyphs/NotoCJK/19968-20223.pbf b/test/integration/glyphs/NotoCJK/19968-20223.pbf new file mode 100644 index 00000000000..2f488061a59 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/19968-20223.pbf differ diff --git a/test/integration/glyphs/NotoCJK/20224-20479.pbf b/test/integration/glyphs/NotoCJK/20224-20479.pbf new file mode 100644 index 00000000000..ea4d7b51926 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/20224-20479.pbf differ diff --git a/test/integration/glyphs/NotoCJK/2048-2303.pbf b/test/integration/glyphs/NotoCJK/2048-2303.pbf new file mode 100644 index 00000000000..7e778022c8e --- /dev/null +++ b/test/integration/glyphs/NotoCJK/2048-2303.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 2048-2303 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/20480-20735.pbf b/test/integration/glyphs/NotoCJK/20480-20735.pbf new file mode 100644 index 00000000000..d16dd57f625 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/20480-20735.pbf differ diff --git a/test/integration/glyphs/NotoCJK/20736-20991.pbf b/test/integration/glyphs/NotoCJK/20736-20991.pbf new file mode 100644 index 00000000000..c1b685f9620 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/20736-20991.pbf differ diff --git a/test/integration/glyphs/NotoCJK/20992-21247.pbf b/test/integration/glyphs/NotoCJK/20992-21247.pbf new file mode 100644 index 00000000000..2caf94419b2 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/20992-21247.pbf differ diff --git a/test/integration/glyphs/NotoCJK/21248-21503.pbf b/test/integration/glyphs/NotoCJK/21248-21503.pbf new file mode 100644 index 00000000000..42d37287352 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/21248-21503.pbf differ diff --git a/test/integration/glyphs/NotoCJK/21504-21759.pbf b/test/integration/glyphs/NotoCJK/21504-21759.pbf new file mode 100644 index 00000000000..da11ab214f0 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/21504-21759.pbf differ diff --git a/test/integration/glyphs/NotoCJK/21760-22015.pbf b/test/integration/glyphs/NotoCJK/21760-22015.pbf new file mode 100644 index 00000000000..8f709444886 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/21760-22015.pbf differ diff --git a/test/integration/glyphs/NotoCJK/22016-22271.pbf b/test/integration/glyphs/NotoCJK/22016-22271.pbf new file mode 100644 index 00000000000..8cdc64a1c87 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/22016-22271.pbf differ diff --git a/test/integration/glyphs/NotoCJK/22272-22527.pbf b/test/integration/glyphs/NotoCJK/22272-22527.pbf new file mode 100644 index 00000000000..d068d6a67e0 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/22272-22527.pbf @@ -0,0 +1,190 @@ + + +Noto Sans CJK JP Thin 22272-22527EXdffffffffffffffffffffdYF[ss[ijlƭml̵ǯͭml̵¤ͭml̵uǹ´ͭml̵ɯôͭml̵˵ƾøͭml̵²¿ͭml̵¿ͭml̵ͭml̵ϴͭml̵˫ͭml̵utͭml̵umƼбͭml̵u}ͱϯͭml̵}ľxv˫ͭml̵ìĥͭml̵®þͭml̵ȹͭml̵ͭml̿ͭmlǵǭmij[syb____________axt\FYegf]L????????????K]fgeZG (08EXdffffffffffffffffffffdYF[ss[ijlƭml̵ͭml̵ͭml̵´ͭml̵ͭml̵ļͭml̵ͭml̵ͭml̵ͭml̵ͭml̵ƻͭml̵ͭml̵ͭml̵þͭml̵þͭml̵þͭml̵ľͭml̵ͭml̵ͭml̿ͭmlǵǭmij[syb____________axt\FYegf]L????????????K]fgeZG (08EXdffffffffffffffffffffdYF[ss[ijlƭml̵ͭml̵ͭml̵¿ͭml̵γͭml̵ĿǷͭml̵Ⱥůͭml̵ʽȺɬĮͭml̵¼˰Ÿͭml̵ʹ̺ͭml̵ʹƷtͭml̵ŵûǭ}ͭml̵Ƽªͭml̵ȷȨͭml̵ƿäðͭml̵Ƶȴͭml̵öʲy|ͭml̵ͭml̵ͭml̿ͭmlǵǭmij[syb____________axt\FYegf]L????????????K]fgeZG (08H\giiiiiiiiiiiiiiiiiiiig\H]vv]jjmɭmmͳͭmmͳ¾´ͭmmͳ¾ͭmmͳ¿ͭmmͳ¾ͭmmͳ¾ͭmmͳɲͭmmͳа¾ϲͭmmͳа¾ϲͭmmͳвͭmmͳа¾ϲͭmmͳе¾ϲͭmmͳϲͭmmͳа¾ϲͭmmͳа¾ϲͭmmͳа¾αͭmmͳͭmmͳͭmmͭmmijĭmiiZrvbbbbbbbbbbbbbbvrZEXcddZIBBBBBBBBBBBBIZddcXE (08EXdffffffffffffffffffffdXE[ss[iilƬll̴̬ll̴̬ll̴ɼ̬ll̴ʹ̬ll̴ˬ̬ll̴ɫ̬ll̴ŻƧ̬ll̴ͳ¢̬ll̴ɿĿ̬ll̴̬ll̴̬ll̴̬ll̴Ȩ̬ll̴Ȩ̬ll̴ȱ̬ll̴̬ll̴̬ll̵̬ll̬llǴǬlii[tya````````````ayt[GZegg]L@@@@@@@@@@@@L]ggeZG (08% (08I\giiiiiiiiiiiiiiiiiiiig[H^wu\ljoɬloϲ̬loϲ̬loϲŻ̬loϲŻ̬loϲŻ̬loϲ̬loϲ̬loϲĵ̬loϲDZ˵̬loϲǧ¢˵̬loϲǧ¢˵̬loϲǧ¾˵̬loϲǧ˴˵̬loϲǧĽ˵̬loϲž̬loϲɾ̬loϲƾʵ̬loϲ̬lo̬loIJĬlkh\subbbbbbbbbbbbbbvrZFXcddZHBBBBBBBBBBBBI[ddcWD (08@TaddddddddddddddddddddaTATmnVbdfĨhfƺȨhfƺȰȨhfƺzw˸ƱxyȨhfƺ{ͺ˷~ȨhfƺȴǾȨhfƺ¼ŴȨhfƺʻùȨhfƺȨhfƺëȨhfƺγòʶ˫Ȩhfƺγãʶ˫Ȩhfƺ˫Ȩhfƺεõʶ˫Ȩhfƺγãʶ˫Ȩhfƺγãʶ˫Ȩhfƺγãʶ˫ȨhfƺóȨhfƺȨhfƽȨhfźŨhc}}}}}}}}}}}}}}dUn{e]]]]]]]]]]]]ezoWAUbee^N============M^eebVB (08H[fggggggggggggggggggggf[H]uu]kknǮnnγήnnγ˸ήnnγǻб˵ήnnγǨʲήnnγǻȮήnnγ­ϱʵøήnnγ¦ήnnγóήnnγƼɱήnnγîįήnnγɼDZήnnγ³ήƺ˼ήnnγήȸήnnγήƮήnnγή½ήnnγuϵɺήnnγήnnεήnnήnnųŮnjj[sw``````````````ws[FYdee[J@@@@@@@@@@@@J[eedYF (08EXdffffffffffffffffffffdYF[ss[ijlƭml̵ͭml̵¿ͭml̵¿ͭml̵ºͭml̵¿ͭml̵¿ͭml̵ôͭml̵ʶ̰ͭml̵Ũýͭml̵ƻͭml̵¿ͭml̵¿ͭml̵¿ͭml̵¿ͭml̵¿ͭml̵{{{{¿{{{{ͭml̵¿ͭml̵ͭml̿ͭmlǵǭmij[syb____________axt\FYegf]L????????????K]fgeZG (08M[````````````````````[Leyxexw~µ¾~¢¿¾~¢ɽ¾~¢¿¾~¢ū¾~¢¿¾~¾¿¾~·¾~¢¾~¢ȹ¿þ¾~¢ʪ¿þ¾~¢ʵ¿þ¾~¢ľ¾~¢ʪþ¾~¢ʪþ¾~¢ʪz~þ¾~¢ʪƵ¾~º¾~¼¾~¢~z}|||||||||||||wi}k\\\\\\\\\\\\gzxdQ`ffaS><<<<<<<<<<<<<<<<<<<<Sl~~kRa}_eãceżãceżϲʭãceż¥ļãceż̴ȭãceżг½ͰãceżƿæÿãceżѶ͸ãceżýãceżͻϱȼνãceż¾ɷ¼ϵ½ãceżɷϷãceżɷʻ·ƼϼĽãceżþɷ˻ŴʷʶϲνãceżɷɷżťʷίϲɽãceżίɷťʼǯϲĽãceż©ɷʸϲãceżƷƲãceżãceãceżca{^Tm{gbbbbbbbbbbbbcwygO@Tbee_OBBBBBBBBBBBBKY__[N: (08H\giiiiiiiiiiiiiiiiiiiig\H]vv]jjmɭmmͳͭmmͳƫʷũͭmmͳ͵ɴδͭmmͳǻ̳Ⱥȯͭmm͹̸ú̶ͭmmͳʹǿ˵ijͭmmͻƻ˷ͭmmͳǶͭmmͳȹͳƺͳɸγͳͭmmͳΰƺúʹͰǹýͭmmͿȿĺͭmmͳǹͭmmͳºͭmmͳ³ͭmmͳ˹ǹŴͭmmͳ°ǹͭmmͳɸǹͭmmͳͭmmͭmmijĭmiiZrvbbbbbbbbbbbbbbvrZEXcddZIBBBBBBBBBBBBIZddcXE (08 '@UdiicT>% 7SmkQ4 @_~{\="Bb¿_?"Bb¿_? "Bb¿_?  ',,,,,Bb¿_?,,,,,' %8FLLLLLLb¿_LLLLLLF8%!;Rdlllllll¿llllllldR;!/Mh¿hM/7Wv¿vW78XxɸxX87Vu¿uV7.Kf|¿|fK.9Paiiiiiii¿iiiiiiiaP9 "5CIIIIIIb¿_IIIIIIC5" $)))))Bb¿_?)))))$ "Bb¿_? )1333333Bb¿_?3333332)4FQSSSSSSSb¿_SSSSSSSQF5Kapssssssss¿sssssssspbL]x¿y^g¿hg¨hcdTl}~mU?S_bbbbbbbbbbbbbbbbbbbbbb_S@ (08 VisoaO3A`˽̯tV8ITUNB7, 8VthJ,460%-IcwsZ>6K]nwxyyyyyyuhYE- (08 (AVejjdT?% +8TnlQ4!A`|]="Bb¿_?"Bb¿_? "Bb¿_?  +00000Bb¿_?00000+ (Ugppppppp¿pppppppgU>#1Nj¿jN18Ww¿wW88XxŸxX86Ut¿tU6,Idy¿ydI,6L]eeeeeee¿¬~ge]L6 2?EEEEEEb¿ì|eM6  %%%%%Bb¿zcI/"Bb¿}ſv\A% /8999999Bb¿hǼmO09LWYYYYYYYb¿_jʹtT9Pfvyyyyyyyy¿yyyvfPa}¿}ah¿hhhb~~bQhx||||||||||||||||||||||xhQ (08,CVacbZI2%%%%%%%%%%%%%% =Xpv`EEEEEEEEEEEEEED<- +)IgpeeeeeeeeeeeeeedYG ,Llõt\ ,Ll̵k-=HLl̵ůoEYgjl̵nYr̵|be̵pppppnbNgʬl_aPPOF6e̵j_aA0/(Ys̵v]_aA! F[hkl̵uki]I_aA!.?ILl̵uUNH?_aA!!,Ll̵ujnfT_aA! ,Ll̵}j_aA!*7BMl̵w_aA!DU`kv̵ļ}_aA!\q~ɽx_aA!m·|g_aA!tǻvj_P_aA!o{odXfopoaA!a}ti]QKhaA!PftwmbVK?5TtaA!9KUWOD8-!5Tt²}^>-671&-KinS6"?[s|mW@' .FYdffffb]R@* (087Qftvvvvvvvvvvvvvvvvvyq_K2Eb~x_C%LlkL, Ll¿ƩlM- Hfɺ϶~bE';Vm}̵żoS7)@S^_pͷvov\B' '6>C^u͹ȿ}cI/!'1H^t˽ɾ|fO82-%*8AGMU_hrȷ{pg^WRMC2DV`flt}Ƹ|wql_JZq˽w]jûioƿihy^\x|fLKaptn_O94FRgeG=,CXfiiuvvvvvvvvvvuiifYDWqqXcdfǧgdeXrsYEZhllllllllllllllllllllllh[F (08*AT`baYH2@VgmmiZD*2'=]}ãcC#6HSUMB6+ =]}ãcC#+35/$ ;Zx}_@! 0Mf{}jQ5 9N]cc_Q=% + (08+DYhmmfV@& +:WqmR5  """"Bb{\=""""! '6@BBBBCcþ~^BBBBB@8( (?S_bbbbbcþ~bbbbbb`UB+9Um~þoW<%DcþfH)(Hh«kK+(GgþkK+'@^yþ{aC&?Tbfpssssssþ~ssssssqfaS>SlþkR`~þ}_c¢bbȺϲaXs˶ϲqVF[koooosϰsϲroooooj[D/@LOOO\{ǨoϲrRWhniZK7#-/2MioϲrRnvdM)8K^y̵xoϲr]|y\,-,Jf~ydlllllllhZE,3SsrX<4Tt̬dD%"1:Tt̬ǧhH(;NZ\t̬˫kK+ Qhx||̬~ήnO/a}̬x}αrS3g̼ķxX9g̹½~^?_|̬v£dD%Oeuyy̬yyssлȩjJ+ 8KVYt̬lY\{ɳήoP0.7Tt̬lnm˴vX:4Tt̬ȸýcD&+9DTt̬ϰȪmO1FWbmx̬ʯŧдwY;\rĸ̶ľdG,mʾħ|ɫsX="sĸ˵|pȺiN5lw|mc˰zbK5`{|qj|ë{_WtxbONdrtk_rŭ~fNGa{Ƚ|e7HSTMeƯhQ94Nh̼t+35HgjS;$!;UnƳw "A_zlU=&(A[rl3Md|weR?(.EYmlY 7Oaki\J8&,@TchcS@ (08 (BYinnnnnnnnnnnnnnnnnnnnjZE7TorW?^~a @`ãc @`~` @`ƭmS @`gggtͭmggggggcU@ @``GTtͭmMGGGGGD9( @`ffftͭmfffff_N8 @`ͭ{eK. @`ͭuV7 @`ƹyY9!AaͯxX9%DdýͭkO1)IhǸyoootͭoooooogU>#-Ml̳tTOTtͭmOOOOOI;(1QqίoP4TtͭmM//////(:XwʪkOOTtͭmOOOOOONE6Db¤ooootͭooooooonbNNlǸͭ{b^z˭ͯmkƯomkc~t]Qf{rfffffffffffffffffffdZG9N`ifYFFFFFFFFFFFFFFFFFFFE=. (08"RlвkQ]|é{]`ɿ_^}ƫ|]Sm̷mR@VfkkpũpkkkkkkeV@);GOiͳ~a``[[[XK;)#8Ne|ʻ{{{{{{{veM2Si}бcCdǰбcCkïбx\>gбyyyyyyyytcL1YqбqYY``YYYVI6D[oxtбqQA``AAAA=3".CRXpбqaaaaaaaa\N:'3PpбzgO0Ppбz]0Ppбa0Pp±a-LktX#@[rtttttttttttttttto^G.EWabaWTTTTTTTTTTTTTTTPD1 (08 $=RaffaR=?AAAAAAAAAAAA@8*4Pj~~jR^aaaaaaaaaaaa`VD->]|{m}qZ@ @`jL'@`pP6EM`ǴoOOblmzǧeHd|vttzǧtttrfR9phZzǧgTTSJ:%rǩiZzǧgXXXWN=oxxzǧxxxxvjU`xǧgK]ggǸp1?G`ǽp!@`ǧi!/@`}}}ǧ}}}}{nX2%.NnƦgG'&5?@:.! -MlcC$ + %CapV:7Sl~{o[C* &>R_ccca\RC. (08 '@Tbff_P:9QdnleYE.8Tm|gMJf~sZ>! "BaxYUshI,,,,,*"$Ddļ|\^}ɪkLLLLLLJ?.$Ddļ|\iĿllllllli[F/@Kdļ|\xδsYG\jmļ|lĬeZtļǧgeļèdgǯϴqWdļǽ|eXCWpļ²pQ1CWdgļ­qR2*;Edļ|ǿfI+$Ddļ|uwʼ|gR:!.Ddļldy͹zdO:'@:.!1OluX + $?ZrgJ.EXfswyyyyyyyyyxpdR: (088N_ggeXD+ *4=IVcicT?*-Je{qX<,5?IR\fslX?$6UteFKT]gqzkN08XxǨhbjr|DzuV68XxȨysT4/:XxȨ{dI, 6KY^xȨļήyl`N7Kdw~~Ȩήqg\OB4!YwȨήnN>8=@<1 ^~ȾsήnPTX\`[M9^~ȷsήnotx|yfMVsȨ{sήy[F^pwxȨήa1DRXxȨ¾c(8XxȨĿγvZ +8XxȨή~zvo_I%5AXxȨήngc__ZQE2=Q_jxȨäήnNdwxfWAQj}ɽήnYwoT_}·tήn_`cǼvjsήn`a]z{odXSsή`Njui]QF:Ssήź}^=UhqnbWK?4(1PoˮsV(G]}ĤpŻzodP =]}ĤqͳpP7)=]}ĤʳsS39HR]}ĤϯpP0Repzĭ»ˬlL-fɿqlllzȨhI)st_LL`ĤeE%s¸xmb_WQSQgļ~_@!jyodYODMbprqo˴vW8\t{qf[PF;1B`z̭oP1GZff]SH=2(*JjågH) +.=FG?4* )Ih°|_@!&'! "@_}iP55Qj|{jU<# +$88871$-AQXXXXXb¿_XXXXWO>) &AZnxxxxxx¿xxxxxwkV=!2Pm¿iL-7Ww¿rR27Ww¿rR2"8Rp¿kM8#6Odrt}}}}}}¿}}}}}|treP7Eb|¿}cELl¿mMLlmMIghJ=Xo¿pY>+B_w¿v\C,-Lk¿iJ*.NnʫkK+,Lk¿iJ*+B^w¿u\@-BXgllllllll¿llllllllhZDUo¿rW`¿caĤd_~bSmoU@UdiiiiiiiiiiiiiiiiiiiiiieWB (085L]efdXD2222222222222+ *GbyrYQRRRRRRRRRRRRI:% 4SrgqrrrrrrrrrrrqfR:6Vvƫ~fI+#6Vv˫qQ1/@KVv˫ϲrR2G\jmv˫ϲrR2Zt˫ϲrR2e˭vbbbbboϲrR2gǸxXRRRRoϲrR2d˫trrrrrrϲrR2Wp˫ϲrR2CWdgv˫ϲrR2*;EVv˫ϲrR26Vv˫¾ͲrR2-9Vv˫¾pQ1:KWcv˫¾~ccccz|cM#4Onfnµ¾~^>::Rrplr¾~^ZZZZsίo`~{nab¾~zzzzzz˫lRj{wj]PDb¾ťf=P]`YM@3@`ʻȷa$4>@;/"9VspU  ,Id{x_D7N_lx{{{{{{{{{wl_K3 (082J\fgf[H=@@@@@@@@@@@@?7( 'D_wu^\````````````_TA*/Onlz~nW<1QqǯzgH"1QqϯlL1@IQqϯ̬lLI]ijqϯ̬lL^wϯuuuuu̬lLkϯ_UUUt̬lLm_NNTt̬lLkϯnnnnt̬lL^wϯ̬lLI]ijqϯ̬lL1@IQqϯ̬lL"1Qqϯ̬lL(2QqϯlL7FQ[qϯggggjdFPcoyϯ_GGGXl||lVe}Ƚ_?'/Oogq_AAAQq®orøaaaaasͭmfyncɩjXq|qf[PaãdCWdf^SH=Fcþ÷ƻ̬lL#Ccþƻ˫kK!.CcþƻȨhHQ]_WK>2@_}ɳz^%4=?9-!6TqkO  )E^qr[@0EUeoqrrrrrrrrodWE. (08#,6?LZef\M_hhfZG. '.8AKT^iwwczt[?"'6>FMV`is|{hI* +AS]elu~ȫkK+ Xn|ʽ˫kK+ hοu˫kK+ nû˶viu˫kK++& i˶veXUu˫kKKKE8%]x˶vjkku˫kkkkcR;Kaoslk˶z˫hMRjy}}}˶˫wWb˶ʹyYi˽˫vWi˸˫~hMa|˶v˫kjjjbQ;Pfuxxx̵xxxru˫kKJJD7$9KVXXpбrXXUu˫kK+*& .78UtͭnN8Uu˫kK+ &B`~ȩiJ5Uu˫kK+&&#;SlżcFFUu˫kKFFF>/,>Phΰuffffu˫kfffe[HDXj}ƾ˫u^Wq˫lcĬ|ưpehn\x~j]w|bKbyvdRJ_loooooooooooooonbN5L^hg[I72CMOOOOOOOOOOOOOONE6 (08-H_pvvp_G--29AIPX`myvcO7:XttXGLRX`how|dH* @``glqwpQ1 @`yƺqR2#@`ûfI+/@K`ľ¾reR9G\jm¾~laUI9% Zt¾~^C7-,%e}eb¾~^MMMLB2gmm¾~mmmmk_Jd¾x^Wp¾jCWehȬl+;F`¾i @`¾t[*8C`hh¾~hhhhfZGDUamĦhb¾~^HHHF=.[qɿfb¾~^>(('kȻt[b¾~^>qĸwj\Gb¾~^>ktgZM@Bb¾~^>[v}pcVI=0#Bb¾~^>I_otl`SF9,"Bb¾~^>2EQTOB5)"Bb¾~^>(240%  @_}y[< +6Rk}hN2 %>Saee`P;" (08"^~¢v|g#>^~¢v˫ǧg/@K^~¢v˫ʪǧgG\jm~¢v˫ʪǧgZt¢˫ʪǧgf­˫ʪǧggǭ˫ʪǧgd§˫ʪǧgWp¢˫ʪǧgCWdg~¢v˫ʪǧg+;E^~¢wʫʪǧg>^~¢wȨʪǧg>^~¢ťʪǧg+8C^~¢ãʪǧgEVam~¥ƽ~ʪǧg\rƻ˵wʪǧglͮvʪǧgrźvʪǧglyͳzvǪǧg`|~rr¥lrǧgOesul`]}ʱz]czyǧg8ITUNBZykOM^ggeyg,4601Ni~qW>3AGGSp|`";Qhx{q\D*"')D]qzzvgP (088N_ggdWC>UemibT@' .Je{pWOkmT8 7VueZyaB)))))%9YyǨhc¤dIIIIIID7"9YyȨhlɹ|iiiiiiibR.?JYyȨhxΰiF[ilyȨléxZsȨɻ{eȬǬǻ{gɷʹȹyeȩȫrlllllʸxXqȨͶdaaaak˷wDXfiyȨ̶v,3(=]|ͯqR,ZrzcH5RllR5 )HgsT?^}}^? +*JjǶvV@``@ *JjʶvV@``@ #3P[]]]]]]vǰq]]]]]]]]VF19Tkz}}}}}}Ǩ}}}}}}}}}r^DFdƽpRJjνwWJjŽ÷wWDb}ǭɸmP6Pftwww̳̳wwwwmZA+;KVgwʸưrbWPA,DXer˶ȳ~odVAYqƳ¿˺nTfɻq¿tƶ`j¾uu¿uucb}¿vZPi¿zcJHVv˫xɩi`pw\I[gq|˫ɫxɩiIUenl^I_v·xɩiI9HOMB2oǻrxɩiI))/-%s{pdXxɩiI) +kti]RFXxɩiI) ^yynbVK?48XxɩiI) Laoqg\PD9-!8XxɩiI) 4EOQJ>2&8XxǩiI) (01+  6UtfG(  -Jd{qY=7N_ggdXD, (08*R^a}ĤĤǹyʶv%5?]}ĤĤǹyʶv +=]}ĤĤǹyʶv%2=]}ĤĤǹyʶv?P[f}ĤĤǹyʶvWlyĻüĤǹyʶviȼĤǹʶvrĤǹʶvn|˶vb~ync|ıʶvRix{rg[P\|Ĥʶv  ,LlfF& -MmǧgG' -MmͳǧgG' -MmͳǧgG' -MmͳǧgG' -MmǧgG' -MmͳǧgG' -MmͳǧgG' -MmͳǧgG' -MmǧgG' -LlfF'2J`y¿u\H0%B_w¿u\@"-Lk¿iI*.NnʫkK+,Lk¿hI*4C^w¿u\C4M`kllllllll¿llllllllk`Maz¿zan¿npɰpmm_ww_J]hiiiiiiiiiiiiiiiiiiiiiih]J (08 $=RaffaR@VhokeXC+4Pj~~kQlqW;>]||^zdD% @`bĥfF222222- #@`iǼ~_RRRRRRRKQ]_WI\r˱ƧjK%4>?9/EXkurŵƴaB ++?NUinT8$0>WmqvnYA'*@SdlhY[efhhgbTA, (08 (AWfllgWDDDDDDDDDDEF@7(6Snodddddddddddf_TA*?_~~nW< @`fH( )@`īkK+ 5FQ`ϲƧgH( Laptб¢cC#]yаqqĽ~^>$gϯokʷx^P=&gͭб{kS9c˫ˬcETl}©iI?R^a{̴dF&6@`~¾˸z[= @`ýɬrɭqR4'5A`ɷǺȺfI+BR_kıбǫƪrV:Yn|ʫǸʷcG+kʽɯèpT8rǺ˵yƮ|`D.#mɫ˿m[L@1a}rvɹDZƿvj]KPgvyobrũǴx`:LWYQbεƵʽn /89CcŸxizƮp*gīzǯkWDgæǯ~fvŭq]cʳs]vıpUm~űiʷz@S`cǧk˵u'7A`ǧk˵e @`yǧk˵u}zjS#0@`ǧk˵u][O=>NYdǧk˵uU<3#UjwŵĤk˵uU5hʾk˵uU5q·ɸ{k˵uU5mwʬqk˵uU5_{{pg{žek˵uU5Nfw|ti]lªvYk˵uU59LY\VK^|Ʈ}dKk˵uU5 0:<7@`hPKkƵuU5:XtlS;IhqR3-H_vygT?&>ZrxaF* 2I\hi^M:'-EXdfe\K4 (085K\ddbVB*2J\ghg]J3 +HbxpW<&C_ww`D' 5TseF'.NmnO/7WwĩiI)0PpȱqQ1%7WwɩiIFFPpбqQ12BLWwɩi_ffcpбqQ1J^kmwɩm|pбqQ1^wɩбqQ887.jɭƦбqXXXVK9kǺƦбxxxxufOhɩƦб|`[sɩƦиhFYegwɩzƦнh-=FWwɩzƦбb7WwɩƦб}}}}yiR!/:WwɩƦбq]]]ZO<Q]_WJfʰp%4>?9Ddm +;Wqx`+DYgjjjjjjjjjjjjjjjji^K (085L]efdXD-'+/5:?DJQY`^R?* *GbyrYCGKOTY_dipx|lW@&4Srgcfjnty~mQ46Vvƫxz[;#6Vv˫{[3"gǻǧtͭmbbb]N:d˫ǧаzgNWp˫ǧβy\CWdgv˫`+;EVv˫dzȹ_6Vv˫ǧĽrV6Vv˫ǧssssm\E*8CVv˫ǧg{Ǩi_`VE5DUalw˫ǧgsͮo~raN[qǻǧglʴ{clǧhrûorƺǧƨαqly{ǧȴήoa|~sgiDZȽªɫlOesvl`UXwɾd8JTVNC9Yx÷v|xZ,560%2PmwmbXg~jN %C_x|pdYND:Qes}yhT=3K_klbRF;0&$8HV]_ZM;' (08® (BXhmmhXBCCCCCCCCCCCCCCB:+7TooYbcccccccccccccbWD?_~~tqZ @`i(@`ím3EP`ϲlK`osϯ|b\xϯrrrrrrrrrrpcOfϯ|nZAgϯmObvVTl}ϾĵίrS?R_bϴίĦhJ&6@`ͭȹuuȻ~_@ @`ʪǫqǫsV7(5B`ǧȹʸdH,BS_lſäǪĨpT8Yo}ɿżǸʹ|`E) kɼ˴˱ƽmQ5rƹ̬px]C1#m«p]MA2`|~qzͰǿ°xk^KOfuxnavȸɷx`9KVXQdǯǾ}ƿn.78Cbpcuǯq:WqwfUI[mg+DYn|}vwj[K:.ASdrmT,AS]][edYM@/&8GUbhcU? (08î/Iarwwp^GIKKKKKKKKKKKKG;)4K^pyzzzzwiXB &>SbgbUG9&1DSYZZZZXM>+ (08Į $=R`ee`Q<]{{]mnS6 @``{}]>#@``}ȿ_?/@K``}è¿_? G\jmm}ã¿_?5+Ztã¿_YTG3fĽ~¿wyr`Hgǿ͵w¿tWdn~_Wpưzt{aCWdgįx[+;E`vdL @`ƩkK7!/@`˶̹~aD%,#o}qdn{˷wj]SKA1cymktzrj]ITk|the|ɺ̿v]>Q]_WTsŸi%4>?9UuǾswk +/Nj}qdWZgt{`#?[twm`SF:=JWdqy~iN/G[giaYOC6) -:GR[cgaQ; (08Ů7KY]]YL8 4K]ghg\J20Kdv}}weM1)E`xw_D)2',IgħlN1I^kmdYMB6+  7Vs̸}_B$1BLNF;/$ ;[{ȫpS5$,.(8WudF)   .JdxpV:7L[djfXC* (08Ʈ +&@VgmmiZE:QdmkdXD,4QmrWKgrY= <\{bUtgG(=]}Ĥd]|ȩjJ8888870")=]}Ĥdf¿cXXXXXXWM<5FQ]}Ĥdn˷yxxxxxxxviTLapt}Ĥtz˭f]yĤogĴͽžogʹ̶hcĤļ~}}ί}{nWTl}ĤȻĦkƧi\RA?R^a}Ĥʺвvɹ~aB5'&6?]}ĤéþʭrT7 =]}ĤDZɬ¾eH* *7C]}ĤǷαvY;DUal}ħƪ¥jL/[qĸrƻ˰{]@#lʿ~iиjS?* rŹ}qpſǮlWD5'lwkex­p`QE7a|~rfgtʽƱ|nbQOetvl`Wqǵʷ~f8JUVODcȿvfyĵt-571Een\L_rıv >\wxeSA3FYlk0Kf|vi\K9',?Rbo|oW9O`ifYL?1 %7ER_gcVB (08Ǯ"?8PpŷtZA]{uW +Igv`G3Og{{eK;Tjq]I3":Nbptttto`N8'=TdkgXD0 !5GQTTTTQE4! (08ɮ $=RaffaR=$5M`jkj^J24Pj~~jP4)Fbzx_C% >]|{]=5PolL5553+ @``UUUrˮnUUUUSH7#@`uuuuuήuuuuurdN/@K`ή{`G\jmεiZtjfήdgǿή|lUdȨήʶvV?WpȨήʶvV6CWdgȨήʶvV6+;E`ȨήʶvV6 @`ȨήʶvV6!/@`ȨήʶvV6]|{]=Pi}xiN1 @``@\{yZ:#@``Dc¾`A"/@K``NlȺŦhJ+ G\jmmgwϱίrT5Ztåȹ|^B% fɸ|æmP4gǿŪqwʹ{aH/d̵~ppçu\EWpƾʻr\CWdg϶o+;E`ɼͷx @`Ǩt!/@`ŽŦzcUfmjcUA( /MhtZPknT88WvfZyaB#9YyȨhbãdD====?9-'9YyȨhjǻ}^]]]]]_WJ93DOYyȨhsϳ}}}}}}}tePJ_nqyȨqǨ}b\wȨǽkfȱθ̸Ħig÷̵Ǻ~_cȨβ̵xϰsUUmȨľ͵¥iK@T`cyȨɮv͵ʵz]@'7AYyȨpкmP3 9YyȨou}`C& -9YyȨzyʫs|xhP5;KWbyȨ̵x\YM:# ThtȻ¶ͳfJ1! gɽħɭvZ>%r÷z˱ĽjR<&pusǷ̱iSB4d|pk{Ȼqím_NTl}vjaxɵw]sĮ{d?R^aYPoïtaJ`{ŵt&6?A;SsŶo[G4MdxĴw !-Li|iUB. 6K`um"=Vm}n_P<) 3H]n|rZ)@Ucg`RC4#0BQ`ifYE (08Ϯ";P`ffbT@222222222222222+1Nh}mSRRRRRRRRRRRRRRRJ:;ZyrrrrrrrrrrrrrrrqfS=]}Ĥf"=]}Ĥq.?J]}ĤòrF[il}Ĥ͵nZsĤ§t^eĬj˰{gccccYHgƦƨn[HC<.eĩžubL6 XqĤºƪȵycM8DXfi}ĤƦ˼{eO,[r̲ɱ¿̹ͶkQk˹u¿˽sʱ|]pɻ¿`i¿uYXoxaIBYq¿xX8,Jg¿mP21BThtuuuuuu¿uuuuuuukYC2I^loooooooo¿ooooooool^I[v¿v\f¿ggƨhdeVopWBVcffffffffffffffffffffffcVC (08Ѯ %>UekkgYC*"/@T`c}Ĥoϲ˵uU5'7A]}Ĥoϲ˵uU5 =]}Ĥzϲrk˵uU5(5@]}Ĥϲrk˵uU=0BS^i}Ĥϲrk˵ud[J;Yo|ľήpk˵wgTkĹȩjk˵irȽdk˵um}|γy\k˵ɷwa|vj{¥kNk˵ɶvPfuxncoĭz]Kk˵̴t9KVXPaƮiOIiƾ̮p.78DdjS;Bag=[wkT=%8UorY0Jd|wfT>')BWhswwwtiXE7Oaki\K:'*=JTWWWTK>, (08Ү1I\hji_M54K^iji^K3&+*"$B^vzbGEayx`D6DKJ@/ ,KkpQOnmNSaki\H3 -MmʳsSQqʰp`o~u`I. -Mmͳsjjqаp}uY; -MmͳаźaA -MmͳаȺ}^? -MmʱгlR5 -Mmͳ¸}k[E -MmͳаyxrW#3Mmͳsszаqff~`KQQYxcevWQQMA.%@Wiqqq{ťqqȹyqqql\E+3QmťȹrV9:Zyűȹ`@:ZzaA8Wuťȹ{]>Ie|ťȹ~hMTséȹwXVvɺzZUt̷ȹxYJf}ǪȹiN9PbkyϷȹykkkkdS<.Li̻¿ȹy__]RF9&3Ssɶ¿|mU;2Qp¿eG(.Nn¿kK+.Nm¿jK+4Gd¿}aD4M`kltvvvvvv¿vvvvvvslk`Maz¿zan¿npɰpmm_ww_J]hiiiiiiiiiiiiiiiiiiiiiih]J (08Ԯ 'AWgmmhYC*,KPPPPPP]}`G\rzgQ8(BXippppppp¢b^t~cF'6So¤kvmM-=]|ɲ}ͷjK+>^~ϱĩʵu\@#;[yĦĺır]H02Nh}̲¯ǼpZE3)";P_emǺ¢ʹsdZRF47M^jxĽ¢žypaKIdzǻ¢ʻx\UtĴ¢ǿeXxŹþfydQn}t}^\jxqWB[t}www¿wwwwww|t_E/G[r¿rXG2>^}¿|]=>^~¿}]=.@Yv¿uX@.E[jnv~~~~~~¿~~~~~~vnj[EXr¿rXc¿cdĤdaaUnnUAVcggggggggggggggggggggggcVA (08ծ ,479;=?ADFJNRVZ^_VE0 +#9JTWY[]_acfimrvz~r]H/6Peswy{}u[>!&Eb}gG( ,LkhH( +Kk˺¿ĥy^A" +Kk˵¿ʫoaL2 +Kk˵w¿̲tU6/Ooγt¿ĺ|]@#8Vtͮn¿~¥jM0+Daƨi¿vβwZA()>Wqƺb¿inV@.AVkˮsb¿_y̴m[ETn˸fb¿_kȰrWažq]b¿_]uŴbc}}}}}}}}b[w¿sXJbz¿v_F5M`~¿}]I24DWs¿rUD4Malnqxxxxxx¿xxxxxxpnlaMaz¿zam¿moǯokk]uu]H[fggggggggggggggggggggggf[H (08֮ (C[nvvvvvvvvvvvvvvvvtfP64Ro}bD&!:ZzkK+(MjkNVuvWVv·wWSqþ̵rTF`vƺ̵xfM3IZbbbbv̳u̵ub}y\/>ITewét̵}}a0H[gr˱̵_A]uƵʶ|]Lkǽ¿oSNnĽ¿y_CGd¿|`K39Rk¿}]=5EYw¿uXE5Nbmnw~~~~~~¿~~~~~~vnmbNc|¿|co¿oqDZqmm_ww_J\fggggggggggggggggggggggf\J (08׮ $=RaffaR=$9N^eebUA(4Pj~~jP4/Kf{nU9>]|{]=8XvbC$" @``BB[{ŦfFBB;-#@``bbb{ƦfbbbXG0/@K`{Ʀt]C&G\jmƦmO0Zt²rR2fƲβrR2gǿƦβrR2d{r{ƦβrR2Wpjb{ƦβrVDCWdgƦβqY+;E`ãβi @`­m!/@`ĻmQ]_WJe˶ydOhǶt%4>?9GguaL;Ti}IJw +"@^yq\H3'Saff`Q<##############5Rk}iOCCCCCCCCCCCCCC>2 ?_}zccccccccccccccc\M7"Bb¾~ydK#Bb¾vX/@Kb¾û{[G\jm¾Ȳz[Zt¾nRf¾ɸ~rrjXAgǻϰdL?+d¾ĨhH(Wp¾¾ŦfF&CWdg¾~nʶãcC#+;Eb¾~w̭qq`@!"Bb¾~ĥhhý}^>"Bb¾~ǻƺ{[;*8Cb¾вɷxX8DUam¾δtT5[q¾ŹϰqQ1(k˿ͭmPOF6qŹ~rpppppwɩppocOkƦ|b`{~°nNdsuleůo7ITVNbk,468Tmt\ (@TaeeeeeeeeeeeeeeeeedYF (08ٮ4L_jkkkkkkkkkkkkkkkkkkkkjaO7Eay|dHOnrSPpʴtTNnqRD`xͳƻʹ{cH3K^i}Ⱥȹn`N7)FazÿŭŽsZB4!1QpëȰĿx_F-3Ssɺì}˸u^E,.Ljʸª˸rYA(">Wn̶ʸnU:*AYpɯ~Ⱥ̳eG(+CZr¦˱qȬlL,/EV_`z¿kvhI*&B\r¿vaH,0Om¿sU63SszZ:3Ss¿yZ:FXi¿nXF[s¿s[j¿joįonnc}}cOdpqqqqqqqqqqqqqqqqqqqqqqpdO (08ڮ$2:;=Q_cc]NFFFFFFFFFHD8)(>PZ[Zj}zffffffffffhbTC-;Uky{z}pZ@#*IgþkL-.NnþDZqQ1.NnβþÿħkM..Nnβþʭ˹}_A$.NnβþŽ¨qT6.Nnβþ~βʰ{aF* .Nnβþ~ê˸iO4.Nnβþ~wɼqWA8/ .Nnβþ~zl`WL:.NnβþɵŵvgQ.Nnβþ˼³~b.Nnþɾżj)Gdwwg8Vs¿tY>^~¿|taH>^~¿}]H35DYw¿uXE5Namnw~~~~~~¿~~~~~~vnmbNb{¿|cn¿opDZqlm^vw_I[fggggggggggggggggggggggf\J (08ۮ (@Tbee_O9)))))))))))))% 8Tm{fLIIIIIIIIIIIIID8%#Cbw`iiiiiiiiiiiiicR<#%EeŻ{{iO2'EeŻ{yZ;6EMeŻ{ɼ|\%sǾ~eeeeeeeeeeeeaR=oŻ~kQaxŻ|^K]ggŻa1@GeŻ˰`%EeŻǾqV +%EeŻ{~{α}ppk[D&4EeŻĩqUL@.AQ^jŻαxǹeI.Xm{ŻķjɭuY=!jͰwruļiL/qȻľ̰wZ=mxȭžhKa}thz̰vYPfvyocVXwžf9LWYRE9Pn}y~j /893('C^turokhda]Zp~b +1GYb`WROKHDA=FbzwgQ-;BA92/+($!5L_ih\L: (08ܮ $=RaffaR=??????????????>5&4Pj~~jY______________]R?>]|{v|lU @`d#@`j/@K`ŵiG\jmť{`Ztťþ~uuuurdNfťý}xxxufP7gǿťļ}aCdŸŻiJWpŽǽʪjJCWdgťɷȨhH+;E`Ĥʵ}ƦfF @`äϱ}ĤeE!/@`þ̬£cCQ]_WJWwĶ|fj}Ȳ~_%4>?98XxxcOQe{` +2Ol}n_K68McyrV$?Woyo`RC2 6Lavo\E*BUac[PD5' 4IZcaUB/ (08ޮ#=ScjjfWB)8QeppdWE.2OjoV<\zwZ;*JitU5 +"Bb_?/Kk˶vV6///)"Bb¿_OOOk˶vVOOOOG8#3Bb¿ooooo˶vooooodQ=O\b¿˶fRjz~¿˶rb~¿ƴtg¿ʫƨpg¿ϲƽwa_{¿Ⱥfvϴwe\JNdtw¿wƨmŨnO>07IUb¿_uδx˷~aD',Bb¿moƩpS6)Bb¿~˭ɸ~bE( 8GRb¿ǻǪpT7Pdpz¿ȶ̵εbE) e~źq˺nT:'qʾwǾzgTA0%qø~r~Ǿ˺mZNB5gwnz̻xl`OYr|pezñǴ|eEYeg^Smɹso˿t,;M`rl7Og{rdWF4#!3EXgsrX +"9O_eaUG:++=JVbjgYE (08/CQVVVVVVVYTFJ[eedYF/*D\ovvvvvvvyr``ws[@#6TqyojK, <\|tŮnN.<\|ŬwʫkK+ <\|Ĥʱ|ɪkL-<\|Ĥ̵ḵtU6<\|Ĥǹujĺ}^@#<\|ĤƸwλåkN2<\|ĤǺů̲z]A(<\|ĤͮɸlU>( <\|ĥƬūɴkTB4$<\|Ĥľ˱ǯo^P><\|Ĥ̸qŮ{kS<\|ĤIJt_yȶc<\|Ĥȼ`bwéi<\{zzzzd5SolT(B`iW?(@`dD)AUcvzbS>TnkQa|]d`c~_XroTE[jnnnnnnnnnnnnnnnnnnnnnnhXB (08 $=RaffaR=$,E[immeU>$4Pj~~jP4;XskO2>]|{]=2DdyZ:23-" @``RRReŻ{[RRSL?/%@`krrrrŻ{rrrsi[G2BL`Żt[J^kmŻg^wƨijãŻƼakǻãŻϳvWhãŻŨlM[sãŻ~`BFYegúŻ~^>-=F`Ƽʹ|]> @`ûǩ̮rS5!/@`˷{ÿgI+ Uivɽ̸żʸgL1hŸΰ̲èqV; rŧȽǰ{`E0%oƼʱyiYNC3cyȬýɵwl_KTk|thɸ̽x^>Q]_Wp˾j%4>?Ooupj +(FbzxiYTdty_5Mcw{zwk\M=9HXgr}zfL 6KZ`\^gdYM@1!,&'2AWgllfWA1#4QklR5BPVonYO='>]{}^D\nv~}xjT<$ @`aTpiQ9 "@`a`~~fN5.?I`anŽë{bI.F[hllͰuZ?YsǼɼkPeŪͲ|`gǷʹèkdjXqw^DXfigJ,]|{]=4Qj~}iP3 $=R`ee`Q<# (08"3@JKD6@VejjdU?8HPPG8'#;O]ikbOSmlRPdppdS@)4Phz|e_}|]d}mU: ?^|za_udE& +!6Ec¿vlƩiI7"7Obm{ȻʹmcP8Gc|βƼ}dHPpqRQqγsSQqϯγsSQqϯγsSQqϯoggg¿gggnγsSQqɯoYYb¿_YYnɳsSOnyyyy¿yyyypQE`x¿ybF4Kg¿bL5'Gg¿bB"#B`}¿y\=5Pgw{{{{{{¿{{{{{{vdL1/@JMY[[[[[b¿_[[[[[WLJ?.G\illllllll¿lllllllli[F[t¿sYf¿ehǧgfdYrqXEYfiiiiiiiiiiiiiiiiiiiiiifXD (08 &>Saee_P;"1J]ikkaN76Rl}hN2$B^w{cH*#"!@_~y[CCKkqRCCB9*#Ccþ~`cccm˳scccbVD%Ccþ~~ͳqY2BLcþ~ͳhJ_kmþìl^xþļͳ̬ljþļͳ̬llǾļ|ͳz̬liþļͳ̬l[sþļͺ̬lFZegþļͻ̬l-=Fcþļͳ̬l#Ccþļ|ͳ{̬l"/Ccþļͳ̬l=MYdþļͳ̬lUivþɽ̬lgŸļͳ̬lqͳkn}wpͳs{acyl`aquummͳsfqqobNSk{uh[OBFRUUPmͳsSQQPF6>Q]_WK>1%)355MmͳsS310)%4=?9-! -MmųsS3 +  +JioP1"?[sw`E( +.EXdee[J3 (08 8M[``[N9=DDDDDDDDDDDB8(1MfyygN[dddddddddddaT@(<[yzawmU9 @`qcD% @`vħgG'*9A`vʱǧgG'CVacvʪǧgG'XpʪqqqzǧgG'gʪ||||ǧgG'lóʪǧgG'kʼǧgG'a{ǹǧgG'NcqsvʪǧgG'7GQ`vʪyyyzǧgG'*@`vʪssszǧgG'"@`{ʪǧgG'2@J`ʳǧgG'K^ir¶ǧgG'axɿʪǧgG'oɿʪǧgG0rʪjggzǧg\Jjʪǧw`^xyrʪǧoJ_lne[uDzr2CMNGTsq&-/-Kf}d:QdmnnnnnnnnnnnnnnnnmbO (08";P`ffbT@CGGGGGGGGGGGG?11Nh}mSbgggggggggggf\J3;Zyj~w`E'=]}ĤznO0"=]}Ĥ~DzrR2.?J]}Ĥ~®ϲrR2F[il}Ĥ~¢ϲrR2ZsĤ¢nnnoϲrR2eĬ¢fffoϲrR2gɪ¢ϲrR2eĩ¦ϲrR2XqĤѲrR2DXfi}Ĥ~¯ϲrR2,NYe}Ĥ¢ϲrR2VjwĽ£ϲrR2hƺϲrR2rqQ3ospj_LdywyaUl|~thkn?Q]^VMmɰp%4=?8Kjm +#A]vx_0H\hiiiiiiiiiiiiiiiih]J (08 :O_ffbUA666666666666666.!0Mg|nVVVVVVVVVVVVVVVUL<:YwvvvvvvvvvvvvvvvuhT<\|ťf .<\|ťo9KW\|ť̿pPfuy|ťťja}ťĽ~pYiŹ͵w______^TCiż̮pTTTTTRF7)b~ťttttttpaK1Rix||ť|z˶x]?' (08 $=RaffaS>%.G\jmmeT="4Pj~kQ5=ZtiN0=]{|^?9FewX9996+ @`aYYYgǹyYYYYUG4"@`uyyyyǹyyyyysaI.?J`ǹuYF[ilǹ`Zsż`eż`gż{{{{`eżĤd[gv`XqĤds}^DXfiĤ¬nS,]|{lpQguV6 @`n̲rRiɷwW7"#@`nβrWiɷwWMQ]_WJ>1% 6Vv˫kK+ %4=?9- 6VvūkK+ 4SrgH) +HbxqY= 5L]eecWD, (084K^hih]J2 :Qcmmj]I0 'E`xw_C-Kg~v]@"0OnlM5UtiI) + + 1QqɯoO6VvʪjJ***)"&1QqϯoO6VvʪjJJJJI@15DLQqϯoOLVvʪjjjjjh]JMalmqϯomk^vʪw^b{ϯwvʪlnϯvʮnpǪvʫllϯvʪx_^vϯrvʪkkkkki^JI[fgqϯovzzzʪzzzzsaI20>GQqϯ}ʪuX: 1Qqϯʺ_?!.9QqϯȻ¿_?Q^`XMB6HhȾ¿_?%5>@:/$(HhƸ¿_? + &Fe~~~~~~y[<;Wpzd^^^^i|{gN1+CVcff^M>>>>P^cc]O:! (08 $=RaffaR=259]|{nrux|nQ @`ɵwW#@`ƹsT/@K`ʿǭżycHG\jmʶǧþ~f]L6Ztʶǧ`@2fʶǧ¢bB"gǼʶǧĤdD$dʶǧƦgG(Wpʶǧ˫lM-CWdg˵ǧбqR2+;E`̴ǧͶwW7 @`аǧǻ|\= @`ˬŦaB"+8C`ǧ¤ŦgG'EValãþͱʫlL-\rƿǻϱtV8lƸʴ̯ƻ~`BrŹίʬŻŧkLlŦǩϱuY`|~r¼ûʹļkOesul`xͱĽͲx8ITUNYy~°x,462Plxxzogsl%@Wm}g^ij_PH_qysi~lV*@Ucg`PAJJB31ESYUQagbS> (08,DWdfe]LEFFFFFFFFFFFFFC7& =YqybefffffffffffffaS>% (HgskQ5 +*Jjƶ|^?*JjʶaA3CLjʶͳaAK_kmʶͳaA_xʶͳ{{{{{{aAkʶͳaAmǰͻaAjʶͺaA\tʶͳwZ@KkmP +&Ec~ooy_B7Qh{u\Xhv}~~~~~~~{oaL3 $;N`jh[G=KX]^^^^^^^\QE4 (08 +%>SaffaR=$/H]knf[K55Qk~jP4>[uxbH,?^|{]=IgsU6%!Aa`@Tr˸xXOA-"Aa`A_}ʬptm[C,/@Ja`KjľqYA)G\illhtϲnV<" [uĦ˳iO5gɶ|ɯ|bH.iĤŨ©u[AfȷĻnRYrƹε}aEYfiũo-=GaǴt!Aal$1AaǻoZ>OZdĽƻ{[BVkxķĽƻ{[;iɽĽ}ooooƻ{[;r¶Ľ}]XXfƻ{[;ovĽ}xxxxƻ{[;a|{oddĽƻ{[;Pgx|sh]QFdĽƻ{[;:MY\UJ?3DdĽƻ{[;!0:<7,!$DdĽû{[;#Ba}}}}}uW88Tn}h]]]]l~ydJ. (AUcggaQ===?S`cc]M7 (08 $=RaffaR=--------------*!4Pj~~jPMMMMMMMMMMMMMMJ>,>]|{mmmmmmmmmmmmmmmhYD @`qV#@`a/@K`ãcG\jmʸ`ZtȫmTfkx˸hhhhcU@gǭoʪzdOHE:(dʼ|fQ;#Wp~ɺʯſ~hP8 CWdgi~ʪ}eM5+;E`ʪ«{cK @`«ʪx_ @`ìʪȽl+8C`ŽʪjnEVal}vʪjn~d\rƻpvʪjYq|gQlevʪjKXeh`O:rźskkvʪkkkkki]Jlyʪw^a|~rkkOesvl`Umʭm8JTVNCLkk,560%B^ww^1I]ijjjjjjjjjjjjjjji]I (08 $=RaffaR@BBBBBBBBBBBBBA9*4Pj~~k_bbbbbbbbbbbbbaVD>]||~qZ @`j#@`¯o/@K`ȹϯoG\jmȹϯoZtȹϯofȹϯogǿȹϯodȹõãϯoWpȹããϯoCWdgȹããϯo+;E`ȹããϯo @`ȹããϯo!.@`ȹããϯoQ]_WL@HhȹyYcϯo%4=?9.(HhĹyYbĽk &EdtVXvx_;VoydIKf{vcK*BUbdd]L69N^eeedaXJ6 (08)AUbff_O9 8Oakki]I19Un|fL0,Ie|w^A$$CbwX94SrjK+'!&Ffƻ{[GGUuˬlLGG?1&Ffƻ{^gggu̬lggg]K3/@Kfƻ{y̬x`E(G\jmƻ{̬oP0ZtƻDzrR2eƻ̮̮βrR2gǹ̬̬βrR2dƻ̬̬βrR2Wpƻ̬̬βrR3CWdgƻ{̬̬βr_L*;Ffƻ̬̬βya&Ffƻ̬ɪβn"/Ffƻʱq=MXfƻ¿nUjvƻĨ˹ɬyahɽȫǺjjji_Lr·|}Ǻȫx_JJB3ovnľubOB3a}{okyë~ȹ|l_LQhy~ti^wȾ~jɼya;N[^WKkǵiUn³o"2<>8Ll¸weRAYoƮq'Eb}n\J8,BUh{f6Oi}~qcTB0);Naq~lS #@:.Ll¸v_zĦtpfT? + 'Ec~w`WubQI9'7Qir_JKezmU9+ $R_bZNUjvupjʺʷyZ%5?B<0=NWVPhƿqR + "#076B_{|aF4OeywnwfO5!8K^ih]UadffdZL9" (08 + *DYimmgWA' + *----9VqnS6----)*JWce\K8# 4QmrW:0.6?IS]gtxeP7<\{bKPMU^hq{~cF(=]}Ĥdjplt|nN.)=]}ĤoʿlM-5FQ]}Ĥ}ȿx_C%Lapt}Ĥûxk^K3]yĤxoeZNB2'gĴulcYWWWWWQB.gwwwwwwwwwn[CcĤoSTl}ĤzZ?R^a}ĤƿzZ&6?]}ĤƻsU =]}ĤƻuaH*7C]}Ĥfƻ{__XI4DUal}ħfƻ{[?:.[qĸfƻ{[;lʿfƻ{[;-'rŹfƻ{[NME5lwnnƻ{nnmbNa|~rvƻ|cOetvl`gƻo8JUVOIiDZq-571GfmSaff`Q<28888888888883'5Rk}iOQXXXXXXXXXXXXQB- ?_}z[nxxxxxxxxxxxxn[B'"Bb¾~mnQ2#Bb¾~vxX8/@Kb¾~xȼʸxX8G\jm¾~{Ʀ˷wW7Zt¾ãɴ˶vV6f¾˵̵uU5gǼ¾˴ʹt[Id¾ļγv_Wp¾ǹвnCWdg¾Ʋr+;Eb¾ͳϯq"Bb¾аͭ}d!/Bb¾ͭ˴̬ncPQ]_WK>2=Q]aaatȬo^Q=%4>?9-!$4>AAQoeG5% + !*IgoU:  ]|{tttttttttttttttsiU @`i$@`t1BK`tI^km˫o\v˫t^h˫kXGjǨð˫kK,gȸа˫kK+Yrȸа˫kK+EYegȸxа˫kK+,! 7Sl~r^G. '?Taffffc_VF0 (08 &?TcggbR=K_klf]K46Sl~jO_xxaF) + @_}z\kpQ1,,,,*""Bb¾~^s˲sSLLLLLJ?. "Bb¾~^|ɪllllllli[F%4Bb¾~hsZ?Q\b¾~u̵eTl{~¾~ǧgd¾ɻƦfj¾ʭĤej¾ɹãca}¾ȴaPftw¾˲ʹ¿`9JUb¾ʹľ~^-Bb¾ʹż|\"Bb¾ʹȺzZ*8Db¾ʹ˶wWDUam¾ĦʹϳsS[q¾ɿϯoOkȻ˫lLqĸǧhHktgpsusqädD[v}pcVJXhmm}Ǻ}^?I_otl`SF9,=IMkͱtU62EQTOB5) *JiĸjL-(240% #Ba~tZ?# +7Rj|}q]G- %=P]aceee_TE0 (08#&)ATacc[K53Oi}lR6:VnxbH+ <\z}_@5EdsT5553*?_¢bUUUhøxXUUURF4!?_¢tuuuuȸxuuuuqaK->I_¢ȸx\EZhl¢ȸeXr¢Ʀfc¬ͭƦfeͭƦfc©ȭƦfVp¢ëcCWei¢ϯpV+N[g§̭qzŦgH* Vjxµ¤gṱpR3iʸ{]mɷz\=sʽǪqScfI-oxxɹcFYw˭tX8KkqX>% 'C_|Dzt&Db}v^D+4Pkj6Pf{r]H1 $>VolX +#9N`ifYE0)BWfkeT? (08#, 3Oi~mSLhy{jYG6" <[z~`WvtbO;&>^~ãcYyɩ|hS>( >^~ãcYyɩ̻kU;+'7A^~ãcbyɩ­fWE@S`c~ãȨƭr[Um~ãǧkcã°pgó³ogóǨe]xãǯs{rfRKaos~ãsrƷz̶xXJ94EP^~ãcoοϯqR2(>^~ãdtε˭ŧjK, >^~ãǩǷǺ~`B$.RdqkS #9J[dbVdhaRB2%8GTagbS= (08!:P`ggcVA)*$'/7?GO[gmgWE00Mg}oUHJCGNV^fnxr^D):Yxbgi`fmu}pS4<\|ťt˸xX8 <\|ťúsU6'7A\|ťſ¼ɹxbH,@S`c|ťʷȺ|rg[K5Um~ťʷǻ{[IA?7(cťʷwż|aaa_TAgôʷþ~nWgųʷf]xťkKaos|ťʷƴk4EP\|ťʷɪ|a(<\|ťʷwtͭtttrdO<\|ťʷwn̳tUTSI7.)=]}Ĥ~»y[;5FQ]}Ĥ}hN2Lapt}Ĥ}tj_P;"]yĤ{tle^VPPPG8gĴpppppppppodPg~dcĤpTl}Ĥűq?R^a}Ĥϲm&6?]}Ĥϲu^ =]}Ĥ¾ϲreedZH*7C]}Ĥûǻϲzm^M=.DUal}ħʸѲyiXC[qĸг´qVlʿɪmsϲbrƹdoϲdlwɸ{\oϲw[`|~riŨpSoϲw~fKOetvmae~ʵ}aOoϲrjlcQ:8JUWOTsnROoϲrRMF7$-575UuĬ{_COoŲrR2' /MjgN3LknO0"=VmjR9$A\tv_D' )?UchbR<$/GYded[I2 (08 $=RaffaR=$ '@Veje]O;"4Pj~~jP46Sm{hO3>]|{]='Da~{]> @``@7RoaA&#@``@Kd}ӻkS<$ /@K``I^wĽͲiQ:" G\jmmgqȭŭgP8! Zt͵ì}eN:&f˸ª{gS@gǾȻmVdɾȹfWp̻ʷƭmCWdg˲h+;E`oX @`ǵuZB @`ŨoQ2+8C`̶}aD'EValo{zotÿoR6\rƻǭx^C' l͵fL1rźt˷ƽnT9lyma\vv\A' a|~rg[ODI_sƾ}fL/Oesvl`UI=1&2F[ovX88JTVNC7+.BWkƷzZ:,560% *>UkpS5'>Ukr\D( '>TemiZE/ (08 $=RaffaS>%-F[immfU>$4Pj~kQ5%/Qeq|ɵuZzǧgG''&e~÷oZzǧgG'qȽt^ZzǧgG'q¶{odXRZzǧgG'guj^RXjrrzǧgG'Yq{ocXL@QmǧgG'DXdf]QF:.:ZyǧgG'+;EF?4(9YxcD$%&! +1OmqW;&B]t|p\D+0GXbccca]TD/ (08+CWcee]L6L`lle[IK^hhg\I1SbggbS>%#&+049=BHPWXP@+5QkkQ@CFKOTX]agovxlXB)>^||]`cfjosx}oV: @`}cD @`fF#3@`Ϲy]@7(qȽͶ˴eM9&q¶{qŻƬzfQC4fujyƿu~m`NXp{oct˹{ay{cCWce]QgǴyeNfĵq*:DF?Iis`L9Sh|İt$&$B`{nZF3&;Ocwi4Nf|scTA-"6J^n|oV!9O`gdWG8( 1CR`gdVB (08%+-.02469ZxȨþƻvY>Sk{Ȩþƻ{kScȨþƻchȿÿƿhhȶþƻh_{Ȩþƻ{_Nds}Ȩþƻ}sdNCbȨþƻbCFf¦fFFfþfF?\wþw\?Lg}þiNWvþxYYyɻ{[XwyZMijOSaff`Q<;Rdmmj]UTJ9(5Rk}iOLhvusfTC1 ?_}z[Vuo]K6 "Bb¾~^XxʪxcN8"#Bb¾~^Xxʪȶ{fO5/@Kb¾~^Yyɩǽ|`B+G\jm¾~lizȨhXCZt¾ǧpWe¾ũcgDzƦfd¾ʬdWp¾¿ʪrXCWdg¾~klżʪ¤dE*;Eb¾~^l˶ʪδz]?"Bb¾~^rаʪlO3 "Bb¾~}zʪʪɮy^A$*7Bb¾ĥʰ˶gM2DUak¾ǺĿpYO?.[q¾ǻ̮ëxxxkZHkʮ~u]qƺ͵ʪolkyƼŶʪx˰p`{~s~êʪͭnNdsvlatȱ̹æj7ITVOVvŰ|_,560NkurwmQ#>WokZcbW]p{}}}}}xjXA)BWejcS>CC:CS[]]]]]YM?+ (08 $=RaffaR=$&?TchhcS>%4Pj~~jP46RlkQ77770">]|{]=?^}{]WWWVM= @``@AawwwwvjU%@``@Aag2BL``KAapJ^kmmk]ap^w{{ijnYkǺsShźͳsS[sťͳsSFYegťzzzzzͳsS-=F`ťͳsS @`ťͳsS!/@`ɳsS=7)Tk|th\mĻbC# + >Q]_WK`}ˮsV9%4>?9Ee¼gI, +"A`}uY=5Qi{|cH- +$>]|{wyyyyyynwxxxxxwjU @`g @`p*:C`˼˵ͼаpCVbd˵˵ͭаpXp˵˵ͭаpf˵˵ͭаpj˵˵ͭаpi˵˵ͭаp_y˵˵ͭаpLanq˵˵ͭаp4EO`˵˵ͭаp'@`˵˺ͭаp @`˵аp)7B`˵аpCU`k˵y{{{{{yаpZp~ȼ˵u^^^^^pаpk˵~~~~~~~аpqƻ˵аpkz˾аp_{shk˷аpNdsvmaUKk˵аp7ITVOC8Kkõwwwwwwwǰp,560%)HgpWWWWWmm =Xpv`E777C^vv^+CVaccZI32I[fgf[I (080I^knf[`kmlaXccYI:* %@\vvz{sueVE15Qlr^J6 /Ha|˱ͳwcL9&,D]uĽʶɸydS=(@YqǭvǹʽjO)>UmδyZBVkȨʲȾ~^ZoȾȪ|]oȨ¥lQzɾȨδ}wtv_xȨvspmũvnmiȨh\lquƺv̰qRgy~yȨhsȺͭn:NZ^yȨhƾƩk!1D[yȨr¿Ǹ~a7Up¿qT>^}¿waF>^~ädJ44C[y¿~`C4M`kl{¿}lk`Mbz¿zbo¿oqɱqnn`xx`K]hiiiiiiiiiiiiiiiiiiiiiih]K (08 $=RaffaR=J_lnh^M64Pj~~kQ]wzcH+ >]||^isT@@@@@@9, @`at̴v```````WG1#@`a~ɫt^D/@K`oŽpQG\jm}vVZt̶vVfϲ͵uUgǿžδtTdȫϳsSWpη̵˫вrRCWdg̵˫ѱqQ+;E`̵uu˫ήnN @`̵˫˫kK+@`̵˫ȨhH9HT`ťeERer~ɿ̵¢bNfȻ̵ʸ{bqĸ̵utnqt̵ujϯoe}pcl̵}}}}}}}ˬmVnyl_SLl̶ŦgAUad[OB5Ihɾɷa(8BD=1%!?\zpU "$2Nh{w^C";O^lvwwwwwwwwwti]I1 (08 $=R`ee`QCKLLLLLLLLLLLLI>,4Pj~}i`kllllllllllllhYD*>]{{zqW: @`bB#@`ĤdD/@K`ѱĤdDG\jmѱĤdDZtѱĤdDfѱĤdDgǿĤdDdѱĮbCWpѱƦrXACWdgѱ~ǧ~~~~|nX+;E`ѱʪh @`Ѿ;o @`Ѷ϶n*8C`ѱʶeDUalѱvļ~vvvuhS[qǻѱq~ĥ{s]lѱqṷnrƺѱwȶȴtlyqѱĨͱra|~sg`xѱĮƷίoOesvlaUMlºǻ¤i8JTVNC7Nnɼ{],560%(Fc|tlmmQ;Xrvne]UMTgx~{kXA,E[jngXOG>6.:MY^`\P>+ (08);FJJJJJJJJJJJJFBBH]jmmdR: '@Vejjjjjjjjjjjjebb^vgK.6Sm}uU6?^}ɷwW7@`¥ɷwW7?^}̴ȫťɷwW7?Vm̴ȨťɷwW7Ok̴ȨťɷwW7Xx̴ȱťɷwW7YyðťɷwW7UtίȨťɷwW7IcxƩȨťɷwW76L]uȹȨ{ɷwW7E`wȫxȨɷwW7Qp̴xȴɶwW7Tt˷oxɩrS4Nlɩ{cH+@ZpɩyZ;,C^~Ƚ}]=4C]|ɭz[C4M`kmɩlk`Mbzɩzaoɬnqɰpnm`xw_K]hiiiiiiiiiiiiiiiiiiiiiih]J (08,DWcff]LBDDDDDDDDDDDDDD=0=Xqycbdddddddddddddd[J(Gfswa +*JjƷq*JjʷĶv5DMjʷ˵˶vNalmʷ˵˶vb{ʷ˵˶voʷ˵ȫ˶vq˵˶vmʷ˵˶v_wʷ˵˶vJ\fjʷ˵ͭ˶v0?Jjʷ˵ħͭ˶v*Jjʷ˵Ĥͭ˶v*Jjʷ˵Ĥͭ˶v6CNjʷ˵Ĥͭ˶vQalwʷ˵ĥͭ˶vh}ȼ˵ͭ˶vx˵İ˶v{ƻ˵˶vqzn˵{pst˶vc|sh\k˵||wj˶vObmlaVJKk˵u\Yu˶v6EMMD8,KkƵuUTsþr'--&)IhqRKi|d !>ZrxaF?ZrwfO-EXdfe\K4-EWbccc_XL9 (08 +%>SbggbS>%+DZjoh]N9!5QkkQ49Wr{gM1>^||]>7CbyZ;76/! @``WWWlǽ~^WWVL; @`mwwwwвwwwwuhS#3@`æepķͳsrrr`@&jtmͳ`@ Zu}pcWmͳ`@ H^nsl_SFMm`@ 1DPSNB5-Mmų`@ '13/$+Kiy\= "@[svccccg{zgN2.FYdee[ICCCO]bb]N:! (08 +%>SbggbS>%-F\jmmfT=#!5QkkQAAYtjOAA>3" >^||^aaexaaa]O;" @`|ƺ{hO3 @`ƺ{]>#3@`aA0ITcrÿĿǮx]A#5BMXcnzƬʫɲgL1:P`kvȺǶmU; Mh|ƹȬɯoW@5%Zx˺ti_R>]}ƺǺij}kSVsǸz|ɻaGc{~ö¿k|¦f6Nal¿|`!<\{¿iP>^~ʽ}fT<5D\{¿z[E5Namn¿nmbNb{¿|cn¿opDZqlm^vw_I[fggggggggggggggggggggggf\J (08*BVcff]M6 +%?VgmjcT?& +:VoycI,6QllRA?5%%EdsT52Hb}|^a^Q?*'GgƷwW7H_vż~|kW?#'GgǷwWH_vƬkN//@KgǷwW_vϾuU5G\jmǷwlzͶʭrS4ZtǷʶŽfH+fǷıõêvX;gǯüɼɰ}dJ.dǷǽ̵jRM?.WpǷzƸsprkZGCWdgǷwr}Ūt[+;GgǷwŷʲi'GgǷ~ŷȪl'GgǷz˵ƽc*8GgǷñʮuXDUbmǷɻʻfJ[qǻ̺ÿsW;kɽ˺ëyaG,qĸzxv}eL4kuils{ʸiP8`{}pdj°zgT<# Ndsul_SZyȼq_M;'7ITVNB<\|ž{iWE3!,460$6Tpui^N<*  )FbzxncWK@3"5L_ihaYPE9." (08-F\jnfYHYtu_WfjcTD4"4Ojopp`O<),8<=F`{˵u{iVC0 +3HV\]^s¿vǷp]J7! ,H`t|}~ǭ¯wdN8!7Vsʹɶ|eO6<\|ʽ|cF9YxoO3RooO7F\pɬpn}cGQclrǺƴyγĭ}fO7f~ǫʰêy`Esɶĭ˵¾qUt¿Žɸbnf`x~|z¿}{yz^K^hp¿veN2A]}¿|\J7,>^~ý}]=+DYgx¿wfXCXr¿qWd¿cgťeecYrqWEZhkkkkkkkkkkkkkkkkkkkkkkgYD (08 $=RaffaR=%6Nalml`M54Pj~~kQ5)Gc|zaE' >]||^>;PpnN;;;;4' @`a[[[rͰp[[[[[RB#@`{{{{{а{{{{{znY/@K`аkG\jmлsZtĺsfͳjgǿʺzymXdſŽeYQ@Wpīvk]K4CWdgDzǯxaF+;E`ʶɱpQ @`~̽DẕsS!/@`îɺjMUivķŴx`F,hɻ{cK3rʾ­p\G1ozʷƲt^H2cwjgr}˶u_ISk{tgZqôθw^>Q]_WJdŶzixκk%4=?9Fe|l]N_uªm  ?\x}n_PA2G^t~c1KczxlaRC4%0G]s~hP6M^geZNC6' /FZhkcQ; (083IYbbbbbbbbbbbbbbbbbbbbbbZJ4E`uvaGRprTVv¸xXUu˳þwWMj˫þlO=Vs˵þ}]?4TtĽ}]=4Tt̬ʪþý}]=4Tt̬þý}]=4Tt̬ɰ¿ý}]=4Tt̬ǵ~ý}]=4Ttʽý}]=4Tṱý}]=4Ttǽ}]=2Qp¿y[;)Fay¿iO2$Dd¿nN.(Dd¿nN.AUcz¿gVATn¿oUa¿bdťecdXrsYE[jnnnnnnnnnnnnnnnnnnnnnnj[F (08,6841358;>BEILPSY_fjcR<% 5HUXSQSUW[^beilosxiR90Kbsxqqsuw{~dG(=[xĬnN.#Cc¾kL,#CcviYB#CcþoT#Ccþ}^#Ccƿ_#Ccþz\#Ccþ}iO#Ccþγs`Q<#CcþѱͳsS6$$DcþѱͳsS3%DdĽѱͳsS3)HhǹγsS3-Ml˵͵rS:1QpϰͭfJ,5Uu˫ͰrR3>]{ƦųsS3Hg½ͭoYFSp̳ͭs[b~ǩͭhoƻǬlpjex^Rg}onnnnnnnnnnnnnnnnnnnl_K:PahdVNNNNNNNNNNNNNNNNNNNLC3 (08 +%>SbggbS>%:ReomcWE- 5QkkQ4,JfrZ?*) >^||]HJUsiKJH>- @``hjjȮnjjgZF- @`sƽsY=#3@`ʮfFJjʷǧjV@*-JjʷǧnWA*:IXjʷȪǧİnWARftʽ̾ƽ£ȲnUfͿȲbqͺȸfp³ʮz^eyj¼kWpzl]\kzȮ̯oBVcf^O]vŰͭm*:DF@Kjîm÷æi%&-Mløk[z|^'Ec}~iSOi~nR7Pi~paQ<# &FerTnjP5 )Ii÷wXwȮħ|bG-*Iiɷw`ĥĤétY<5GSiɷwiƻ~ĤǻgKLbruɷwvβ|Ĥ˯vY^yɷħ|ĤƽffɷɹĤhgյİlbɷµĭmSk{ɷ˵̬i=Q]iɷȼ˵ϯrZ$4Iiɷī˵uvddcXE )Iiɷ²˵uĻ|]DC;,'5Iiɷ˵ucC$AS_kɷ˵w͸ǨjK-Xn}ɽʽ˵ưϱtV8iɻ˵ǼǻaC% pƹ˵ͯƨlR7ktk˵̴~cH2\wqdWk˵˱Ūu_JJarwoaTGKk˵ʺxǼw^4GSWQD7+Kk˵¨sg͹k*472'+KkŶì{aTnm  + +)IhhOA[u}b!>YriR:.G]r~gP-DXcefjcR<$0EYgjbQ: (08";P`ffbT@>;?UfmmiZDAFB8,1Nh}mX^ZPlqW`faVI5;Zyv~xfzh}tcK0=]}Ĥz|Ĥyx[="=]}Ĥ|ĤbB.?J]}Ĥʵ|Ĥ˹}_@F[il}ĤåĤʭqT6ZsĤβĤþeH*eĬ¾ĤβwY<#gƦˬĤj\ONYd}ĤɩãcUURF4UjwĹŵããcqshXHhʾ~ã{t_q·˴}ãpmw¥}ãɷw_{{pvʳz}ã˵uNfw|tiw˸k}ãʹt9LY\Vldzv]}ôɪn 0:CCCCCa|]CCCCC=07M\cccccc¿cccccc[K5.Kdy¿xcH,8Xv¿sU6;[{ùyY9$;[z¿xX;&8Qer¿rgT;Gd~¿gJNn¿rROo³sSKjnO@Zrа˶t^CGbxа˶pW]{{]`x~gK. @``muV6#@``o˸xX8/@K``oϱɸxX8G\jmmoϱɸxXC2%--'2I[eedYF/"$ (08";P`ffbTOPPPPPPPPPPI;'1Nh}moppppppppppgU=";ZyjN0& =]}ĤvWKE8%%=]}Ĥ̶vkkcR<1BL]}ĤǺβiNH]ko}ĤʷήxX[uĤϰ˻{[fįȩūɸxXgƦ̵vVdĦͰ~бsSVoĤʫlMBVcf}ĤĤfF):D]}ĤǾ|˫}gP=]}Ĥ˫}a&3?]}Ĥ˺h@Q]h}ĤʻhXmzȼŻ}aj÷ˮƼ{{whQrʾƭ˫ƽ{iYHn|Į˫ſu`a}v˫rQhwzqerʸ˫̹y;MX[SQpzv˫kr!09;5Gc{q_vƫkevy`6New}ugWSrgJZkuqbL 8LY]XJ?NURG5 0:=9-6L]ffdXD-#/53* (08 '@Tbff`P:F\koi`P:+*"8Tm|hMXs|gLJI@0"BaxZevhji\J5$DdĽ}]pʸvbI-$DdĽ}_{˭uW8" /@KdĽ}oȼ|\CA8(G\jmĽ}αͰvccaUAZtĽƿnVfĽʯɮegǼéidĽòhWpĽƽãy^CWdgĽãoaL+;EdĽãƻĤdF4$DdĽãƦĤdD$!/DdĽãƦ{}ĤdD$Q]_WLkŧͰwZ%4=?9Ooó}iL *HflusZ>:Ti~sYZhsuvvvvvvshZF-'- (08+DZimmgW@&7Oblml`M4:WqmR5*Hd|zaD'&&" "Bb|\FFQpmNFFFA5"#Ccþ~dfffrͯoffff_O:+Ccþ~ϯ|gM6HScþϯwYMcruþƼ|\^yþ̵ż|\gþ̵ż|\g̵Ķż|\bþ|\Sk|þѷtW>Q]cþ~ļбzny~~uaM%4Ccþ~бty~za #Ccþ~бm(6CcþбȲrCT`mþnZp~þɼĿбv_kǺб}xveNrŷбq]yz]mrekjepбq^|d`|}pcUHKJPpб~~~ãcOetwm`SE8+,0Ppбa8JUXPC6(/Ooʿʳy[-682& +)GekN ;Wpv]A*CWfswwwwwwvk]I0 (08 +&>SbggbSGXcjeVA(AXhoi]N:!5Rlk_tnT9SnzgN2 ?^}{peJ`}y\=!AavȬvZnſ`@ "Aaoýj{̰wZ;&.?Jah{αvýkdS=F[ilĽǭjOZsīƶyZeɻ{[gɭγxYeγiNXqγv\?DXfiγgG,R`d]PD7*%((.NnγsS3(((!%6AD?3& .NnƳsS3 !$  ,KjoQ1#@\tw`E( +/FYdfe\J3 (08";P`ffbT@GHHHHHHHHHHHHD8&1Nh}m[fhhhhhhhhhhhhbS>$;ZyukQ4=]}Ĥ{]="=]}Ĥȿ_?.?J]}Ĥγ_?F[il}Ĥγ_?ZsĤγ_?eĬγ_?gƮ¿_?eĩγ_?XqĤγ_?DXfi}Ĥγ_?,NYd}ĤγȵdzhVjwĹŹγħîrZhʾγsɾʹmYEr·γsǮ|iT@,owγ|gRD5b{puγžo`OSjz}ti]tθý|e=P[^VK\|ĽĶs#3<>88Wv~x}ıu0Nkxrle_Ydxk$?Xlvsmf`YSLF@9K_n}nW+?OVTMG@:3-' 2CR`gcVA (081J_lnf[cmmk^ebVG8( %A^xv~yrcTC2$4Qmo^LD=/,F`|˳̬yddZI2 '@YsϯǶv_D !:SmʰxͳʸnP 6Ng̸Ǻ´uU8Nc{ȨÿuVOe{ȯʯ˲iMa|ɹȨʶ̷jTDJQZbaWE/7UppUKGHLRX]cioxr\E, ?_~ekfglqw}rW: @`aB$4@`aA=P]`ſqV9Sj{®{riZD5b¢{uommmmmlaNg¢{bg­o^zȱqMcsv¨n6HT`¢w_+@`¢cJ"@`jJ1@M`ƺʪjJK]jwɿŻƦʪjJ`x̾ʵƦzzzzʪjJo˽ήƦfZZwʪjJrɻǨƦfZZwʪjJiuƦzzzzʪjJZttfvβƦʪjJG\jneWpƺʪjJ0AKNG]}ͳƼʪjJ#,.=]|ƦŪjJ 5Rmx||||gH '@Xpvh~p\\\cyqY=+CVbd[QbhheWC<NYd}ĤĽ}sssu̬lL,VjwĹŹĽ̬lL,hɾĽ̬lL,r·ɬlL8owpdPd{}cTl|~tizn?Q]^V[{ïo%4=?9Xvj +/Kezr[8M]cccccccccccccccccbWE (08/Kcu{{udeeeeeeeeeeeeeeebUA;ZwoV @`d @`ŧg'7A`Űf@S`cʸv\Um~{~ȫwpm_IcŻȻu]F2gÿȫǺs\CgǹɸoU]xͶhKaosɮt4EP`ήt(@`wvtssήss|g%@`ή|eR4CN`γlLM`lw¬lLbzƺήgIpήpX=rǻ~rjjjsήnjjjjh]Jhxήw_\uskήlH\ikbVmʯo0@JLDLkl#*,&B^wx_ 2J]ikkkkkkkkkkkkkkkki^K (08+CWcff]M68Oajg`TA*Iiɷ{e)IiɷveN%2IiɷĤdK8AO[iɷɭĤdD$[myɷŹɩĤdD$oɩmmmm~ĤdD$zʽɩiZZ^~ĤdD$xzzɩzzzz~ĤdD$lvi]zɩĤdD$[q~reYLZzɺĤdD$EV__TH;:ZzɻĤdD$*8@?7*:ZzɩĤdD$  8Xv{{{{{aB"/Lg}r[[[[i}mT8 :QaiifYE;;3Ssſ_?3Ssή¿_?3Ssγ¿_?3Ssÿ_E13Ssή¿r^G,3Ssα¿sW93SsĿ_@ 3Ssήʹï|]>1GXsήŽʽlWK8'D^tήij|ueM1PnζľǼz]4Ttd0Om¿}a&Da|¿oS>^~¿|o[C4C^~¿|\C4M`kt¿rk`Mbz¿zao¿nqɰpnm`xw_K]hiiiiiiiiiiiiiiiiiiiiiih]J (08 $=RaffaR=$ (BYinh^P;"4Pj~~jP47To|hO3>]|{]="@_~z\="" @``BBHgĿ`BBB]{g4Pj~~jP4Pj~zjS $=RaffaR=$=Rafffc\O= (08 &?Sbff`Q<"4L`lmmbO76Sl}iO2&D`y}dH*$$! !@`~z[DDMmqRDDD@4##Ccþ~cdddnͳsdddd_P:$Ccþ~γ|hN1BKcþγy[I^kmþľ~^\vþб¾~^hþб¾~^jǽϱqqqt̬¾~^gþ||||̬|]Yrþ̬hEYegþ̼o,Q]_WK>2%0Pp̬lL, %4=?9-!1PpĻiJ* +  *Hew]A#^}̯ϲeE6To̬ϲuZ=(BYx˶̬ϲ̰u]H.1Njǫ̬ϲƼhL0&6AWrǺ̬ϲȬtYA7&>R`ccʫ̬ϲ˵ec`S?Rk~²̬ϲ~lS`~̬ϲadåeddZu¿v[H^my¿wn_I1Ml¿iJ2.NnǫkK+2Kk¿hI3K_ku¿sk_L_x¿y`k¿mmɯojl]vw^H\giiiiiiiiiiiiiiiiiiiiiig\I (08";P`ffbTIYdjeV@'5NcopeWE.1Nh}mavmS7Ea|r[A$;ZyrcGPnkM-=]}ĤyƪsW\zɰpP0"=]}ĤrƻgiiK,.?J]}Ĥdˮrwͳy_Q=F[il}ĤȺ}jQZsĤŧͱ|^eĬ¢bgƲʶȹaeĩʶȹsXXqĤʶvȹyrm]FDXfi}Ĥmmʶvȹymk`L,NYd}ĤγȹlVjwĸƹήȹv^hʿƧiȹyhg\Ir÷ľhȹyYG?0ow~ͰwhȹyY9!d{pe{þihȹyY9Tl|~ti]jëwZhȹyY9?Q]^VK^|Ʈ~fLhȹyY9%4=?8Bb¯iQHhŹyY9 +=[xlT&;WozdJ-6NbmmaN;(*BVbee^M7 (08 (BXgmmhXB-F\jmmfT=#"+7TooT=YtjO66/#-?JM_~~_VexYVUM>)DZimmovvǺzvvujV="WqȹiL.bɷsT4cǿ˿ʹtT4`βͳsS3Tm²ϯͳsS3\uɽȩͳsYI8jžƴͳvcSm˷ʽȶidyǫð¹xXrȱź{E[uɲ}Ǭɷw?_hyèq<[z|a2PmjO&B\|cS=/A[z`B1F\kopl^IYsv[cfdƧgadTmoV@TbffffffffffffffffffffffcVB (086JX]]YK7EXdee\JVbee^M70Kdv}}weLZrwaozdJ-;Zwy[iptV7 @`alŴtŹyY9 @`al̴tȹyY:.'6@`al̴tȹy^XI5AS^`|~̴~ȹ~~ubIWn}̴ȹtWf̾Ⱦ|\l̷ȹ|\k̴ȹqTb}̴wȹywo]EPfsvvt̴tȹyYRF79JT`pp̴tȹypocO-@`̴ȹ|c%@`̴ȹo4CN`ŰpM`lwɺlbzǻu]p˵|ɺodZGrǻ|n͵iO6hznz«y]nɯ|bGZtthjŭ}fLZsésWG[hjbVZyƯhP9Gazɺd.?IKD;[zjS;#4Nhg!)+%4RolU=%!;Uq{_ + 'BZnzgS?(*FayweN,AUbf^N:&4L_ii]K8 (08 '?Tbff_P:555555555555550%7Sl|gUUUUUUUUUUUUUUUO@,!A`~xuuuuuuuuuuuuuuulZA#CcünQ%CcüyY4CLcü̿ϿyYL`lmüϱϯsU`yüϱϯuaGmüϱϯ|gMnįϱϯxZküίϱϯȼ}]]uüʸϱϯдvWH[fgü£ϱϯʬnO/>Fcü|ˬϱϯ£eG#Ccü|εϱϯɺ|]> #Ccü|ȻϱϯίsU6*8CcüϱϯåhJ,DUalüȯϱϯȹ|^@![qüĸϱϯrS5"kʿϱϯfWN=qŹ}xxϱϯxxxvjUkϱϯg`{~rϸϸpNdsvl`fp7ITVOC`}i,5605Phy}}}}}}}}}}}}}}}}|nX (08 '?Tbff`Q;"6Nallh]K37Sl}hN2Fc{x`D'!!!  !A`~y[APonOAAAA@7(#Ccþ~aaav˯paaaaa_TA#CcþǨ~nV.?JcþŽeF[ilþjZsþ´ȴjeþгƼ{`gɿȼ˸tqcNeþ˷zjVXqþǵ̶iDXfiþïr,NYdþɹy^AVjwþůηqbL3hʾľаqQ5r÷º̬mM-ow~~~~ȨiI) +d{pdYk|zsqodE%Tl|~ti]RG>Q]elȸ{\=?Q]^VK@4)%4>XxϰrS4%4=?8-" +8WvźjK, +0Onu\@#&C]tr`H/0GXacefebVF2 (08+CWcff]M660#5Pfuxxn[B' +)Ca|nQ2'FestvkV>IixX8 )IiƷjPIiɸxX8 +)Iiɷ|bIiɸxX80)0AKiɷèsWiɸxXQPG6H]jmɷǺqqɸxqqocN\vɷʮɸ|agɷƺʶliǶímfɷбiXqɷqZDXeiɷ˫~ʹzcbWD,!)Iiɷw|˫ħ¿hK.+8Iiɷ˫ȷͰvY;EVamɷ˫ĪƽdF]rɷƺ˫̲}ɫoQm˴˺ksζxXtź˭s]ivWnyw˴}}}wab}~rgrƷǾqPftvl`T`̲Ľµu9JUVNB@_~n-560$7Uotxe )BYpxb\hnuzzzzyxwtgR,BVce]L?HOVZZZZYXWUK; (08 $=RaffaR=%+DZimmgV@& +4Pj~~kQ5:WqmQ4%%!>]||^>Bb{\EEE@4" @`aACcý}eeee_O9 #@`aACcý{gL0/@K`aICcýwY9G\jmmgWcż|\Q]_WL@5)#Ccý}]IXbbWE-%4>?9." #Ccý}]=;CB:+ +!A`~yZ;##7Sl|hN1 &?Saee_P:! (08";P`ffbS?053J]ghg]J;=8-"1Nh}lSOUR_ww_Z]VK>+;Zy~dnuqmmy}tiXA=]}ãyȰ}nR#=]}ãаz[/@K]}ãΰаϷzZG\jm}ãǻа˭pRZtãǩаfHfíба̶z\>gǿɹаȪoaMdçаżz_WpãбjCWdg}ã˫k+;E]}ã˫k=]}ã˫k!/=]}ã˫kQ]_WJ?^|˫k%4>?9-5Qj|j +$04Pj~~j`ffaisYdfe\J3>]|{~xsw`E( @`|ƦoQ1#@`ƦƳsS3/@K`ƦͳsS3G\jmƦͳsS3ZtƦͳsS3fγsS3gǿrS3dgJ,WpnN.CWdgήnN.+;E`ήnN. @`|ήnN.!/@`ήnN.Q]_WK>5TtƬuV%4>?9-!-JgfK +R`dd_P[dddd`XK7  (081HZefe[H1 9N\fjbQ: %B]uv^C1Mfz~gL1 .MlmN;Zxx]A++++)!0PpƱqQK^~mRKKKKH>-0Ppбqkkkvɵ}kkkkkhZE1BPpбŨrYI^kpбʵe]wбǧgiбdjťįrXgб˶åɩiIZrб˶ȰɸɩiIEYepб˶ƮʬɩiI,Q]_WJ>KjɩiI%4>?9-$B_yĩiI +3LanpppppppppseF4EOPPPPPPPPPcxoW;'/000000006L\ddbUB* (08 $=R`ee`Q<#4JZhojZD+4Pj~}iP3GavrX?%$$$>]{{]DTrkRDDDD=0 @`dddx˲~ddddd[J3#@`Ūw`F/@K`˺pRG\jmĵuUZtʱ˵uUfʪŽ˵uUgǿʪ̯vq˵uUdſvvuUWpϱfCWdg¶o+;E`ο˿p @`æĥj @`˶ǽ~pY+8C`ç{{ΰv_^TCEValɾiL?7)\rǻ³ϳy\?! lƽp_K7#rźtrνxdP<'lymr{ȷ}iT;`|~rgsǹ̾gJOesul`Tcȹ}ïqQ8ITUNBDdqbsnO,460$=ZurcUGYmy`E.IdzyodUG8,@ThzwcK47M^gdZQG9*';N\`ZK6 (08)AUbff_O9 5J[imeT=& + +9Un{fL/HbwjS;***'$CbvXJUsiPJJJG<+&Ffƻ{ijjyŭ|jjjjfWB)&Ffƻ{çoV9->Jfƻ̶bBDZimƻĤdDVqƻǼbBaƻýϱpV9cǰȪĦkg\O;`~ƻ̵ȸ{hPSmƻżɬ|^@Ucgƻc(9FfƻŴc&FfƻťvZ-Ffƻ~~~ť~~~~zo_I:KWfƻťcERguƻʺžiIdƺŷiInµť|aClrwwww|ťwwwwteO5`}znaUWWW\|ťeWWWUJ9"Qizvi]PD777<\|ťeE776- SbggbSBLMMMMMMMMMMMMF8% 4Qkk^kmmmmmmmmmmmmdR: >]|{wgK. @`tU5 @`ͶvV6#3@`˵ʶvV6NYd}Ĥ£ͳ~bVjwĸƹĽͳ{{{xhQhʿʶͳuvhTr÷ͮͳgoxnͳrd|pgt˰yͳбrTl|~ti^tȺmͳаp?Q]^VKjȵsm̸ƨl%4=?8Mmżt`i~a +(Gdn[G\vqU9SkuhUB0H\o|~~~~{m[D &>TcicWK<(0BS]^^^^\QA. (08)AUacc[KDYhmmfVFLLLLLLMF7%;VnwbWqldllllllmcR>&Ferb{~kR )Ii÷wcý}~a,Iiɷwpý}ĥe7IUiɷýǩʹ}_Mdswɷýǧ̮rT^zɷŹǧgIgɷýǧ͵z\>gɽýǧǩnP3a~ɷýǩǺfL0Qiy}ɷýǧŬwY;;NZiɷĽǧþeG"2IiɷĽǧʬpS'6Iiɷż|ǧʸ|]AS_jɷȹǧ`Xn}ɸõ̵ǧah˿ǧþ`nǺǨǼεwYi}ŻǴnOZusgmʮsyǧt]CH_punb]oͷfyǧyul\G02EQUP^vȾqYyǧgVN@/(25Mlɼx^YyǧgG0$ /OoĸycLYyħgG' *HfwbL7VtcD%:Sjq_J4-JdynU9 &=ScjeVD27M]ddaTA( (08 +%>SbggbS>+3537;?DKRZ`\O<&5QkkQISTRVZ_cjryziS;!>^||]drtrvz~hM/ @``|vV7 @`kwW7#3@`s¾jN0SbggbS>4555555555555/"5QkkQTUUUUUUUUUUUTM>)>^||gsuuuuuuuuuuutjV>" @`jM/ @`tT5#3@`̵uU5R`d^N; (08,CVacZONPPPPPPPNC2 1CYpxkmpppppppm_J0 +):L^pw\?!#7FTfxgG(9QbqʹȨhH8+Kf~ŴʶȨh]VG2Utǽ˶Ȩ{}s_F*Vuδ̭xȨqT5Mjɻƹ~ɻzZ;DXn̻ɹ|\DJQW`ikbP=& $@ZssgXMWWSX]djpv}jS9/Nlrivwsx}dF'4TtǻëkK+?Wo˹gH)RlǸ½p[N;`~β~~~~~yhPdɼβ}_^zɹξeNevŪθ˸e8KZguȭϲ˫y]/=Le͵аxx˫xxxscM/G`yŽƧkv˫kXXUI6*C\uŪüuv˫kK86,;WpʱͲv˫kK3%Ed϶Ⱥ˫kZQ?)Hhÿ¿˫{zlW< B`|¿hJ+4Of¿oO/&@`¿oO/>S`v¿gS?Sl~¿lT`~¿adĥecdZuuZH^mqqqqqqqqqqqqqqqqqqqqqqm^H (08 +%>SbggbSDNPPPPPPPPPPPPI;'4Qkk_mppppppppppppfT]|{wiL/ @`uU6 @`̶vV6#3@`ȸʶvV6SbggbS>%7N_ksn^H. 5QkkQ55Hd{uZ>5552(>^||]UUUriUUUUQE2 @`suuuuͱyuuuup_H @`uY#3@`ʵa]{{wti}tZ> @`vʪtgH#@`ʭvʪwɩiI/@K`ͭ{ʪ{ɩiIG\jmͭʪɩiIZtͻʻɩiIfĺiIgǿ̷~bDd̶}zwhQ7WpɽrdUDCWdg̻ıq[+;E`ɵɳ˺l @`˴ȳs"/@`ʲm=MYdt\Ujwɼͳu_GhĸĽlN2rǬv[@$o}qehhhhhh{˶eJ/cyl`SGHHHHXroT9Tk|th[OB6)((3Ojɮy^C( >Q]_WJ>1% >]{˸gM2%4>?9- !AaqV;  +<[xz_D)0Kdu}gM36JXcg`P:! (08¯ &?Sbff`Q;888888888888887/"6Sl}hXXXXXXXXXXXXXXXWM<!@`~yxxxxxxxxxxxxxxxviS#Ccþe$Ccþn1BKcþнnI^kmþаh\vþвoWhþаpPjǼȸааpPgþȸааpPYrþȸеаpPEYegþаpP,k̳Ͳw^^^^]SB+qƺtjaWQMIB3kyvͺvqmi_L`{sȿźzbNdsvla|Ƽp7ITVO_û|ʯr,568Vrxkamwh+Fay}ti[NDOXakt}qW4L^hg^VL>1&09CLV]bfjgYD (08ï +&?VfmmiZD+6NbmmbVC=8+4QlqW:Fc|qZ]VF1<\{bCSpy}s_I4=]}ĤdD`~ǮwaK3(=]}ĤdRmŽxaI14EP]}Ĥde}ˮȼv_G/Kaos}ĤŻǻt]C]xĤƫʹoUgijͶeg²ȬmcĤͮiTl}Ĥ§rZ?S_b}ĤvǬlL&6@]}ĤƮýjK =]}Ĥ˷ýx_I)7C]}Ĥýw^CTam}ĬƯĽlZp~ʾɮnkȻ˲lqķx`ksfklqɷʹllj_K]x}pcVcn|Ǽǰwj_LKbqul_SUnɼƳya5GRUOBCb²xxɾo*350&Ff¶uabxƮq !@^z{jZIK`qf3Nf~zn_O>.3EVfumS!9Qbkh]QD3#*:JWbhcU? (08į +%>SbggbS>%3L`lmf\J3'' 5QkkQ4C_yw`EGG>.>^||]>QnoegfZI4 @``Ha|˱uaI- @``]uÿuW9#3@``qż}]=! +gľĬzaH>5&gïqf]R@^z˼ɸ|mVMdsw´ǹe7IT`ɷ«k,@`ɻf @`ɺoV*8D`ɷlZCDUamĦɾcF2[qɿɷr_GkȻɷsVqķɻ|\ktɺ|\Zu|pcgɷsUH_osk_RFVkyzzzzɷzzzzzr_F2DPSNA5)?PYZZZiŷwZZZZTF2'13/$$2:::GfsT:::6* ]||^_}~jjleUB+ @`akoX=!#@`ayдhJ+/@K`oȮnNC4G\jmβſmk`LZtǿ̱y`fȭƻmgǿͯodͻȨɸϯoWpȨɸϯoCWdgȨɸϯo+;E`ϯo @`Ȯɸϯo!.@`ȨɸϯoQ]_WaƻlOPpϯo%4>?Ddu\APpľl +>\xzaH/Gey_1KbyxcM4SbggbS>%$>Ufmmj[F-5QkkQ42OksY< >^||]>:YydE3332* @``SS[{ƦfSSSSRH7 @`ssss{ƦsssssqdO#3@`Ʀ}b+BXhmmgWA'5FQSSL=)1K`ossjX@UonS6LbpssiV>#!?\xmP_~}^A_zjN0&FfxYa_VivV6'GgǹyvvvvvɷwW7'GgǹɷwW7'GgǹɷwW7'GgwW76Rk¢pR3@_}ǫt_E)CcĵnN2Ccƪ̴˻dG) +;Yt̴¶òzgR:.-G]mrvɹ¢˷wiaYJ5?Wjuɹ¢ƿvbIOkȴ¢̾uWWwʻ¶Ƽ|\VuuWKg}cI:Sj~ý}eP6L_k}|j^J`yw^ljnɬlki^vu\I\giiiiiiiiiiiiiiiiiiiiiig[G (08˯ +%>Saff`Q?BBBBBBBBBBBBBA8)5Rk}i^bbbbbbbbbbbbb`UB* ?_}z|oW<"Bb¾~fG$Bb¾«kK0AKb¾γ˫kKH]jm¾γ˫kK\v¾γ˫kKg¾γ˫kKiǽ˫kKf¾γ˫kKXq¾γ˫kKDXeg¾γ˫kK,EYgj}Ĥȿ_?YrĤ˶¿_?eĪ˶¿_?gʫ˶¿_?eīȿ_?YsĤ˶¿_?F[hk}Ĥ˶¿_?.?I]}Ĥ˶¿_?!=]}Ĥ˽¿gO!.=]}Ĥ˸Ÿ|_py˶ǹwcPC5d}riu˶˷|maOTl}vk_g˶ɽ|e?R^`XMQqºµt&5?@:0On|tŲv + (Fd|tld]Vh{k:Ul|~vnf]UME>6.&"5FS`heWC (08ͯ +%>SbggbS>HJJJJJJJJJJJG;)5QkkYgjjjjjjjjjjjeV@>^||qnS @`~_ @`a#3@`ƻaR_ccc`YM; (08ί)BVcff^N80I^kmmd]N=+:Vo{eK."@\vziXF3%DcuW8,,Ihs`K6 'GgƺzZLLLLjʸxcM5'GgǺzklllllɸ˺{bH.@KgǺzȸȽv\F[imǺȹìhYsǺɪjdǺаŻheDZаýt[bǺа¿pQUoǺи̭pPBVdgǺнͭãågH):GgǺа̬ťʺ}^?'GgǺа̬ɩʭrU7 'GgǺа˫ήĽeH+&5GgǺϯʪγΰv_M=@R_iǺɪǨzjVUm}Ǻɼäťʯie÷½ãŦsjȼȶ´¿̲ͮseʭìȺΰpZvuý¬ȬʬnJaqvodͰ»e4FSVQg~~zy[*46A_{so{gg~kO 3Nd{y`XotaNQbr|~yhU>!7Nalk_LBU`aXG46GU]^ZN;' (08ϯ+CVaccZI888<9/#&0:DR_d_P<' =Xpv`XXX\XM>EOXbn||iT< )Hgxxxx|vjZdmwiL +KkõyïuU +Kk˵ƹtT(8Kk˵дƱgKAUak˵Ũ½Ʀ~qdQ:Vn˵ʹƦfTG8$c˵ʭƦfXSE1gĨŽήƦxxq_Ff˵ΰήƦsV\w˵ήƸ}]J_nq˵ϵijήƽ}]3DOk˵ήƦuX+Kk˵ļήƦ}}ubI+Kk˵ȫ˵ήƦf]XI55DPk˵ͳ̭ήƦf`\N9Namy˵úťήƦ}yfNc{ŽήƦy\pɼΰ̼ƼcqŸ˱egtʾȵx_Yr~qzηnEYfi`o̸ưq-=GIQqŶth (,Jgu^is|v\;Tkp]HKT]flmnoooool^I&>TdjeUC0,5>GLMNOOOOOMB1 (08Я +%>SbggbS?EEEEEEEEEEED=/5Qkk^eeeeeeeeeeedZI2>^||zv_D' @`nO5& @`Ųr]R@#3@`β|mVkɼʱ̸m[RA+qŸxktȶʼrYQH9%ktjq{λwpeR:[v}pdwɿŸgJI_otl`SjȼɽsS2EQTOBKkĿ}ìsS(240%Da}uian{fJ +5RlxocWLDP]ju}~lS: +%>TbgbZQE:.&3@LV^d`S>& (08ѯ 8Oblmk_K7><:>BGOW_d`R>(*.Hd}x_U]\Y^bgnv~~kU=")3#AXizͭȺe}ãcC#-Mmͭw}ãcC1.Nmƿ}£l^H/'Ed¿u[>>]}¿eF&2B^~ŦfF1K_ky¿j^J_x¿w^k¿jmɬlji]vu\H\giiiiiiiiiiiiiiiiiiiiiig[G (08ү $=RaffaR=8=;;?CHMU\cidUA,4Pj~~kQV]Z[_cglt{nY@%>]||_s}zzlO1 @`rȳvV6#@`{½sT4/@K`ûǭzcH+G\jmǺ£nR7Ztвˬ̵~cGfåϵƪsWgǿ˶{ʹɻddƩnǽɫpWpʴ~drCWdgƻg+;E`ƻk @`p!.@`ƻoQ]_WL@5)0Mg~ƻ{[;%4>?9."  @_xY9 +8UtjO1,Idz{kU=#7M^ffffb\Q>( (08ӯ $=RaffaR=&+06]||aejou{mP1 @`ʵvV8#@`ĿxeL/@K`wZG\jm̷þ~^Zt̴¤ȭwYfƬͮʶfKgǿʸд˸oT9dĦ̸u]C(Wpͷ~_OG8CWdgpɶ¢podQ+;E`¢~e @`°q!.@`Ųr->]|{]=3Hh{jYG0 @``SSSiɷĵt]B#@`sssssɷ±lP/@K`ɷ̰~cG\jmɷnZtnfɷigǿɷpYdɸrRWpļɼβrRCWdgĤɷβrR+;E`ĤɷβrR @`ĻɻβrR!/@`ĹɹβrRQ]_WI;<\|ĤɷβrR%4>?9,<\|ĤƿoO +:Yx|cG0Mg|mm~xgO6!:P_ffbTS_aadfggbZM9" (08կ";P`ffbT@DFFFFFFFFFFFFA5$1Nh}mXdffffffffffff`Q;";Zyr}hN2=]}Ĥy[<"=]}Ĥƾ~^>.?J]}Ĥ˶¾~^>F[il}Ĥ˶¾~^>ZsĤ˶voooo¾~^>eĬ˶zzzzz¾~^>gƫ˶¾~^>eĩ˺¾~^>XqĤ~^>DXfi}Ĥ}_@,#0=]}Ĥ˶veM3>NYd}Ĥ˶v`EVjwĸƹ˶pQhʿĴtTr÷˶sTow˶gKd{ps˶u]Tl|~ti]h˶k?Q]^VKLlƯo%4=?8-Kjm +$B_y{b3L`mooooooooooooooombN (08֯+CWcee]L9Pclmk^[immfU>$ Kjʷǿ̺r]I:+J\htʷ³¢|kpqfVF`w´¢b|r]oɿ¢lnrʽz¢mǴtixk`¢wγs\vuh[M`¢бqI^lneXK>@`Ÿħk1BMOH;.!@`}_%-/)=]{||oS +4Pj~kbu}~~~~~yjYB $=RaffaSHW]^^^^^ZN?, (08ׯ)AUbff_O9!%3L_kmlbO89Un|fL@EE`y}dH+#! +$CbwX^eelqRCC@5%&Ffƻ{ezͳsccc_Q=%&Ffƻ{uγ}jQ6/@Kfƻ{yŨγ}_@G\jmƻ{yȨãcCZtƻȨγcCfƻȨγxkVgǸȨγhdƻȹιqWpƻμqCWdgƻγj+;Ffƻ{|Ǽγź|nX&FfƻΰγεxYA'5FfƻǽγʬnP1AR_mƻǾūγʻeF(Xn}ƸγγǫtX<jƸʷ̷̳dH,qŷǿoT8l~qxɽ{_D( ^y}pbZipwʻzeN4McsxoaSXrõxcM8!6IUXQDDd´v`K6 ,683'Eeº{n^I3 >\wzl_QC10Jd{|tk]OB4&8N`he]UM@3%  (08د +%>Saff`Q<$$$$$$+CWdgg_O85Qk~iPDDDDDD=Wp|eK.?^|{cdddddd[duV7!AavgǹyY9$AaoǹyY90AKaĴtǹyY9*H]jmаʹtǹy`VD\vаʹǹqZgаʹǹjiǻаͽofаʹǹnXqаʹǹ~dDXegδǹyrfQ,NWXWNJh~fK. #18880>YqwhQ9-DWbccc`YM:$  (08ٯ $=RaffaR=IMMMMMMMMMMMI<)4Pj~~jXhmmmmmmmmmmmgW@& +>]|{omR5 @`~|\=#@`ɾ~^>/@K`þ~^>G\jmþ~^>Ztþ~^>f¾~^>gǿ~^B'dnQ3WpxX8CWdgŽȸxX8+;E`ʪȸxX8 @`ʪ˰ȸxX8 @`ʪаȸxX8+8C`ʪаȸxX8EValʪаȸxX8\rǻʪȩȸxX8lʪȸxX8rźɰwW8lymȷóm[Fa|~rgwǵʾsYOesvl`Unƾv}ƴd8JTVNCRrȽn\are,560-KiweSBFWi{v[!=Vpuj\J9'+]|{|}}}}}}}}}}}}}{nW @`h#@`o/@K`иϯoG\jmаϯoZtаˮźϯofаƽ˯ϯogǿа̯ϯodаſʹϯoWpаɮwòϯoCWdgаʹεϯo+;E`аϯo @`аÿήϯo!/@`аãήϯoQ]_WK>Ppа|ήo%4>?9-0Pp°qqmxj +-MkkQPnt\$A[rr[AC]r~~~~yo]G.EWabaWE./EV^^^^YQC0 (08ܯ5NalmlaN5/H]jmmeS<"(Fb{{bF(?\viM0!1:^~ǽ}]=4C]|¿{\C4M`kn¿mk`Mbz¿zbo¿oqɱqnn`xx`K]hiiiiiiiiiiiiiiiiiiiiiih]K (08ݯ,EYfhh`O95L_ijh\H0=Yr|fK.+Fayv]C*'GfuV7) )IiȸxXZsɸĿʵ{jVeɸž͸igɺ̻±seɸqXqɸ|bDXfiɸ{ʸzhO,Q]_WVtŪt%4>?9Xxǰon +3QnkTcs~c +'B[nmU>GVdjpuwwwwwugQ-BVfkeU?(+:EJPVWWWWWVK: (08߯2I[efdZG03K_kmlkj]K9'&C_vt]A$%C_xweS@*/OmkL333LkmWA+1QqƯoSSSSSmʹ¾oY@1QqϯsssssssʹDzlP4DQqϯ͵ɳw[M`lqϯ̵eazϯemϯɷ~aoȹkRkϯǺsS]uϯļżˬoPH[fqϯļ½fG/>QqϯļͶz\=1QqϯļãŨnQ31QqϯļǬɷ}`D'*8Qqϯ̺ǪpS6&DUbqϯ˸qcR?[qϾɼ}lTkƹżѼcqöĺ̼ĥħgkͺͰťe`{|oθĽ¢cNdsuk^`z{˷˶{]7ITVNAMamnemtqR,460$4DNNG`yr]teH '..4Lav|kXG\m~zgR94IY`]P>/AR`ed]M;% (08 (AWfllfWA''AXksncU@''%6SnnSGGQmmTGGD9(?_~}`ggg{gggcUA( @`|ÿnT8*@`̱aB#6GR`ĤdD$MbqtƮĤdD$^zƦĤdD$hƩĤdD$hĤdE*cƬqU7Tl|Ʒ|\Ufmmmmmmmmmmmmmmmmml`M (08+CVcff^MBOSOI^kmjaOQPH>-;Wpzd_msm]v|gqogZF-&Fet{ssZ> (HhƸx̵gG((HhȸyʹϰçiI)/@KhȸxȮʪ̱{`D+G\jmȸxä˺qW:ZtȸżbCeȸĤdDgǩȪaKdȸ¾x]WpȸϲgCWdhȸèh*;Hhȸ̰¿d(Hhȸ|ǻ˸nV(Hhȸľ͵x_*8HhȸϲʷlDUamȸÿϲ«n[qȼɾϲ~ckȻϲ~hPqķwýaBksfaãcC`{}pcVIa`@Ndsvl_RF9@`ɶ}]>7ITVOB5(<[xoS6,560% 1Nj{_C'"=Uhu}sdN4(Q]_WK?3?GHHHHHHdĽ}]HG?0%4=?9-!!((((((DdĽ}]=(! "AayZ;7Sm}hN1 '@Tbff`P;" (08 '@Tbff_P:226Nalmk_K3222-!8Tm|gRRRRc|x_RRRRK<("BaxrrrrrrrrrrhU=$DdļͭjM$DdļͲuV/@Kdļ¶vVG\jmļͭqSZtļ͹hHeļͼjUgǶͭhdļ͸qWpļqCWdgļj*;Edļ|Ƶ|oY$Ddļ|źʵuUB$Ddļ|źʵuU5*8Ddļ˵uU5DUalļźʵuU5[qļǻźʵuU5kźʵuU5qƺŻʵuU5kymźʵuU5`{~sg[eź{{|ʵuU5NdsvlaUIEeźznʵuU57ITVOC7+EeĺzmþrR3,560%#Cbuc}dI+8TmzdUm~wgP8 '@Tadd]M@S`ccc_YL:#  (08(AUbee_O9 8Pcmml_L39Un{fL/+Ie}y_C&&&# $CbwXFFSrlLFFFC8'&FfŻ{fffftͭmffffbT?&FfƻͭlS/@Kfƻͭ~`G\jmƻãcZtƻƺãcfƻƺãcgƺããceƻǻcXqƻлʪvZDXehƻźδ̬ʪjJ+)AVfkeVF5 +=MUVVVVVSH9' (08 (AUbff_PDKLLLLLLLLLLLKB29Un|gaklllllllllllj_K3#Cbx|x`C&%Eeż|lM-%Eeż|̮nN./@Jeż|ͭήnN.G\ilż|ͭήnN.ZtżͷήnN.fż;ήnN.hɾͭήnN.fżͭήnN.YrżͮnN.EYfiż|ʹήnN.,=Geż|ͭήnN.%Eeż~ͭήnN.#1EeżˮnXF>N[hżs\Vjxżkhɾįoqʽnnȼƿ|c_zuhhxƿǵxcOMev|sf\t̹zm˺zc8KX\VLkŲzdSfxʽr/9<7OoŹr`M9L^qdzu*If~kXF3 2DYok;UkrbQ>,,BXmmX(>ScidUF7%*@UejdT@ (08-EXdfe]K5/I^mqhXF/!>ZrxbG*$?[vs\A% +)IhqR37PklN. +KkƵuU5Jc}˱qR9#+Kk˵uUF]wͳ~fQ;%/@Kk˵uU\sƻū~hR<)G\jm˵ujrͳjVD2%Zt˵ͷ­p_OAe˵ͷĮzl[gǩ͹ɷpd˵˶|Wp˵°zCWdk˵k*;Kk˵ǬmU+Kk˵ʶϱή̬lL-Kk˵ʶϱή̬lL9JWk˵ʶϱή̬lLQft˵ɮʶϱή̬lLc~Ǻ̬lLm¶ʶϱή̬lLkʶϱή̬lL`~{njʶϱή̬lLRj{wj]Qjʶϱή̬lL=P]`YM@Jjʶϱή̬lL$4>@;/*JjʶžiJ  )Hh|`B!?[u}yzymyzvfP5/H\ikkbYZZQZZceebYK9# (08(AUbee_O98=;<@DINV]ell`N:#9Un{fLV]Z[`dhmu|zhP5$Cbw_s}z{|`A&FfŻ{rfF&Ffƻ{}aB/@Kfƻ{ľļoV:G\jmƻ{ϳȹ̶fIZtƻæƨɭtXfƻ͵ίǼfg¨ǭmdƻȵhWpƻŭ˵pYCWdgƻť˵v^+;FfƻŨ˵l&Ffƻȯo -FfƻŮ˵m;KWfƻť˵zaShuƻĽť˵uaMfɾƵuU5pĹű˵uU5nwťuU5a|}qe]mqqq|ť|jM/Phzvk_SHGc|ťesuujW>#;N[_XMA61PpťeTUUM>*"2Zst^G--FZfiiifbXG1 (08 +%>Saff`Q<"%=R_hkcQ: 5Rk}iO26Rk}~gL/+++)  ?_}z[KK`~wZKKKKH=+"Bb¾~ikkk¾kkkkkgXC$Bb¾~ͱpV0AKb¾ƽaH]jm¾ãc\v¾̴ãcg¾̴ãciǴ̴˹̷£cf¾ƽ˹}_Xq¾w˹|jQDXeg¾{fq͸pS,,tŹsllmͳsllllhYDmxͳqVb}~rfͳbPftvk`Tfãc9JUVNBDda-560$Zr~s_G7M^ffcVB-DWceeec_VF1 (08 +%>SbggbS>% :Rdmmk^I1 5QkkQ43Kgw]@3332,>^||]SSUtiSSSSRJ: @`ssssvʪsssssrfR @`ʪf#3@`ʳqGbxpXCUcgaQ;*0!5K\ddbVC+9DGB6$ (08(AUbee_O9 &?VfmmhYD+ 9Un{fL77QlqW:773($CbwXWW\{bWWWRD1&FfŻ{swww}ãwwwwp^F+&Ffƻ{ãrV8/@Kfƻ÷}^>G\jmƻ¾~^IZtƻã¾v_fƻæ¾ngƲrdƻð¾qWpƻã¾~eCWdgƻé¾~dQ+;Ffƻɾ~`C&FfƻвkK -FfƻƽɼjK;KVfƻȻȬǼx^BShtƻĺ̶ûʺxbK2fʾóεybK4pĸŽãĪjUG8nôãrdQa|}Ŷãį~ePhzvjtƷãǹr;N[_XQpãzs"2SbggbS>*2;Rdmmj]H:91#5QkkQHRShv\ZYN?/>^||]cqsvmyxj[G. @``{ɩt[>! @`jǧgH(#3@`qγť§iI)# gȸq_M9$gʺzfQ<^zéʸ~jPMdsw­|^7IT`ȺťĿb,@`¸ťx[ @`ɭťδfL*8C`Ʀť¿lR9DUamİ̶ˬʯx\A%[qɿçɴɷhL0kȻïļijqW-ktuʵɸrhYD[v}p{ƵƼrXI_otl`rʻroȺc2EQTOUuĺ~n[Zme(240NkscRBASeww[ +#?Wp}shXG7&&8J\lwzcJ+CWdg_UJ<, 0ANZeg^M6 (08 (AUbff_O9 $?VgokdVA( 9Un|fL02PlnT8'''' #CbwXGG[yaGGGGF>/%EeŻ{gggggggggf[H%EeŻʷu]3CLeŻɬkL_lmŻǯo_yŻȭεmlŻʷŪzamDzŽȨſwl`MjŻêȨ˼ziU\tŻýȽкiGZfgŻɿɸȸs.=FeŻʪȨίq%EeŻʪȨή{c %EeŻ}ήzgN*7EeŻʭȭήnN:DUalŻʪȨήnN7[qŻȼʪȩήsdPkˮ}cqƺʫȫokztȨϯo`{sh\hxȨͭmNdsvlaUJ>SfopmwȲæj7ITVOC8,&:IPPTsõ{^,560% *00Ie|nQ 8Obt{mZB "5HYbcccccc]PA- (08 '@Tbff`P:1549>DIQYajmeTA+8Tm|hMPUTY^chpxnX>""Bax]nusx~iK-$DdĽ}rDZqQ1$DdĽ}~lM./@KdĽ}½s\B%G\jmĽ}ɹΰʹ~bG+ZtĽвǻŪsW;fĽŧťȺgKgǿǹ~̭ʯuXdĽ̮tsƽdWpĽŽ|k~hCWdgĽw|Ĥww~b+;EdĽĤ{_$DdĽķg!/DdĽþg\y®lnj 3PlnW]t|a %?Whpppo|hUAG^u{eO)=JPPPVdg_O;(0G[hj`N8 (08 +%>Saff`Q<"$>UgnkeXC+5Rk}iO===PkqW===8, ?_}z[]]]]yd]]]VG2"Bb¾~y}}}}~Ŧ}}}}s`G#Bb¾~rU/@Kb¾ȽzZG\jm¾θzZZt¾ʫpSe¾iIgǸ̹iNd¾Ȫ{aWp¾ȹlCWdg¾ím*;Eb¾̵ʹh"Bb¾~ǼȹȱqY"Bb¾ƽȹȱ{d*8Cb¾ǿŻȶsDUal¾ȹƳw[q¾ƻȹlkȹpYqźȽnNkyyȹgI`{~rg[ew}}}}ȹ}}}}{mWSbggbS>/H]koiaP:!!! 5QkkQ>[u}gLAAA@8)>^||]Gfvaaaa_UC @``Po˸pY @``Yxίi#3@``eo?84Tsm ,Id{x_7N`iiiiiiiiiiiiiiiih]J (08 *CWehhaP:)BVdhhbQ;" +2;Wp}gL9Uo~hN1$9IQRdwXRbxY:8Qeqrrƺzrrnļ|\<Gd~ƺļ|\><3$Ooƺļ|^^\P=& Ppåż~~~zjR7OkƺƻbD$a|ƺƾhH(kƺǹȨhH(kɸȨhH(f˸ͭ˶ȨhH(Vm}ɬͭŶʹȨhH(axʹͭɸаȨhH(pǾƼɶ˫ȨhH(tɹƺƧɩiI) jƺ˫kK+Xqƽʸì̬lN>,LlƺˮͮziYCFdƺĬʯpUL_kvyzƺͳDZ``yƺǼlĴalý«uZc~^mý¬~dIWu|\f~hQ7LjŮqSZs~ytn{~hQ;$A]vgIFZgid_YTOeyweQ;$0Iav~mW<->GID?:48K^ih]K8$ 3IYcgaR@) (087Oblml`L38Pcmml_L3 -3Hd|y`CIe}y_C%&;KSTplTSrlL, :SgsttͮttqtͭmM40&Jgή|ͭmTTOC0Qqδͭtttn]F+Rr«ͭsW9Umήʹ_? eή`@ mλͭ¿_?mͭ¿_?eȸ̮ͭ¿_?Tjyŧ̬¾~^>`}ί̴ƴɩ¾~^>g»̼Ĥ¾~^>gιȿþ~^>&_{ήaQBVsήϱ}n[]}ιåǼo]}λ̶¦ĵyWtή§æƹyHas{{{ή˰{o{ħǸx3HV[[rή̵iSoʮǷw,7;RrήͶqWGe˰r2RrĮȴr[D;Xvèj0Ons\E..Lg~b 'D^un[E. :Qgz|iR2HZddcfkeUA. $:O]fh`O< (08 (AUbff_PFMMMMMMMMMMMMMG9&9Un|gdmmmmmmmmmmmmmdS;#CbxhM%Eeż|vV%Eeż|̸xX/@Keż|ʪɸxXG\jmż|ʪɸxXZtżʳɸxXfżɸxXgǿʪɸxXdżʪɸxXWpżʸɸxXCWdgż|ͽxX+;EeżŨn%Eeżδ|2APeżưǾ~K^l{żŶƪɫż|`xǸŭͷžȹynȹ­αʷwqʻīʹtgrȯ̱ͮoYtsdd~̳ȻȨiG\knfWNmɴª¢c/ALNH;LkŭƼ}]$,.)$B^wįuW  +1I_t{s~dI2GW_]_rsygQ7,9?=EZhkcXbdffc\L:$ (08 $>TdjjfXC*5M`lmlbO7 3PkpV9-Eaz|cG---+!<[zbMMNmpQMMMJ>,=]}ĤmmmmoͲrmmmmhYC&=]}ĤϲpU2DN]}Ĥϲ`J_mq}Ĥ¢b\wĤŭþ~_fıǻεmSgĦŧkǩndXGcĤвƺt]VnĤʸɬlAUad}Ĥñq(8B]}Ĥp =]}Ĥ~e#0=]}ĤxeQ>NYd}ĤȸxX8VjwĽβȸxX8hǻβȸxX8rβraaahȸxX8osβ{{{{{ȸxX8cynbnβȸxX8Sjz}sh\PNnλȸxX8=P[^VJ>2NnλȸxX8$3<>8, .NnŲøxX8 ,Lj{{{{{sU6#@\tv_[[[[mxbH,/FYdee[I;;;@T`cc[K5 (08 +0H]jmmdR; 9Pclmk^J1 )1?\vhL22Je}w]A1)5FPRhuVRRSsiRPF5 3Laorrɷwrrrru˫rrpbM3A^yɷ˫z_BIiɷ˲jJIiêjJFeɷ˫fG;Vnɷ˫oW<*AT`ciɿ˫kcaUB**8AIiɷ˫kKA8*6GRTTiɷ˫kTTRG6Mbqtttɾ˫tttqbM^zɷ˫z^hɷ˴hhhcǻȮcTl|¿Ʋ|lTVl|ƽ¿˷v_fʺɵƽmmƶ¿Ʈpi¿fYq¿lTD\uĵuU?4TttU5.KhhL.!;TgqqqqqqqqqqqqqqqqqqqqgTUfmmj[F- :Vo{fL44OksY<4443+%DcvXTTYydTTTTRH7'Ggƻ{tttt{ƦtttttqdO'GgǻƦ|a/@KgǻƴkG\jmǻ«kZtǻffǻoWgǼʹaUBdǻʹaA(WpǻʹaA!CWdgǻ{aA!+;Ggǻ{aA!'Ggǻ{|^?!/GgǻͼaA2Q]_WJ=6DKeƦfKKKKJB3%4>?9- &FeùdD++++$ +>\ztY< 3Oi}s^G-#4$?_~~_````|a```]Q= @`~¢{kS+@`b6HS`gMcru̶f^y̵y]gȽĶyqbLgĴqVbƸbSk|Ľ½k>Q]`r%4@`ʹr @`ʪi#0@`ʪxlW>NZfзȨʪjP?VjwƹбȨʪjJ*h¶бȨʪjJ*r˿бȨʪjJ*o{pȨʪjJ*bwj^pбʪjJ*Sjz}sfZMPpʪjJ*=P[^VI<0JgxʪjJ*#3<>8, OXYXPnv[?!#1898D_vs_H/2I[efffd_WG2 (08-EXegg^MLSSSSSSSSSSSSM?, >YrzdisssssssssssskYA' + (HgsnR4 +*JjǷwzZK;*Jjʷwǻ{sgS/@KjʷƻeG\jmʷƻoZtʷpfʷƻjgȸƻ~pZeʷ|iPXqʷ|^DXejʷ¢b+>^~ãа˱mP3%>^~üаèƭz`C&?P^~ùаƼ˳gM9,Vly~ãаdzyjaWFgîаòs^n¾аõnkͺƴtb~~¿{uunRhwz¿v\;M_¿o_I&@`eE3>S`y¿~`S?Sl~¿lT`~¿adĥecdZuuZH^mqqqqqqqqqqqqqqqqqqqqqqm^H (08/FXbaXNCDNPPPPPPPPPPPPPMB0'B\svla`npppppppppppppl]G.5Rn}xtZ<<\{dD@[zŵťeERm˯ʷťeEb~ʷťeEiżʷťeEe;åeEWo˶ɫaBBUblvδ˫ȻlS<)9CYqǮˬ˴ƽ~iO)@Wo̳äz[=Vm˹ƻ˫þ~^Miɼɭˮɻ{[TtȾɺëuVSr¿~dJId}¿|jR87Ph{¿~^>%*;Zy¿}^>+BWdo¿reXCVo¿qWb¿deǧgdfYstZF[immmmmmmmmmmmmmmmmmmmmmj\G (08 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/22528-22783.pbf b/test/integration/glyphs/NotoCJK/22528-22783.pbf new file mode 100644 index 00000000000..5572a193fad Binary files /dev/null and b/test/integration/glyphs/NotoCJK/22528-22783.pbf differ diff --git a/test/integration/glyphs/NotoCJK/22784-23039.pbf b/test/integration/glyphs/NotoCJK/22784-23039.pbf new file mode 100644 index 00000000000..0b637f674ba Binary files /dev/null and b/test/integration/glyphs/NotoCJK/22784-23039.pbf differ diff --git a/test/integration/glyphs/NotoCJK/2304-2559.pbf b/test/integration/glyphs/NotoCJK/2304-2559.pbf new file mode 100644 index 00000000000..2952a61057a --- /dev/null +++ b/test/integration/glyphs/NotoCJK/2304-2559.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 2304-2559 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/23040-23295.pbf b/test/integration/glyphs/NotoCJK/23040-23295.pbf new file mode 100644 index 00000000000..5724871350f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/23040-23295.pbf differ diff --git a/test/integration/glyphs/NotoCJK/23296-23551.pbf b/test/integration/glyphs/NotoCJK/23296-23551.pbf new file mode 100644 index 00000000000..20215ef787b Binary files /dev/null and b/test/integration/glyphs/NotoCJK/23296-23551.pbf differ diff --git a/test/integration/glyphs/NotoCJK/23552-23807.pbf b/test/integration/glyphs/NotoCJK/23552-23807.pbf new file mode 100644 index 00000000000..3d2131c6d15 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/23552-23807.pbf differ diff --git a/test/integration/glyphs/NotoCJK/23808-24063.pbf b/test/integration/glyphs/NotoCJK/23808-24063.pbf new file mode 100644 index 00000000000..ff913bfba2a Binary files /dev/null and b/test/integration/glyphs/NotoCJK/23808-24063.pbf differ diff --git a/test/integration/glyphs/NotoCJK/24064-24319.pbf b/test/integration/glyphs/NotoCJK/24064-24319.pbf new file mode 100644 index 00000000000..b957670fab7 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/24064-24319.pbf differ diff --git a/test/integration/glyphs/NotoCJK/24320-24575.pbf b/test/integration/glyphs/NotoCJK/24320-24575.pbf new file mode 100644 index 00000000000..fb5bf01fff1 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/24320-24575.pbf differ diff --git a/test/integration/glyphs/NotoCJK/24576-24831.pbf b/test/integration/glyphs/NotoCJK/24576-24831.pbf new file mode 100644 index 00000000000..6e40f45f16a Binary files /dev/null and b/test/integration/glyphs/NotoCJK/24576-24831.pbf differ diff --git a/test/integration/glyphs/NotoCJK/24832-25087.pbf b/test/integration/glyphs/NotoCJK/24832-25087.pbf new file mode 100644 index 00000000000..f7fae4e1509 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/24832-25087.pbf differ diff --git a/test/integration/glyphs/NotoCJK/25088-25343.pbf b/test/integration/glyphs/NotoCJK/25088-25343.pbf new file mode 100644 index 00000000000..722b88a5703 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/25088-25343.pbf differ diff --git a/test/integration/glyphs/NotoCJK/25344-25599.pbf b/test/integration/glyphs/NotoCJK/25344-25599.pbf new file mode 100644 index 00000000000..c98627f45bc Binary files /dev/null and b/test/integration/glyphs/NotoCJK/25344-25599.pbf differ diff --git a/test/integration/glyphs/NotoCJK/256-511.pbf b/test/integration/glyphs/NotoCJK/256-511.pbf new file mode 100644 index 00000000000..fce1e95e4f4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/256-511.pbf differ diff --git a/test/integration/glyphs/NotoCJK/2560-2815.pbf b/test/integration/glyphs/NotoCJK/2560-2815.pbf new file mode 100644 index 00000000000..57c4bca6140 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/2560-2815.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 2560-2815 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/25600-25855.pbf b/test/integration/glyphs/NotoCJK/25600-25855.pbf new file mode 100644 index 00000000000..28759537741 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/25600-25855.pbf differ diff --git a/test/integration/glyphs/NotoCJK/25856-26111.pbf b/test/integration/glyphs/NotoCJK/25856-26111.pbf new file mode 100644 index 00000000000..9a4aca1ffc7 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/25856-26111.pbf differ diff --git a/test/integration/glyphs/NotoCJK/26112-26367.pbf b/test/integration/glyphs/NotoCJK/26112-26367.pbf new file mode 100644 index 00000000000..5817c1b1ae4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/26112-26367.pbf differ diff --git a/test/integration/glyphs/NotoCJK/26368-26623.pbf b/test/integration/glyphs/NotoCJK/26368-26623.pbf new file mode 100644 index 00000000000..fd59e205884 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/26368-26623.pbf differ diff --git a/test/integration/glyphs/NotoCJK/26624-26879.pbf b/test/integration/glyphs/NotoCJK/26624-26879.pbf new file mode 100644 index 00000000000..df482c01221 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/26624-26879.pbf differ diff --git a/test/integration/glyphs/NotoCJK/26880-27135.pbf b/test/integration/glyphs/NotoCJK/26880-27135.pbf new file mode 100644 index 00000000000..b5583233619 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/26880-27135.pbf differ diff --git a/test/integration/glyphs/NotoCJK/27136-27391.pbf b/test/integration/glyphs/NotoCJK/27136-27391.pbf new file mode 100644 index 00000000000..af939e8e58f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/27136-27391.pbf differ diff --git a/test/integration/glyphs/NotoCJK/27392-27647.pbf b/test/integration/glyphs/NotoCJK/27392-27647.pbf new file mode 100644 index 00000000000..0fe4e639d7d Binary files /dev/null and b/test/integration/glyphs/NotoCJK/27392-27647.pbf differ diff --git a/test/integration/glyphs/NotoCJK/27648-27903.pbf b/test/integration/glyphs/NotoCJK/27648-27903.pbf new file mode 100644 index 00000000000..1ae064d5942 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/27648-27903.pbf differ diff --git a/test/integration/glyphs/NotoCJK/27904-28159.pbf b/test/integration/glyphs/NotoCJK/27904-28159.pbf new file mode 100644 index 00000000000..15a7cc90868 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/27904-28159.pbf differ diff --git a/test/integration/glyphs/NotoCJK/2816-3071.pbf b/test/integration/glyphs/NotoCJK/2816-3071.pbf new file mode 100644 index 00000000000..193e3651703 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/2816-3071.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 2816-3071 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/28160-28415.pbf b/test/integration/glyphs/NotoCJK/28160-28415.pbf new file mode 100644 index 00000000000..e00a0e7d5a8 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/28160-28415.pbf differ diff --git a/test/integration/glyphs/NotoCJK/28416-28671.pbf b/test/integration/glyphs/NotoCJK/28416-28671.pbf new file mode 100644 index 00000000000..442bc102fa4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/28416-28671.pbf differ diff --git a/test/integration/glyphs/NotoCJK/28672-28927.pbf b/test/integration/glyphs/NotoCJK/28672-28927.pbf new file mode 100644 index 00000000000..e4dab0154ce Binary files /dev/null and b/test/integration/glyphs/NotoCJK/28672-28927.pbf differ diff --git a/test/integration/glyphs/NotoCJK/28928-29183.pbf b/test/integration/glyphs/NotoCJK/28928-29183.pbf new file mode 100644 index 00000000000..5058319e3e1 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/28928-29183.pbf differ diff --git a/test/integration/glyphs/NotoCJK/29184-29439.pbf b/test/integration/glyphs/NotoCJK/29184-29439.pbf new file mode 100644 index 00000000000..ff5c06081a8 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/29184-29439.pbf differ diff --git a/test/integration/glyphs/NotoCJK/29440-29695.pbf b/test/integration/glyphs/NotoCJK/29440-29695.pbf new file mode 100644 index 00000000000..4288df57ef4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/29440-29695.pbf differ diff --git a/test/integration/glyphs/NotoCJK/29696-29951.pbf b/test/integration/glyphs/NotoCJK/29696-29951.pbf new file mode 100644 index 00000000000..34dc68c12f5 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/29696-29951.pbf differ diff --git a/test/integration/glyphs/NotoCJK/29952-30207.pbf b/test/integration/glyphs/NotoCJK/29952-30207.pbf new file mode 100644 index 00000000000..1335fdda2a6 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/29952-30207.pbf differ diff --git a/test/integration/glyphs/NotoCJK/30208-30463.pbf b/test/integration/glyphs/NotoCJK/30208-30463.pbf new file mode 100644 index 00000000000..b7e46b77e0f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/30208-30463.pbf differ diff --git a/test/integration/glyphs/NotoCJK/30464-30719.pbf b/test/integration/glyphs/NotoCJK/30464-30719.pbf new file mode 100644 index 00000000000..3a918c4a20c Binary files /dev/null and b/test/integration/glyphs/NotoCJK/30464-30719.pbf differ diff --git a/test/integration/glyphs/NotoCJK/3072-3327.pbf b/test/integration/glyphs/NotoCJK/3072-3327.pbf new file mode 100644 index 00000000000..79b76e21383 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/3072-3327.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 3072-3327 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/30720-30975.pbf b/test/integration/glyphs/NotoCJK/30720-30975.pbf new file mode 100644 index 00000000000..848224cdb71 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/30720-30975.pbf differ diff --git a/test/integration/glyphs/NotoCJK/30976-31231.pbf b/test/integration/glyphs/NotoCJK/30976-31231.pbf new file mode 100644 index 00000000000..24d76853da6 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/30976-31231.pbf differ diff --git a/test/integration/glyphs/NotoCJK/31232-31487.pbf b/test/integration/glyphs/NotoCJK/31232-31487.pbf new file mode 100644 index 00000000000..20d69d28fc7 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/31232-31487.pbf differ diff --git a/test/integration/glyphs/NotoCJK/31488-31743.pbf b/test/integration/glyphs/NotoCJK/31488-31743.pbf new file mode 100644 index 00000000000..81f0fc30eb4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/31488-31743.pbf differ diff --git a/test/integration/glyphs/NotoCJK/31744-31999.pbf b/test/integration/glyphs/NotoCJK/31744-31999.pbf new file mode 100644 index 00000000000..2cdf9ecf731 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/31744-31999.pbf differ diff --git a/test/integration/glyphs/NotoCJK/32000-32255.pbf b/test/integration/glyphs/NotoCJK/32000-32255.pbf new file mode 100644 index 00000000000..27026ba0585 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/32000-32255.pbf differ diff --git a/test/integration/glyphs/NotoCJK/32256-32511.pbf b/test/integration/glyphs/NotoCJK/32256-32511.pbf new file mode 100644 index 00000000000..67b5c56044a Binary files /dev/null and b/test/integration/glyphs/NotoCJK/32256-32511.pbf differ diff --git a/test/integration/glyphs/NotoCJK/32512-32767.pbf b/test/integration/glyphs/NotoCJK/32512-32767.pbf new file mode 100644 index 00000000000..fb71ce494e3 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/32512-32767.pbf differ diff --git a/test/integration/glyphs/NotoCJK/32768-33023.pbf b/test/integration/glyphs/NotoCJK/32768-33023.pbf new file mode 100644 index 00000000000..16a3efdc56e Binary files /dev/null and b/test/integration/glyphs/NotoCJK/32768-33023.pbf differ diff --git a/test/integration/glyphs/NotoCJK/33024-33279.pbf b/test/integration/glyphs/NotoCJK/33024-33279.pbf new file mode 100644 index 00000000000..3ef3b8ff768 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/33024-33279.pbf differ diff --git a/test/integration/glyphs/NotoCJK/3328-3583.pbf b/test/integration/glyphs/NotoCJK/3328-3583.pbf new file mode 100644 index 00000000000..25c6289aa8a --- /dev/null +++ b/test/integration/glyphs/NotoCJK/3328-3583.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 3328-3583 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/33280-33535.pbf b/test/integration/glyphs/NotoCJK/33280-33535.pbf new file mode 100644 index 00000000000..c5e30a318ed Binary files /dev/null and b/test/integration/glyphs/NotoCJK/33280-33535.pbf differ diff --git a/test/integration/glyphs/NotoCJK/33536-33791.pbf b/test/integration/glyphs/NotoCJK/33536-33791.pbf new file mode 100644 index 00000000000..d13c174a9d7 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/33536-33791.pbf differ diff --git a/test/integration/glyphs/NotoCJK/33792-34047.pbf b/test/integration/glyphs/NotoCJK/33792-34047.pbf new file mode 100644 index 00000000000..a07026ea9d6 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/33792-34047.pbf differ diff --git a/test/integration/glyphs/NotoCJK/34048-34303.pbf b/test/integration/glyphs/NotoCJK/34048-34303.pbf new file mode 100644 index 00000000000..3d0ed0cae5d Binary files /dev/null and b/test/integration/glyphs/NotoCJK/34048-34303.pbf differ diff --git a/test/integration/glyphs/NotoCJK/34304-34559.pbf b/test/integration/glyphs/NotoCJK/34304-34559.pbf new file mode 100644 index 00000000000..753a186ad83 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/34304-34559.pbf differ diff --git a/test/integration/glyphs/NotoCJK/34560-34815.pbf b/test/integration/glyphs/NotoCJK/34560-34815.pbf new file mode 100644 index 00000000000..b5aff64c049 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/34560-34815.pbf differ diff --git a/test/integration/glyphs/NotoCJK/34816-35071.pbf b/test/integration/glyphs/NotoCJK/34816-35071.pbf new file mode 100644 index 00000000000..552052e1b6d Binary files /dev/null and b/test/integration/glyphs/NotoCJK/34816-35071.pbf differ diff --git a/test/integration/glyphs/NotoCJK/35072-35327.pbf b/test/integration/glyphs/NotoCJK/35072-35327.pbf new file mode 100644 index 00000000000..5486c9d209e Binary files /dev/null and b/test/integration/glyphs/NotoCJK/35072-35327.pbf differ diff --git a/test/integration/glyphs/NotoCJK/35328-35583.pbf b/test/integration/glyphs/NotoCJK/35328-35583.pbf new file mode 100644 index 00000000000..4eb02381045 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/35328-35583.pbf differ diff --git a/test/integration/glyphs/NotoCJK/35584-35839.pbf b/test/integration/glyphs/NotoCJK/35584-35839.pbf new file mode 100644 index 00000000000..006e2e86100 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/35584-35839.pbf differ diff --git a/test/integration/glyphs/NotoCJK/3584-3839.pbf b/test/integration/glyphs/NotoCJK/3584-3839.pbf new file mode 100644 index 00000000000..a81798f3511 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/3584-3839.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 3584-3839 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/35840-36095.pbf b/test/integration/glyphs/NotoCJK/35840-36095.pbf new file mode 100644 index 00000000000..0af57954eb2 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/35840-36095.pbf differ diff --git a/test/integration/glyphs/NotoCJK/36096-36351.pbf b/test/integration/glyphs/NotoCJK/36096-36351.pbf new file mode 100644 index 00000000000..21215ac3316 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/36096-36351.pbf differ diff --git a/test/integration/glyphs/NotoCJK/36352-36607.pbf b/test/integration/glyphs/NotoCJK/36352-36607.pbf new file mode 100644 index 00000000000..dfc553fdcfc Binary files /dev/null and b/test/integration/glyphs/NotoCJK/36352-36607.pbf differ diff --git a/test/integration/glyphs/NotoCJK/36608-36863.pbf b/test/integration/glyphs/NotoCJK/36608-36863.pbf new file mode 100644 index 00000000000..eb1bf73498e Binary files /dev/null and b/test/integration/glyphs/NotoCJK/36608-36863.pbf differ diff --git a/test/integration/glyphs/NotoCJK/36864-37119.pbf b/test/integration/glyphs/NotoCJK/36864-37119.pbf new file mode 100644 index 00000000000..ec7e508191f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/36864-37119.pbf differ diff --git a/test/integration/glyphs/NotoCJK/37120-37375.pbf b/test/integration/glyphs/NotoCJK/37120-37375.pbf new file mode 100644 index 00000000000..e8df4d940f4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/37120-37375.pbf differ diff --git a/test/integration/glyphs/NotoCJK/37376-37631.pbf b/test/integration/glyphs/NotoCJK/37376-37631.pbf new file mode 100644 index 00000000000..42d917ddefc Binary files /dev/null and b/test/integration/glyphs/NotoCJK/37376-37631.pbf differ diff --git a/test/integration/glyphs/NotoCJK/37632-37887.pbf b/test/integration/glyphs/NotoCJK/37632-37887.pbf new file mode 100644 index 00000000000..e62b3a078ae Binary files /dev/null and b/test/integration/glyphs/NotoCJK/37632-37887.pbf differ diff --git a/test/integration/glyphs/NotoCJK/37888-38143.pbf b/test/integration/glyphs/NotoCJK/37888-38143.pbf new file mode 100644 index 00000000000..c2dfacfc933 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/37888-38143.pbf differ diff --git a/test/integration/glyphs/NotoCJK/38144-38399.pbf b/test/integration/glyphs/NotoCJK/38144-38399.pbf new file mode 100644 index 00000000000..8466ff9112d Binary files /dev/null and b/test/integration/glyphs/NotoCJK/38144-38399.pbf differ diff --git a/test/integration/glyphs/NotoCJK/3840-4095.pbf b/test/integration/glyphs/NotoCJK/3840-4095.pbf new file mode 100644 index 00000000000..e6b2d01e1c1 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/3840-4095.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 3840-4095 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/38400-38655.pbf b/test/integration/glyphs/NotoCJK/38400-38655.pbf new file mode 100644 index 00000000000..27c53cd105f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/38400-38655.pbf differ diff --git a/test/integration/glyphs/NotoCJK/38656-38911.pbf b/test/integration/glyphs/NotoCJK/38656-38911.pbf new file mode 100644 index 00000000000..54c6927c7db Binary files /dev/null and b/test/integration/glyphs/NotoCJK/38656-38911.pbf differ diff --git a/test/integration/glyphs/NotoCJK/38912-39167.pbf b/test/integration/glyphs/NotoCJK/38912-39167.pbf new file mode 100644 index 00000000000..538277d783a Binary files /dev/null and b/test/integration/glyphs/NotoCJK/38912-39167.pbf differ diff --git a/test/integration/glyphs/NotoCJK/39168-39423.pbf b/test/integration/glyphs/NotoCJK/39168-39423.pbf new file mode 100644 index 00000000000..734cc94c06e Binary files /dev/null and b/test/integration/glyphs/NotoCJK/39168-39423.pbf differ diff --git a/test/integration/glyphs/NotoCJK/39424-39679.pbf b/test/integration/glyphs/NotoCJK/39424-39679.pbf new file mode 100644 index 00000000000..90ce8f388f0 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/39424-39679.pbf differ diff --git a/test/integration/glyphs/NotoCJK/39680-39935.pbf b/test/integration/glyphs/NotoCJK/39680-39935.pbf new file mode 100644 index 00000000000..8c4d7b0f2c1 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/39680-39935.pbf differ diff --git a/test/integration/glyphs/NotoCJK/39936-40191.pbf b/test/integration/glyphs/NotoCJK/39936-40191.pbf new file mode 100644 index 00000000000..14f24592fd3 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/39936-40191.pbf differ diff --git a/test/integration/glyphs/NotoCJK/40192-40447.pbf b/test/integration/glyphs/NotoCJK/40192-40447.pbf new file mode 100644 index 00000000000..838ec4cf647 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/40192-40447.pbf differ diff --git a/test/integration/glyphs/NotoCJK/40448-40703.pbf b/test/integration/glyphs/NotoCJK/40448-40703.pbf new file mode 100644 index 00000000000..86214d5cb1f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/40448-40703.pbf differ diff --git a/test/integration/glyphs/NotoCJK/40704-40959.pbf b/test/integration/glyphs/NotoCJK/40704-40959.pbf new file mode 100644 index 00000000000..5bc2eabba36 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/40704-40959.pbf differ diff --git a/test/integration/glyphs/NotoCJK/4096-4351.pbf b/test/integration/glyphs/NotoCJK/4096-4351.pbf new file mode 100644 index 00000000000..eccf1d0a320 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/4096-4351.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 4096-4351 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/4352-4607.pbf b/test/integration/glyphs/NotoCJK/4352-4607.pbf new file mode 100644 index 00000000000..8032d467889 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/4352-4607.pbf differ diff --git a/test/integration/glyphs/NotoCJK/4608-4863.pbf b/test/integration/glyphs/NotoCJK/4608-4863.pbf new file mode 100644 index 00000000000..c39c61e7529 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/4608-4863.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 4608-4863 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/4864-5119.pbf b/test/integration/glyphs/NotoCJK/4864-5119.pbf new file mode 100644 index 00000000000..7d575e0688a --- /dev/null +++ b/test/integration/glyphs/NotoCJK/4864-5119.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 4864-5119 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/512-767.pbf b/test/integration/glyphs/NotoCJK/512-767.pbf new file mode 100644 index 00000000000..7e2b891899d Binary files /dev/null and b/test/integration/glyphs/NotoCJK/512-767.pbf differ diff --git a/test/integration/glyphs/NotoCJK/5120-5375.pbf b/test/integration/glyphs/NotoCJK/5120-5375.pbf new file mode 100644 index 00000000000..b60075f9d75 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/5120-5375.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 5120-5375 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/5376-5631.pbf b/test/integration/glyphs/NotoCJK/5376-5631.pbf new file mode 100644 index 00000000000..be00d4602d5 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/5376-5631.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 5376-5631 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/5632-5887.pbf b/test/integration/glyphs/NotoCJK/5632-5887.pbf new file mode 100644 index 00000000000..3a2bd8c5879 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/5632-5887.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 5632-5887 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/5888-6143.pbf b/test/integration/glyphs/NotoCJK/5888-6143.pbf new file mode 100644 index 00000000000..886094ccb68 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/5888-6143.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 5888-6143 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/6144-6399.pbf b/test/integration/glyphs/NotoCJK/6144-6399.pbf new file mode 100644 index 00000000000..4e8f5b831b4 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/6144-6399.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 6144-6399 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/6400-6655.pbf b/test/integration/glyphs/NotoCJK/6400-6655.pbf new file mode 100644 index 00000000000..492f1deee4b --- /dev/null +++ b/test/integration/glyphs/NotoCJK/6400-6655.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 6400-6655 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/65024-65279.pbf b/test/integration/glyphs/NotoCJK/65024-65279.pbf new file mode 100644 index 00000000000..4ae147acfa3 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/65024-65279.pbf differ diff --git a/test/integration/glyphs/NotoCJK/65280-65535.pbf b/test/integration/glyphs/NotoCJK/65280-65535.pbf new file mode 100644 index 00000000000..0ec8f841839 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/65280-65535.pbf differ diff --git a/test/integration/glyphs/NotoCJK/6656-6911.pbf b/test/integration/glyphs/NotoCJK/6656-6911.pbf new file mode 100644 index 00000000000..738bc9fdc4a --- /dev/null +++ b/test/integration/glyphs/NotoCJK/6656-6911.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 6656-6911 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/6912-7167.pbf b/test/integration/glyphs/NotoCJK/6912-7167.pbf new file mode 100644 index 00000000000..3edcc555bbc --- /dev/null +++ b/test/integration/glyphs/NotoCJK/6912-7167.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 6912-7167 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/7168-7423.pbf b/test/integration/glyphs/NotoCJK/7168-7423.pbf new file mode 100644 index 00000000000..c2acfd66901 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/7168-7423.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 7168-7423 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/7424-7679.pbf b/test/integration/glyphs/NotoCJK/7424-7679.pbf new file mode 100644 index 00000000000..4b8da0bf723 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/7424-7679.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 7424-7679 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/768-1023.pbf b/test/integration/glyphs/NotoCJK/768-1023.pbf new file mode 100644 index 00000000000..2804b86d48f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/768-1023.pbf differ diff --git a/test/integration/glyphs/NotoCJK/7680-7935.pbf b/test/integration/glyphs/NotoCJK/7680-7935.pbf new file mode 100644 index 00000000000..336417b75e1 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/7680-7935.pbf differ diff --git a/test/integration/glyphs/NotoCJK/7936-8191.pbf b/test/integration/glyphs/NotoCJK/7936-8191.pbf new file mode 100644 index 00000000000..e24434f9877 --- /dev/null +++ b/test/integration/glyphs/NotoCJK/7936-8191.pbf @@ -0,0 +1,3 @@ + +" +Noto Sans CJK JP Thin 7936-8191 \ No newline at end of file diff --git a/test/integration/glyphs/NotoCJK/8192-8447.pbf b/test/integration/glyphs/NotoCJK/8192-8447.pbf new file mode 100644 index 00000000000..739bf8ae7dd Binary files /dev/null and b/test/integration/glyphs/NotoCJK/8192-8447.pbf differ diff --git a/test/integration/glyphs/NotoCJK/8448-8703.pbf b/test/integration/glyphs/NotoCJK/8448-8703.pbf new file mode 100644 index 00000000000..c66c4d6b9f4 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/8448-8703.pbf differ diff --git a/test/integration/glyphs/NotoCJK/8704-8959.pbf b/test/integration/glyphs/NotoCJK/8704-8959.pbf new file mode 100644 index 00000000000..bae8a4e655c Binary files /dev/null and b/test/integration/glyphs/NotoCJK/8704-8959.pbf differ diff --git a/test/integration/glyphs/NotoCJK/8960-9215.pbf b/test/integration/glyphs/NotoCJK/8960-9215.pbf new file mode 100644 index 00000000000..9836dca78a2 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/8960-9215.pbf differ diff --git a/test/integration/glyphs/NotoCJK/9216-9471.pbf b/test/integration/glyphs/NotoCJK/9216-9471.pbf new file mode 100644 index 00000000000..db34a314082 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/9216-9471.pbf differ diff --git a/test/integration/glyphs/NotoCJK/9472-9727.pbf b/test/integration/glyphs/NotoCJK/9472-9727.pbf new file mode 100644 index 00000000000..9e1017fc0f1 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/9472-9727.pbf differ diff --git a/test/integration/glyphs/NotoCJK/9728-9983.pbf b/test/integration/glyphs/NotoCJK/9728-9983.pbf new file mode 100644 index 00000000000..ca2876c8d5f Binary files /dev/null and b/test/integration/glyphs/NotoCJK/9728-9983.pbf differ diff --git a/test/integration/glyphs/NotoCJK/9984-10239.pbf b/test/integration/glyphs/NotoCJK/9984-10239.pbf new file mode 100644 index 00000000000..6ee87db2819 Binary files /dev/null and b/test/integration/glyphs/NotoCJK/9984-10239.pbf differ diff --git a/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/0-255.pbf b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/0-255.pbf new file mode 100644 index 00000000000..cea1c094d6a Binary files /dev/null and b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/0-255.pbf differ diff --git a/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/1536-1791.pbf b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/1536-1791.pbf new file mode 100644 index 00000000000..e1cf821dbc1 Binary files /dev/null and b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/1536-1791.pbf differ diff --git a/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/256-511.pbf b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/256-511.pbf new file mode 100644 index 00000000000..0ddfb2db759 Binary files /dev/null and b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/256-511.pbf differ diff --git a/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/64256-64511.pbf b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/64256-64511.pbf new file mode 100644 index 00000000000..c84d1f0760a Binary files /dev/null and b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/64256-64511.pbf differ diff --git a/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/65024-65279.pbf b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/65024-65279.pbf new file mode 100644 index 00000000000..64ba93ba61b Binary files /dev/null and b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/65024-65279.pbf differ diff --git a/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/8192-8447.pbf b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/8192-8447.pbf new file mode 100644 index 00000000000..1890910b8fc Binary files /dev/null and b/test/integration/glyphs/Open Sans Semibold,Arial Unicode MS Bold/8192-8447.pbf differ diff --git a/test/integration/image/0.png b/test/integration/image/0.png new file mode 100644 index 00000000000..15db2edd536 Binary files /dev/null and b/test/integration/image/0.png differ diff --git a/test/integration/image/marker.png b/test/integration/image/marker.png new file mode 100644 index 00000000000..75359862470 Binary files /dev/null and b/test/integration/image/marker.png differ diff --git a/test/integration/index.js b/test/integration/index.js new file mode 100644 index 00000000000..7b6253e9c71 --- /dev/null +++ b/test/integration/index.js @@ -0,0 +1,4 @@ +'use strict'; + +module.exports.render = require('./lib/render'); +module.exports.query = require('./lib/query'); diff --git a/test/integration/lib/harness.js b/test/integration/lib/harness.js new file mode 100644 index 00000000000..308493949ad --- /dev/null +++ b/test/integration/lib/harness.js @@ -0,0 +1,167 @@ +'use strict'; + +/* eslint-disable no-process-exit */ + +const fs = require('fs'); +const path = require('path'); +const queue = require('d3-queue').queue; +const colors = require('colors/safe'); +const handlebars = require('handlebars'); + +module.exports = function (directory, implementation, options, run) { + const q = queue(1); + const server = require('./server')(); + + const tests = options.tests || []; + + function shouldRunTest(group, test) { + if (tests.length === 0) + return true; + + const id = `${group}/${test}`; + + for (let i = 0; i < tests.length; i++) { + const k = id.indexOf(tests[i]); + if (k === 0 || id[k - 1] === '-' || id[k - 1] === '/') + return true; + } + + return false; + } + + q.defer(server.listen); + + fs.readdirSync(directory).forEach((group) => { + if (group === 'index.html' || group === 'results.html.tmpl' || group[0] === '.') + return; + + fs.readdirSync(path.join(directory, group)).forEach((test) => { + if (!shouldRunTest(group, test)) + return; + + if (!fs.lstatSync(path.join(directory, group, test)).isDirectory() || + !fs.lstatSync(path.join(directory, group, test, 'style.json')).isFile()) + return; + + const style = require(path.join(directory, group, test, 'style.json')); + + server.localizeURLs(style); + + const params = Object.assign({ + group: group, + test: test, + width: 512, + height: 512, + pixelRatio: 1, + allowed: 0.00015 + }, style.metadata && style.metadata.test); + + if (implementation === 'native' && process.env.BUILDTYPE === 'Release' && params.group === 'debug') { + console.log(colors.gray(`* skipped ${params.group} ${params.test}`)); + return; + } + + const skipped = params.skipped && params.skipped[implementation]; + if (skipped) { + console.log(colors.gray(`* skipped ${params.group} ${params.test + } (${skipped})`)); + return; + } + + if ('diff' in params) { + if (typeof params.diff === 'number') { + params.allowed = params.diff; + } else if (implementation in params.diff) { + params.allowed = params.diff[implementation]; + } + } + + params.ignored = params.ignored && implementation in params.ignored; + + q.defer((callback) => { + run(style, params, (err) => { + if (err) return callback(err); + + if (params.ignored && !params.ok) { + params.color = '#9E9E9E'; + console.log(colors.white(`* ignore ${params.group} ${params.test}`)); + } else if (params.ignored) { + params.color = '#E8A408'; + console.log(colors.yellow(`* ignore ${params.group} ${params.test}`)); + } else if (!params.ok) { + params.color = 'red'; + console.log(colors.red(`* failed ${params.group} ${params.test}`)); + } else { + params.color = 'green'; + console.log(colors.green(`* passed ${params.group} ${params.test}`)); + } + + callback(null, params); + }); + }); + }); + }); + + q.defer(server.close); + + q.awaitAll((err, results) => { + if (err) { + console.error(err); + setTimeout(() => { process.exit(-1); }, 0); + return; + } + + results = results.slice(1, -1); + + if (process.env.UPDATE) { + console.log(`Updated ${results.length} tests.`); + process.exit(0); + } + + let passedCount = 0, + ignoreCount = 0, + ignorePassCount = 0, + failedCount = 0; + + results.forEach((params) => { + if (params.ignored && !params.ok) { + ignoreCount++; + } else if (params.ignored) { + ignorePassCount++; + } else if (!params.ok) { + failedCount++; + } else { + passedCount++; + } + }); + + const totalCount = passedCount + ignorePassCount + ignoreCount + failedCount; + + if (passedCount > 0) { + console.log(colors.green('%d passed (%s%)'), + passedCount, (100 * passedCount / totalCount).toFixed(1)); + } + + if (ignorePassCount > 0) { + console.log(colors.yellow('%d passed but were ignored (%s%)'), + ignorePassCount, (100 * ignorePassCount / totalCount).toFixed(1)); + } + + if (ignoreCount > 0) { + console.log(colors.white('%d ignored (%s%)'), + ignoreCount, (100 * ignoreCount / totalCount).toFixed(1)); + } + + if (failedCount > 0) { + console.log(colors.red('%d failed (%s%)'), + failedCount, (100 * failedCount / totalCount).toFixed(1)); + } + + const template = handlebars.compile(fs.readFileSync(path.join(directory, 'results.html.tmpl'), 'utf8')); + const p = path.join(directory, 'index.html'); + fs.writeFileSync(p, template({results: results})); + console.log(`Results at: ${p}`); + + process.exit(failedCount === 0 ? 0 : 1); + }); +}; diff --git a/test/integration/lib/query.js b/test/integration/lib/query.js new file mode 100644 index 00000000000..16bcb8f9948 --- /dev/null +++ b/test/integration/lib/query.js @@ -0,0 +1,151 @@ +'use strict'; + +const path = require('path'); +const harness = require('./harness'); +const diff = require('diff'); +const PNG = require('pngjs').PNG; +const fs = require('fs'); + +function deepEqual(a, b) { + if (typeof a !== typeof b) + return false; + if (typeof a === 'number') + return Math.abs(a - b) < 1e-10; + if (a === null || typeof a !== 'object') + return a === b; + + const ka = Object.keys(a); + const kb = Object.keys(b); + + if (ka.length !== kb.length) + return false; + + ka.sort(); + kb.sort(); + + for (let i = 0; i < ka.length; i++) + if (ka[i] !== kb[i] || !deepEqual(a[ka[i]], b[ka[i]])) + return false; + + return true; +} + +/** + * Run the query suite. + * + * @param {string} implementation - identify the implementation under test; used to + * deal with implementation-specific test exclusions and fudge-factors + * @param {Object} options + * @param {Array} [options.tests] - array of test names to run; tests not in the + * array will be skipped + * @param {queryFn} query - a function that performs the query + * @returns {undefined} terminates the process when testing is complete + */ +exports.run = function (implementation, options, query) { + const directory = path.join(__dirname, '../query-tests'); + harness(directory, implementation, options, (style, params, done) => { + query(style, params, (err, data, results) => { + if (err) return done(err); + + const dir = path.join(directory, params.group, params.test); + + if (process.env.UPDATE) { + fs.writeFile(path.join(dir, 'expected.json'), JSON.stringify(results, null, 2), done); + return; + } + + const expected = require(path.join(dir, 'expected.json')); + params.ok = deepEqual(results, expected); + + if (!params.ok) { + const msg = diff.diffJson(expected, results) + .map((hunk) => { + if (hunk.added) { + return `+ ${hunk.value}`; + } else if (hunk.removed) { + return `- ${hunk.value}`; + } else { + return ` ${hunk.value}`; + } + }) + .join(''); + + params.difference = msg; + console.log(msg); + } + + const width = params.width * params.pixelRatio; + const height = params.height * params.pixelRatio; + + const color = [255, 0, 0, 255]; + + function scaleByPixelRatio(x) { + return x * params.pixelRatio; + } + + if (!Array.isArray(params.queryGeometry[0])) { + const p = params.queryGeometry.map(scaleByPixelRatio); + const d = 30; + drawAxisAlignedLine([p[0] - d, p[1]], [p[0] + d, p[1]], data, width, height, color); + drawAxisAlignedLine([p[0], p[1] - d], [p[0], p[1] + d], data, width, height, color); + } else { + const a = params.queryGeometry[0].map(scaleByPixelRatio); + const b = params.queryGeometry[1].map(scaleByPixelRatio); + drawAxisAlignedLine([a[0], a[1]], [a[0], b[1]], data, width, height, color); + drawAxisAlignedLine([a[0], b[1]], [b[0], b[1]], data, width, height, color); + drawAxisAlignedLine([b[0], b[1]], [b[0], a[1]], data, width, height, color); + drawAxisAlignedLine([b[0], a[1]], [a[0], a[1]], data, width, height, color); + } + + const actual = path.join(dir, 'actual.png'); + + const png = new PNG({ + width: params.width * params.pixelRatio, + height: params.height * params.pixelRatio + }); + + png.data = data; + + png.pack() + .pipe(fs.createWriteStream(actual)) + .on('finish', () => { + params.actual = fs.readFileSync(actual).toString('base64'); + done(); + }); + }); + }); +}; + +function drawAxisAlignedLine(a, b, pixels, width, height, color) { + const fromX = clamp(Math.min(a[0], b[0]), 0, width); + const toX = clamp(Math.max(a[0], b[0]), 0, width); + const fromY = clamp(Math.min(a[1], b[1]), 0, height); + const toY = clamp(Math.max(a[1], b[1]), 0, height); + + let index; + if (fromX === toX) { + for (let y = fromY; y <= toY; y++) { + index = getIndex(fromX, y); + pixels[index + 0] = color[0]; + pixels[index + 1] = color[1]; + pixels[index + 2] = color[2]; + pixels[index + 3] = color[3]; + } + } else { + for (let x = fromX; x <= toX; x++) { + index = getIndex(x, fromY); + pixels[index + 0] = color[0]; + pixels[index + 1] = color[1]; + pixels[index + 2] = color[2]; + pixels[index + 3] = color[3]; + } + } + + function getIndex(x, y) { + return (y * width + x) * 4; + } +} + +function clamp(x, a, b) { + return Math.max(a, Math.min(b, x)); +} diff --git a/test/integration/lib/render.js b/test/integration/lib/render.js new file mode 100644 index 00000000000..178852f7a2c --- /dev/null +++ b/test/integration/lib/render.js @@ -0,0 +1,136 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const PNG = require('pngjs').PNG; +const harness = require('./harness'); +const pixelmatch = require('pixelmatch'); + +function compare(path1, path2, diffPath, callback) { + + const img1 = fs.createReadStream(path1).pipe(new PNG()).on('parsed', doneReading); + const img2 = fs.createReadStream(path2).pipe(new PNG()).on('parsed', doneReading); + let read = 0; + + function doneReading() { + if (++read < 2) return; + + const diff = new PNG({width: img1.width, height: img1.height}); + + const numPixels = pixelmatch(img1.data, img2.data, diff.data, img1.width, img1.height, { + threshold: 0.13 + }); + + diff.pack().pipe(fs.createWriteStream(diffPath)).on('finish', () => { + callback(null, numPixels / (diff.width * diff.height)); + }); + } +} + +/** + * Run the render test suite, compute differences to expected values (making exceptions based on + * implementation vagaries), print results to standard output, write test artifacts to the + * filesystem (optionally updating expected results), and exit the process with a success or + * failure code. + * + * Caller must supply a `render` function that does the actual rendering and passes the raw image + * result on to the `render` function's callback. + * + * A local server is launched that is capable of serving requests for the source, sprite, + * font, and tile assets needed by the tests, and the URLs within the test styles are + * rewritten to point to that server. + * + * As the tests run, results are printed to standard output, and test artifacts are written + * to the filesystem. If the environment variable `UPDATE` is set, the expected artifacts are + * updated in place based on the test rendering. + * + * If all the tests are successful, this function exits the process with exit code 0. Otherwise + * it exits with 1. If an unexpected error occurs, it exits with -1. + * + * @param {string} implementation - identify the implementation under test; used to + * deal with implementation-specific test exclusions and fudge-factors + * @param {Object} options + * @param {Array} [options.tests] - array of test names to run; tests not in the + * array will be skipped. Test names can be the name of a group, or the name of a group and the name + * of an individual test, separated by a slash. + * @param {renderFn} render - a function that performs the rendering + * @returns {undefined} terminates the process when testing is complete + */ +exports.run = function (implementation, options, render) { + const directory = path.join(__dirname, '../render-tests'); + harness(directory, implementation, options, (style, params, done) => { + render(style, params, (err, data) => { + if (err) return done(err); + + let stats; + const dir = path.join(directory, params.group, params.test); + try { + stats = fs.statSync(dir, fs.R_OK | fs.W_OK); + if (!stats.isDirectory()) throw new Error(); + } catch (e) { + fs.mkdirSync(dir); + } + + const expected = path.join(dir, 'expected.png'); + const actual = path.join(dir, 'actual.png'); + const diff = path.join(dir, 'diff.png'); + + const png = new PNG({ + width: params.width * params.pixelRatio, + height: params.height * params.pixelRatio + }); + + png.data = data; + + if (process.env.UPDATE) { + png.pack() + .pipe(fs.createWriteStream(expected)) + .on('finish', done); + } else { + png.pack() + .pipe(fs.createWriteStream(actual)) + .on('finish', () => { + + try { + stats = fs.statSync(expected, fs.R_OK | fs.W_OK); + if (!stats.isFile()) throw new Error(); + } catch (e) { // no expected.png, create it + png.pack() + .pipe(fs.createWriteStream(expected)) + .on('finish', done); + return; + } + + compare(actual, expected, diff, (err, difference) => { + if (err) return done(err); + + params.difference = difference; + params.ok = difference <= params.allowed; + + params.actual = fs.readFileSync(actual).toString('base64'); + params.expected = fs.readFileSync(expected).toString('base64'); + params.diff = fs.readFileSync(diff).toString('base64'); + + done(); + }); + }); + } + }); + }); +}; + +/** + * @callback renderFn + * @param {Object} style - style to render + * @param {Object} options + * @param {number} options.width - render this wide + * @param {number} options.height - render this high + * @param {number} options.pixelRatio - render with this pixel ratio + * @param {renderCallback} callback - callback to call with the results of rendering + */ + +/** + * @callback renderCallback + * @param {?Error} error + * @param {Buffer} [result] - raw RGBA image data + */ diff --git a/test/integration/lib/server.js b/test/integration/lib/server.js new file mode 100644 index 00000000000..847f977f42a --- /dev/null +++ b/test/integration/lib/server.js @@ -0,0 +1,70 @@ +'use strict'; + +const st = require('st'); +const http = require('http'); +const path = require('path'); + +module.exports = function () { + const server = http.createServer(st({path: path.join(__dirname, '..')})); + + function localURL(url) { + return url.replace(/^local:\/\//, 'http://localhost:2900/'); + } + + return { + listen: function (callback) { + server.listen(2900, callback); + }, + + close: function (callback) { + server.close(callback); + }, + + localizeURLs: function (style) { + function localizeSourceURLs(source) { + for (const l in source.tiles) { + source.tiles[l] = localURL(source.tiles[l]); + } + + if (source.urls) { + source.urls = source.urls.map(localURL); + } + + if (source.url) { + source.url = localURL(source.url); + } + + if (source.data && typeof source.data == 'string') { + source.data = localURL(source.data); + } + } + + // localize the source, glyphs, and sprite URLs in the given style JSON + function localizeStyleURLs (style) { + for (const k in style.sources) { + localizeSourceURLs(style.sources[k]); + } + + if (style.sprite) { + style.sprite = localURL(style.sprite); + } + + if (style.glyphs) { + style.glyphs = localURL(style.glyphs); + } + } + + if (style.metadata && style.metadata.test && style.metadata.test.operations) { + style.metadata.test.operations.forEach((op) => { + if (op[0] === 'addSource') { + localizeSourceURLs(op[2]); + } else if (op[0] === 'setStyle' && op[1]) { + localizeStyleURLs(op[1]); + } + }); + } + + localizeStyleURLs(style); + } + }; +}; diff --git a/test/integration/query-tests/circle-radius-features-in/inside/expected.json b/test/integration/query-tests/circle-radius-features-in/inside/expected.json new file mode 100644 index 00000000000..62280a77a0c --- /dev/null +++ b/test/integration/query-tests/circle-radius-features-in/inside/expected.json @@ -0,0 +1,84 @@ +[ + { + "properties": { + "class": "main", + "oneway": 0, + "osm_id": 4612696, + "type": "secondary" + }, + "id": 4612696, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.406662344932556, + 52.49845542419487 + ], + [ + 13.406715989112854, + 52.49853706825692 + ], + [ + 13.407037854194641, + 52.499007335102704 + ], + [ + 13.40782642364502, + 52.50002296369735 + ], + [ + 13.409215807914734, + 52.50175045812034 + ] + ] + } + }, + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4612752, + "type": "residential" + }, + "id": 4612752, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.404956459999084, + 52.50075446300568 + ], + [ + 13.405857682228088, + 52.500525870779285 + ], + [ + 13.40782642364502, + 52.50002296369735 + ], + [ + 13.41029942035675, + 52.49939268890719 + ], + [ + 13.410347700119019, + 52.49937962612168 + ], + [ + 13.410476446151733, + 52.49934370344147 + ], + [ + 13.410674929618835, + 52.499291452217875 + ], + [ + 13.4122896194458, + 52.49884078283674 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius-features-in/inside/style.json b/test/integration/query-tests/circle-radius-features-in/inside/style.json new file mode 100644 index 00000000000..97282ea18a5 --- /dev/null +++ b/test/integration/query-tests/circle-radius-features-in/inside/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + [ + 1, + 100 + ], + [ + 10, + 120 + ] + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius-features-in/outside/expected.json b/test/integration/query-tests/circle-radius-features-in/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/circle-radius-features-in/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius-features-in/outside/style.json b/test/integration/query-tests/circle-radius-features-in/outside/style.json new file mode 100644 index 00000000000..d66b712f769 --- /dev/null +++ b/test/integration/query-tests/circle-radius-features-in/outside/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + [ + 1, + 101 + ], + [ + 9, + 120 + ] + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius/inside/expected.json b/test/integration/query-tests/circle-radius/inside/expected.json new file mode 100644 index 00000000000..62280a77a0c --- /dev/null +++ b/test/integration/query-tests/circle-radius/inside/expected.json @@ -0,0 +1,84 @@ +[ + { + "properties": { + "class": "main", + "oneway": 0, + "osm_id": 4612696, + "type": "secondary" + }, + "id": 4612696, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.406662344932556, + 52.49845542419487 + ], + [ + 13.406715989112854, + 52.49853706825692 + ], + [ + 13.407037854194641, + 52.499007335102704 + ], + [ + 13.40782642364502, + 52.50002296369735 + ], + [ + 13.409215807914734, + 52.50175045812034 + ] + ] + } + }, + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4612752, + "type": "residential" + }, + "id": 4612752, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.404956459999084, + 52.50075446300568 + ], + [ + 13.405857682228088, + 52.500525870779285 + ], + [ + 13.40782642364502, + 52.50002296369735 + ], + [ + 13.41029942035675, + 52.49939268890719 + ], + [ + 13.410347700119019, + 52.49937962612168 + ], + [ + 13.410476446151733, + 52.49934370344147 + ], + [ + 13.410674929618835, + 52.499291452217875 + ], + [ + 13.4122896194458, + 52.49884078283674 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius/inside/style.json b/test/integration/query-tests/circle-radius/inside/style.json new file mode 100644 index 00000000000..2c73321b56e --- /dev/null +++ b/test/integration/query-tests/circle-radius/inside/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + 10, + 100 + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius/outside/expected.json b/test/integration/query-tests/circle-radius/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/circle-radius/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius/outside/style.json b/test/integration/query-tests/circle-radius/outside/style.json new file mode 100644 index 00000000000..e640eb83f31 --- /dev/null +++ b/test/integration/query-tests/circle-radius/outside/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + 9, + 101 + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius/property-function/expected.json b/test/integration/query-tests/circle-radius/property-function/expected.json new file mode 100644 index 00000000000..68c2da04f45 --- /dev/null +++ b/test/integration/query-tests/circle-radius/property-function/expected.json @@ -0,0 +1,15 @@ +[ + { + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + }, + "type": "Feature", + "properties": { + "radius": 20 + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/circle-radius/property-function/style.json b/test/integration/query-tests/circle-radius/property-function/style.json new file mode 100644 index 00000000000..911c8b433a2 --- /dev/null +++ b/test/integration/query-tests/circle-radius/property-function/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "queryGeometry": [ + 32, + 32 + ], + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3604", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6518" + } + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "radius": 20 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "mapbox", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] +} diff --git a/test/integration/query-tests/circle-translate-anchor/map/expected.json b/test/integration/query-tests/circle-translate-anchor/map/expected.json new file mode 100644 index 00000000000..724da323e7a --- /dev/null +++ b/test/integration/query-tests/circle-translate-anchor/map/expected.json @@ -0,0 +1,64 @@ +[ + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4887461, + "type": "residential" + }, + "id": 4887461, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.409215807914734, + 52.50175045812034 + ], + [ + 13.40954840183258, + 52.50165249238836 + ], + [ + 13.411592245101929, + 52.501048365550304 + ], + [ + 13.413957953453064, + 52.500342996142365 + ], + [ + 13.41431200504303, + 52.500235230375125 + ], + [ + 13.4145587682724, + 52.500160120744795 + ] + ] + } + }, + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4612753, + "type": "residential" + }, + "id": 4612753, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.411592245101929, + 52.501048365550304 + ], + [ + 13.41029942035675, + 52.49939268890719 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate-anchor/map/style.json b/test/integration/query-tests/circle-translate-anchor/map/style.json new file mode 100644 index 00000000000..2a0dc187f86 --- /dev/null +++ b/test/integration/query-tests/circle-translate-anchor/map/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + 126, + 187 + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "bearing": 45, + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-translate-anchor": "map", + "circle-translate": [ + 20, + 30 + ], + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate-anchor/viewport/expected.json b/test/integration/query-tests/circle-translate-anchor/viewport/expected.json new file mode 100644 index 00000000000..724da323e7a --- /dev/null +++ b/test/integration/query-tests/circle-translate-anchor/viewport/expected.json @@ -0,0 +1,64 @@ +[ + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4887461, + "type": "residential" + }, + "id": 4887461, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.409215807914734, + 52.50175045812034 + ], + [ + 13.40954840183258, + 52.50165249238836 + ], + [ + 13.411592245101929, + 52.501048365550304 + ], + [ + 13.413957953453064, + 52.500342996142365 + ], + [ + 13.41431200504303, + 52.500235230375125 + ], + [ + 13.4145587682724, + 52.500160120744795 + ] + ] + } + }, + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4612753, + "type": "residential" + }, + "id": 4612753, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.411592245101929, + 52.501048365550304 + ], + [ + 13.41029942035675, + 52.49939268890719 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate-anchor/viewport/style.json b/test/integration/query-tests/circle-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..b7bdf9c06c5 --- /dev/null +++ b/test/integration/query-tests/circle-translate-anchor/viewport/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + 116, + 207 + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "bearing": 45, + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-translate-anchor": "viewport", + "circle-translate": [ + 20, + 30 + ], + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate/inside/expected.json b/test/integration/query-tests/circle-translate/inside/expected.json new file mode 100644 index 00000000000..62280a77a0c --- /dev/null +++ b/test/integration/query-tests/circle-translate/inside/expected.json @@ -0,0 +1,84 @@ +[ + { + "properties": { + "class": "main", + "oneway": 0, + "osm_id": 4612696, + "type": "secondary" + }, + "id": 4612696, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.406662344932556, + 52.49845542419487 + ], + [ + 13.406715989112854, + 52.49853706825692 + ], + [ + 13.407037854194641, + 52.499007335102704 + ], + [ + 13.40782642364502, + 52.50002296369735 + ], + [ + 13.409215807914734, + 52.50175045812034 + ] + ] + } + }, + { + "properties": { + "class": "street", + "oneway": 0, + "osm_id": 4612752, + "type": "residential" + }, + "id": 4612752, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 13.404956459999084, + 52.50075446300568 + ], + [ + 13.405857682228088, + 52.500525870779285 + ], + [ + 13.40782642364502, + 52.50002296369735 + ], + [ + 13.41029942035675, + 52.49939268890719 + ], + [ + 13.410347700119019, + 52.49937962612168 + ], + [ + 13.410476446151733, + 52.49934370344147 + ], + [ + 13.410674929618835, + 52.499291452217875 + ], + [ + 13.4122896194458, + 52.49884078283674 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate/inside/style.json b/test/integration/query-tests/circle-translate/inside/style.json new file mode 100644 index 00000000000..185b589207c --- /dev/null +++ b/test/integration/query-tests/circle-translate/inside/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + 30, + 130 + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-translate": [ + 20, + 30 + ], + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate/outside/expected.json b/test/integration/query-tests/circle-translate/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/circle-translate/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/circle-translate/outside/style.json b/test/integration/query-tests/circle-translate/outside/style.json new file mode 100644 index 00000000000..b5042984f6e --- /dev/null +++ b/test/integration/query-tests/circle-translate/outside/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "queryGeometry": [ + 29, + 131 + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "road", + "type": "circle", + "source": "mapbox", + "source-layer": "road", + "paint": { + "circle-translate": [ + 20, + 30 + ], + "circle-radius": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z0/expected.json b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z0/expected.json new file mode 100644 index 00000000000..912955465e3 --- /dev/null +++ b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z0/expected.json @@ -0,0 +1,54 @@ +[ + { + "properties": { + "id": "B" + }, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -270, + 0 + ] + } + }, + { + "properties": { + "id": "C" + }, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -90, + 0 + ] + } + }, + { + "properties": { + "id": "B" + }, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 90, + 0 + ] + } + }, + { + "properties": { + "id": "C" + }, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 270, + 0 + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z0/style.json b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z0/style.json new file mode 100644 index 00000000000..85b1cfe5bc0 --- /dev/null +++ b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z0/style.json @@ -0,0 +1,87 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "needs investigation" + }, + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 112, + 200 + ], + [ + 400, + 281 + ] + ] + } + }, + "center": [ + 180, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "id": "A" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "id": "B" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 90, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "id": "C" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -90, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z1/expected.json b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z1/expected.json new file mode 100644 index 00000000000..27d76140595 --- /dev/null +++ b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z1/expected.json @@ -0,0 +1,28 @@ +[ + { + "properties": { + "id": "B" + }, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 109.9951171875, + 44.99588261816547 + ] + } + }, + { + "properties": { + "id": "C" + }, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -109.9951171875, + 44.99588261816547 + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z1/style.json b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z1/style.json new file mode 100644 index 00000000000..d06f54a8786 --- /dev/null +++ b/test/integration/query-tests/edge-cases/box-cutting-antimeridian-z1/style.json @@ -0,0 +1,97 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 50, + 200 + ], + [ + 462, + 281 + ] + ] + } + }, + "center": [ + 180, + 45 + ], + "zoom": 1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "id": "A" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 100, + 45 + ] + } + }, + { + "type": "Feature", + "properties": { + "id": "B" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 110, + 45 + ] + } + }, + { + "type": "Feature", + "properties": { + "id": "C" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -110, + 45 + ] + } + }, + { + "type": "Feature", + "properties": { + "id": "D" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -100, + 45 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/null-island/expected.json b/test/integration/query-tests/edge-cases/null-island/expected.json new file mode 100644 index 00000000000..b68c0ec605c --- /dev/null +++ b/test/integration/query-tests/edge-cases/null-island/expected.json @@ -0,0 +1,46 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/null-island/style.json b/test/integration/query-tests/edge-cases/null-island/style.json new file mode 100644 index 00000000000..2f3828a9c98 --- /dev/null +++ b/test/integration/query-tests/edge-cases/null-island/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/unsorted-keys/expected.json b/test/integration/query-tests/edge-cases/unsorted-keys/expected.json new file mode 100644 index 00000000000..815cc98cd43 --- /dev/null +++ b/test/integration/query-tests/edge-cases/unsorted-keys/expected.json @@ -0,0 +1,25 @@ +[ + { + "properties": { + "ldir": "E", + "localrank": 1, + "name": "Loveland", + "name_de": "Loveland", + "name_en": "Loveland", + "name_es": "Loveland", + "name_fr": "Loveland", + "name_ru": "Лавленд", + "name_zh": "洛弗兰德", + "type": "town" + }, + "id": 1540753080, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -84.26383852958679, + 39.268954879518304 + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/edge-cases/unsorted-keys/style.json b/test/integration/query-tests/edge-cases/unsorted-keys/style.json new file mode 100644 index 00000000000..1008c72e0c9 --- /dev/null +++ b/test/integration/query-tests/edge-cases/unsorted-keys/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 8, + "height": 8, + "queryGeometry": [ + 4, + 4 + ] + } + }, + "center": [ + -84.2638406, + 39.2689562 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "place-town", + "type": "symbol", + "source": "mapbox", + "source-layer": "place_label", + "layout": { + "icon-image": "interstate_3", + "text-field": "{name_en}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 20 + }, + "paint": { + "text-color": "hsl(0, 0%, 0%)" + }, + "interactive": true + } + ] +} diff --git a/test/integration/query-tests/fill-features-in/default/expected.json b/test/integration/query-tests/fill-features-in/default/expected.json new file mode 100644 index 00000000000..6a65e1edd71 --- /dev/null +++ b/test/integration/query-tests/fill-features-in/default/expected.json @@ -0,0 +1,826 @@ +[ + { + "properties": { + "id": "42017", + "name": "Bucks County", + "pop_density": 3662.8124921176313 + }, + "id": 24, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.1904296875, + 40.59101388345593 + ], + [ + -75.1959228515625, + 40.57849862511043 + ], + [ + -75.18218994140625, + 40.568067454307254 + ], + [ + -75.1629638671875, + 40.56598102500834 + ], + [ + -75.1409912109375, + 40.57641252104446 + ], + [ + -75.1025390625, + 40.568067454307254 + ], + [ + -75.069580078125, + 40.543026009954986 + ], + [ + -75.0640869140625, + 40.4824705245895 + ], + [ + -75.07232666015625, + 40.45739708775446 + ], + [ + -75.06134033203125, + 40.4197693814462 + ], + [ + -75.0311279296875, + 40.40513069752785 + ], + [ + -74.9981689453125, + 40.41140480914069 + ], + [ + -74.96795654296875, + 40.39885600103787 + ], + [ + -74.94049072265625, + 40.33817045213394 + ], + [ + -74.9102783203125, + 40.317231732315236 + ], + [ + -74.89654541015625, + 40.31513750307457 + ], + [ + -74.8663330078125, + 40.292096694701 + ], + [ + -74.8443603515625, + 40.25228042623783 + ], + [ + -74.77294921875, + 40.21663547539123 + ], + [ + -74.7564697265625, + 40.18726672309202 + ], + [ + -74.7235107421875, + 40.1620833816462 + ], + [ + -74.72625732421875, + 40.14738878354049 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.8223876953125, + 40.128491056854074 + ], + [ + -74.8388671875, + 40.10328591293441 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.9322509765625, + 40.071766346626134 + ], + [ + -74.9761962890625, + 40.04864272291729 + ], + [ + -74.9871826171875, + 40.059154433790695 + ], + [ + -74.97344970703125, + 40.078071427450084 + ], + [ + -74.9652099609375, + 40.078071427450084 + ], + [ + -74.95697021484375, + 40.096983167279575 + ], + [ + -74.96246337890625, + 40.099084147368444 + ], + [ + -74.9652099609375, + 40.120090380253316 + ], + [ + -74.98443603515625, + 40.12219064672337 + ], + [ + -75.48431396484375, + 40.4197693814462 + ], + [ + -75.41015625, + 40.48873742102282 + ], + [ + -75.267333984375, + 40.57849862511043 + ], + [ + -75.19866943359375, + 40.60978237983301 + ], + [ + -75.1904296875, + 40.59101388345593 + ] + ] + ] + } + }, + { + "properties": { + "id": "42091", + "name": "Montgomery County", + "pop_density": 5992.125506526473 + }, + "id": 18, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.01739501953125, + 40.13899044275823 + ], + [ + -75.0970458984375, + 40.069664523297774 + ], + [ + -75.08880615234375, + 40.06546068206555 + ], + [ + -75.11077880859375, + 40.04654018618777 + ], + [ + -75.17669677734375, + 40.08647729380883 + ], + [ + -75.1904296875, + 40.07386810509482 + ], + [ + -75.22613525390625, + 40.09488212232117 + ], + [ + -75.26458740234375, + 40.054949943999475 + ], + [ + -75.2069091796875, + 40.012890779526145 + ], + [ + -75.2783203125, + 39.97712009843963 + ], + [ + -75.31402587890625, + 40.02130468739708 + ], + [ + -75.322265625, + 40.01709786313759 + ], + [ + -75.36895751953125, + 40.07386810509482 + ], + [ + -75.3936767578125, + 40.061256581404706 + ], + [ + -75.421142578125, + 40.099084147368444 + ], + [ + -75.44036865234375, + 40.09067983779909 + ], + [ + -75.443115234375, + 40.09488212232117 + ], + [ + -75.45684814453125, + 40.08857859823706 + ], + [ + -75.45684814453125, + 40.09488212232117 + ], + [ + -75.465087890625, + 40.099084147368444 + ], + [ + -75.46234130859375, + 40.10328591293441 + ], + [ + -75.47332763671875, + 40.11378919157525 + ], + [ + -75.46234130859375, + 40.12639098502456 + ], + [ + -75.47332763671875, + 40.1305910638018 + ], + [ + -75.49530029296875, + 40.12639098502456 + ], + [ + -75.51177978515625, + 40.14109012528465 + ], + [ + -75.5035400390625, + 40.15578608609647 + ], + [ + -75.5145263671875, + 40.15998434802336 + ], + [ + -75.52276611328125, + 40.14738878354049 + ], + [ + -75.52825927734375, + 40.14948820651523 + ], + [ + -75.531005859375, + 40.17047886718112 + ], + [ + -75.5419921875, + 40.176774799905445 + ], + [ + -75.5584716796875, + 40.208245701525016 + ], + [ + -75.56671142578125, + 40.21034324236243 + ], + [ + -75.56396484375, + 40.19775702366542 + ], + [ + -75.574951171875, + 40.19565909336464 + ], + [ + -75.59967041015625, + 40.23760536584024 + ], + [ + -75.60791015625, + 40.23760536584024 + ], + [ + -75.60516357421875, + 40.22712123211295 + ], + [ + -75.6134033203125, + 40.225024210605 + ], + [ + -75.65185546875, + 40.243895066997766 + ], + [ + -75.67108154296875, + 40.245991504199026 + ], + [ + -75.6903076171875, + 40.23760536584024 + ], + [ + -75.69854736328125, + 40.243895066997766 + ], + [ + -75.531005859375, + 40.449037195237594 + ], + [ + -75.01739501953125, + 40.13899044275823 + ] + ] + ] + } + }, + { + "properties": { + "id": "42095", + "name": "Northampton County", + "pop_density": 2856.497509082138 + }, + "id": 16, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.1190185546875, + 40.95501133048617 + ], + [ + -75.0970458984375, + 40.9259649395143 + ], + [ + -75.08056640625, + 40.91558813293605 + ], + [ + -75.07781982421875, + 40.89482963261179 + ], + [ + -75.0531005859375, + 40.87198775669742 + ], + [ + -75.06683349609375, + 40.84913799774759 + ], + [ + -75.0970458984375, + 40.84913799774759 + ], + [ + -75.0970458984375, + 40.840827040200054 + ], + [ + -75.0860595703125, + 40.83043687764922 + ], + [ + -75.1025390625, + 40.809651667488566 + ], + [ + -75.1025390625, + 40.80133575979198 + ], + [ + -75.135498046875, + 40.77430186363719 + ], + [ + -75.1739501953125, + 40.778461640903544 + ], + [ + -75.179443359375, + 40.76390128094587 + ], + [ + -75.19866943359375, + 40.75349907043139 + ], + [ + -75.18218994140625, + 40.73268976628569 + ], + [ + -75.20416259765625, + 40.69313415330808 + ], + [ + -75.19866943359375, + 40.682720875945506 + ], + [ + -75.18218994140625, + 40.68063802521456 + ], + [ + -75.179443359375, + 40.67647212850002 + ], + [ + -75.201416015625, + 40.64938745451835 + ], + [ + -75.19317626953125, + 40.6410514961004 + ], + [ + -75.19317626953125, + 40.62020704520563 + ], + [ + -75.20416259765625, + 40.61812224225511 + ], + [ + -75.19866943359375, + 40.60978237983301 + ], + [ + -75.25909423828125, + 40.582670638095294 + ], + [ + -75.333251953125, + 40.53885152535463 + ], + [ + -75.4046630859375, + 40.582670638095294 + ], + [ + -75.3936767578125, + 40.597270634420255 + ], + [ + -75.39093017578125, + 40.61603737424184 + ], + [ + -75.38543701171875, + 40.61812224225511 + ], + [ + -75.38818359375, + 40.634798844041626 + ], + [ + -75.399169921875, + 40.63896734381726 + ], + [ + -75.43212890625, + 40.67438908251788 + ], + [ + -75.4815673828125, + 40.6577223717581 + ], + [ + -75.487060546875, + 40.6723059714534 + ], + [ + -75.50079345703125, + 40.68063802521456 + ], + [ + -75.52276611328125, + 40.71395582628605 + ], + [ + -75.52825927734375, + 40.736852147956085 + ], + [ + -75.5419921875, + 40.73893324113604 + ], + [ + -75.54473876953125, + 40.726445705514465 + ], + [ + -75.56121826171875, + 40.72228267283148 + ], + [ + -75.574951171875, + 40.73477098967237 + ], + [ + -75.59417724609375, + 40.736852147956085 + ], + [ + -75.61065673828125, + 40.78885994449482 + ], + [ + -75.5419921875, + 40.80757278825516 + ], + [ + -75.443115234375, + 40.820045086716505 + ], + [ + -75.38543701171875, + 40.832515040432725 + ], + [ + -75.28656005859375, + 40.86783384138491 + ], + [ + -75.267333984375, + 40.884447939035624 + ], + [ + -75.234375, + 40.90105786688403 + ], + [ + -75.24261474609375, + 40.911436954156414 + ], + [ + -75.223388671875, + 40.91973905106218 + ], + [ + -75.22064208984375, + 40.92804010533237 + ], + [ + -75.179443359375, + 40.94048973170135 + ], + [ + -75.179443359375, + 40.94671366508001 + ], + [ + -75.1300048828125, + 40.95915977213488 + ], + [ + -75.12176513671875, + 40.96952973563833 + ], + [ + -75.1190185546875, + 40.95501133048617 + ] + ] + ] + } + }, + { + "properties": { + "id": "42077", + "name": "Lehigh County", + "pop_density": 3641.4496469459136 + }, + "id": 15, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.59417724609375, + 40.736852147956085 + ], + [ + -75.574951171875, + 40.73477098967237 + ], + [ + -75.5584716796875, + 40.72228267283148 + ], + [ + -75.54473876953125, + 40.726445705514465 + ], + [ + -75.5419921875, + 40.73893324113604 + ], + [ + -75.52825927734375, + 40.736852147956085 + ], + [ + -75.52276611328125, + 40.71395582628605 + ], + [ + -75.50079345703125, + 40.68063802521456 + ], + [ + -75.487060546875, + 40.6723059714534 + ], + [ + -75.4815673828125, + 40.6577223717581 + ], + [ + -75.43212890625, + 40.67438908251788 + ], + [ + -75.399169921875, + 40.63896734381726 + ], + [ + -75.38818359375, + 40.634798844041626 + ], + [ + -75.38543701171875, + 40.61812224225511 + ], + [ + -75.39093017578125, + 40.61603737424184 + ], + [ + -75.3936767578125, + 40.597270634420255 + ], + [ + -75.4046630859375, + 40.582670638095294 + ], + [ + -75.33599853515625, + 40.53885152535463 + ], + [ + -75.41015625, + 40.48873742102282 + ], + [ + -75.48431396484375, + 40.4197693814462 + ], + [ + -75.8935546875, + 40.678555109399184 + ], + [ + -75.8551025390625, + 40.695216613517175 + ], + [ + -75.84686279296875, + 40.69313415330808 + ], + [ + -75.80841064453125, + 40.70771000786732 + ], + [ + -75.78094482421875, + 40.726445705514465 + ], + [ + -75.7452392578125, + 40.74101426921152 + ], + [ + -75.728759765625, + 40.75557964275589 + ], + [ + -75.70404052734375, + 40.76390128094587 + ], + [ + -75.69580078125, + 40.77222187732903 + ], + [ + -75.61065673828125, + 40.78885994449482 + ], + [ + -75.59417724609375, + 40.736852147956085 + ] + ] + ] + } + }, + { + "properties": { + "id": "42011", + "name": "Berks County", + "pop_density": 1729.3147920831748 + }, + "id": 9, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.531005859375, + 40.449037195237594 + ], + [ + -75.69854736328125, + 40.243895066997766 + ], + [ + -75.87432861328125, + 40.13899044275823 + ], + [ + -75.992431640625, + 40.21453812929633 + ], + [ + -75.992431640625, + 40.6410514961004 + ], + [ + -75.8935546875, + 40.678555109399184 + ], + [ + -75.531005859375, + 40.449037195237594 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill-features-in/default/style.json b/test/integration/query-tests/fill-features-in/default/style.json new file mode 100644 index 00000000000..ae11851631a --- /dev/null +++ b/test/integration/query-tests/fill-features-in/default/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 50, + 70 + ], + [ + 112, + 145 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill-features-in/rotated/expected.json b/test/integration/query-tests/fill-features-in/rotated/expected.json new file mode 100644 index 00000000000..ac9b2afa05c --- /dev/null +++ b/test/integration/query-tests/fill-features-in/rotated/expected.json @@ -0,0 +1,734 @@ +[ + { + "properties": { + "id": "34023", + "name": "Middlesex County", + "pop_density": 9125.349561913852 + }, + "id": 46, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.3060302734375, + 40.60144147645397 + ], + [ + -74.29229736328125, + 40.5930995321649 + ], + [ + -74.2620849609375, + 40.59935608796519 + ], + [ + -74.25933837890625, + 40.603526799885884 + ], + [ + -74.23736572265625, + 40.603526799885884 + ], + [ + -74.23187255859375, + 40.59935608796519 + ], + [ + -74.21539306640625, + 40.605612058260164 + ], + [ + -74.20440673828125, + 40.5930995321649 + ], + [ + -74.22088623046875, + 40.55763465737647 + ], + [ + -74.23187255859375, + 40.55972134684839 + ], + [ + -74.24835205078125, + 40.54928724908203 + ], + [ + -74.24835205078125, + 40.52215098562377 + ], + [ + -74.256591796875, + 40.51588721022961 + ], + [ + -74.25933837890625, + 40.49918094806631 + ], + [ + -74.25384521484375, + 40.48873742102282 + ], + [ + -74.2291259765625, + 40.47829226856015 + ], + [ + -74.2236328125, + 40.45321727150386 + ], + [ + -74.2291259765625, + 40.44485685896177 + ], + [ + -74.23736572265625, + 40.44485685896177 + ], + [ + -74.24835205078125, + 40.4323142901375 + ], + [ + -74.24835205078125, + 40.40722213305287 + ], + [ + -74.39666748046875, + 40.29000168607598 + ], + [ + -74.3939208984375, + 40.27952566881291 + ], + [ + -74.46258544921875, + 40.25228042623783 + ], + [ + -74.48455810546875, + 40.254376603726485 + ], + [ + -74.48455810546875, + 40.2753348073247 + ], + [ + -74.50927734375, + 40.28162100214797 + ], + [ + -74.5147705078125, + 40.28790661250741 + ], + [ + -74.52301025390625, + 40.28790661250741 + ], + [ + -74.52301025390625, + 40.292096694701 + ], + [ + -74.53125, + 40.296286517117125 + ], + [ + -74.542236328125, + 40.29000168607598 + ], + [ + -74.54498291015625, + 40.294191638381676 + ], + [ + -74.5587158203125, + 40.292096694701 + ], + [ + -74.58343505859375, + 40.304665382591764 + ], + [ + -74.586181640625, + 40.31513750307457 + ], + [ + -74.62188720703125, + 40.32560799973206 + ], + [ + -74.630126953125, + 40.342357416583326 + ], + [ + -74.62188720703125, + 40.375843776960096 + ], + [ + -74.6026611328125, + 40.38212061782238 + ], + [ + -74.58892822265625, + 40.394672545122944 + ], + [ + -74.586181640625, + 40.4197693814462 + ], + [ + -74.5367431640625, + 40.43858586704329 + ], + [ + -74.4598388671875, + 40.497092372695676 + ], + [ + -74.46807861328125, + 40.509622849596695 + ], + [ + -74.48455810546875, + 40.513799155044126 + ], + [ + -74.49554443359375, + 40.530501775743204 + ], + [ + -74.5147705078125, + 40.543026009954986 + ], + [ + -74.520263671875, + 40.55554790286311 + ], + [ + -74.52850341796875, + 40.55972134684839 + ], + [ + -74.52850341796875, + 40.57015381856107 + ], + [ + -74.51751708984375, + 40.582670638095294 + ], + [ + -74.4708251953125, + 40.59935608796519 + ], + [ + -74.4598388671875, + 40.5951851158199 + ], + [ + -74.3060302734375, + 40.60978237983301 + ], + [ + -74.3060302734375, + 40.60144147645397 + ] + ] + ] + } + }, + { + "properties": { + "id": "34021", + "name": "Mercer County", + "pop_density": 5838.068064207171 + }, + "id": 26, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.7235107421875, + 40.375843776960096 + ], + [ + -74.65484619140625, + 40.392580719691324 + ], + [ + -74.6246337890625, + 40.386304853509046 + ], + [ + -74.619140625, + 40.377936122224156 + ], + [ + -74.62738037109375, + 40.36747374615592 + ], + [ + -74.630126953125, + 40.342357416583326 + ], + [ + -74.6246337890625, + 40.32560799973206 + ], + [ + -74.586181640625, + 40.31513750307457 + ], + [ + -74.58343505859375, + 40.304665382591764 + ], + [ + -74.5587158203125, + 40.292096694701 + ], + [ + -74.54498291015625, + 40.294191638381676 + ], + [ + -74.542236328125, + 40.29000168607598 + ], + [ + -74.53125, + 40.296286517117125 + ], + [ + -74.52301025390625, + 40.28790661250741 + ], + [ + -74.5147705078125, + 40.28790661250741 + ], + [ + -74.50927734375, + 40.28162100214797 + ], + [ + -74.48455810546875, + 40.2753348073247 + ], + [ + -74.48455810546875, + 40.254376603726485 + ], + [ + -74.49005126953125, + 40.25228042623783 + ], + [ + -74.4818115234375, + 40.243895066997766 + ], + [ + -74.54498291015625, + 40.21663547539123 + ], + [ + -74.564208984375, + 40.19146303804064 + ], + [ + -74.59442138671875, + 40.180971763887186 + ], + [ + -74.59991455078125, + 40.18726672309202 + ], + [ + -74.61639404296875, + 40.1830701485253 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.71527099609375, + 40.176774799905445 + ], + [ + -74.70977783203125, + 40.172577576321686 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.70703125, + 40.1620833816462 + ], + [ + -74.72625732421875, + 40.14738878354049 + ], + [ + -74.7235107421875, + 40.1620833816462 + ], + [ + -74.73724365234375, + 40.17887331434699 + ], + [ + -74.7564697265625, + 40.18726672309202 + ], + [ + -74.77294921875, + 40.21663547539123 + ], + [ + -74.8443603515625, + 40.25228042623783 + ], + [ + -74.8663330078125, + 40.292096694701 + ], + [ + -74.8828125, + 40.30675993658963 + ], + [ + -74.9102783203125, + 40.317231732315236 + ], + [ + -74.9432373046875, + 40.342357416583326 + ], + [ + -74.85809326171875, + 40.34863737603172 + ], + [ + -74.871826171875, + 40.377936122224156 + ], + [ + -74.80316162109375, + 40.386304853509046 + ], + [ + -74.80865478515625, + 40.4176783358555 + ], + [ + -74.74822998046875, + 40.426042128264925 + ], + [ + -74.7235107421875, + 40.375843776960096 + ] + ] + ] + } + }, + { + "properties": { + "id": "34035", + "name": "Somerset County", + "pop_density": 3852.3524267234866 + }, + "id": 23, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.55047607421875, + 40.73477098967237 + ], + [ + -74.53125, + 40.72852712420598 + ], + [ + -74.53399658203125, + 40.72228267283148 + ], + [ + -74.5257568359375, + 40.71603763556806 + ], + [ + -74.52850341796875, + 40.709792012434946 + ], + [ + -74.5147705078125, + 40.701463603604594 + ], + [ + -74.5147705078125, + 40.695216613517175 + ], + [ + -74.520263671875, + 40.695216613517175 + ], + [ + -74.51751708984375, + 40.69105162801023 + ], + [ + -74.5257568359375, + 40.69105162801023 + ], + [ + -74.52850341796875, + 40.6723059714534 + ], + [ + -74.5367431640625, + 40.668139554080426 + ], + [ + -74.5257568359375, + 40.66188943992171 + ], + [ + -74.5257568359375, + 40.651471281440564 + ], + [ + -74.5147705078125, + 40.651471281440564 + ], + [ + -74.50653076171875, + 40.659805938378526 + ], + [ + -74.46258544921875, + 40.67438908251788 + ], + [ + -74.454345703125, + 40.655638740061164 + ], + [ + -74.432373046875, + 40.666056247773355 + ], + [ + -74.42138671875, + 40.659805938378526 + ], + [ + -74.40765380859375, + 40.668139554080426 + ], + [ + -74.40216064453125, + 40.666056247773355 + ], + [ + -74.410400390625, + 40.64313558331281 + ], + [ + -74.4158935546875, + 40.6410514961004 + ], + [ + -74.41864013671875, + 40.62854560636586 + ], + [ + -74.4598388671875, + 40.60144147645397 + ], + [ + -74.51751708984375, + 40.582670638095294 + ], + [ + -74.52850341796875, + 40.57015381856107 + ], + [ + -74.52850341796875, + 40.55972134684839 + ], + [ + -74.520263671875, + 40.55554790286311 + ], + [ + -74.5147705078125, + 40.543026009954986 + ], + [ + -74.49554443359375, + 40.530501775743204 + ], + [ + -74.48455810546875, + 40.513799155044126 + ], + [ + -74.46807861328125, + 40.509622849596695 + ], + [ + -74.4598388671875, + 40.497092372695676 + ], + [ + -74.5367431640625, + 40.43858586704329 + ], + [ + -74.586181640625, + 40.4197693814462 + ], + [ + -74.58892822265625, + 40.394672545122944 + ], + [ + -74.6026611328125, + 40.38212061782238 + ], + [ + -74.62188720703125, + 40.375843776960096 + ], + [ + -74.6246337890625, + 40.386304853509046 + ], + [ + -74.65484619140625, + 40.392580719691324 + ], + [ + -74.7235107421875, + 40.375843776960096 + ], + [ + -74.8004150390625, + 40.51588721022961 + ], + [ + -74.77569580078125, + 40.50544628405211 + ], + [ + -74.74273681640625, + 40.55554790286311 + ], + [ + -74.71527099609375, + 40.58475654701272 + ], + [ + -74.72625732421875, + 40.58892816969373 + ], + [ + -74.70428466796875, + 40.62229178309272 + ], + [ + -74.71527099609375, + 40.63271449655062 + ], + [ + -74.72625732421875, + 40.63271449655062 + ], + [ + -74.72076416015625, + 40.655638740061164 + ], + [ + -74.73175048828125, + 40.666056247773355 + ], + [ + -74.7235107421875, + 40.67022279530735 + ], + [ + -74.718017578125, + 40.684803661591246 + ], + [ + -74.72625732421875, + 40.68896903762433 + ], + [ + -74.718017578125, + 40.701463603604594 + ], + [ + -74.72625732421875, + 40.720201058841496 + ], + [ + -74.55596923828125, + 40.75974059207391 + ], + [ + -74.55047607421875, + 40.73477098967237 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill-features-in/rotated/style.json b/test/integration/query-tests/fill-features-in/rotated/style.json new file mode 100644 index 00000000000..c4c0f8f539f --- /dev/null +++ b/test/integration/query-tests/fill-features-in/rotated/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 30, + 120 + ], + [ + 142, + 145 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "bearing": 45, + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill-features-in/tilted/expected.json b/test/integration/query-tests/fill-features-in/tilted/expected.json new file mode 100644 index 00000000000..79a1e1aacb3 --- /dev/null +++ b/test/integration/query-tests/fill-features-in/tilted/expected.json @@ -0,0 +1,658 @@ +[ + { + "properties": { + "id": "34025", + "name": "Monmouth County", + "pop_density": 3454.220015794825 + }, + "id": 47, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -73.8885498046875, + 40.49082625646807 + ], + [ + -73.89129638671875, + 40.310948849734984 + ], + [ + -73.8995361328125, + 40.2753348073247 + ], + [ + -73.9654541015625, + 40.120090380253316 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.0972900390625, + 40.1305910638018 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.61639404296875, + 40.1830701485253 + ], + [ + -74.59991455078125, + 40.18726672309202 + ], + [ + -74.59442138671875, + 40.180971763887186 + ], + [ + -74.56695556640625, + 40.18936491301898 + ], + [ + -74.54498291015625, + 40.21873275657032 + ], + [ + -74.4818115234375, + 40.243895066997766 + ], + [ + -74.49005126953125, + 40.254376603726485 + ], + [ + -74.46258544921875, + 40.25228042623783 + ], + [ + -74.3939208984375, + 40.27952566881291 + ], + [ + -74.39666748046875, + 40.29000168607598 + ], + [ + -74.24835205078125, + 40.40722213305287 + ], + [ + -74.24835205078125, + 40.4323142901375 + ], + [ + -74.23736572265625, + 40.44485685896177 + ], + [ + -74.2291259765625, + 40.44485685896177 + ], + [ + -74.2236328125, + 40.45321727150386 + ], + [ + -74.2291259765625, + 40.47829226856015 + ], + [ + -73.95172119140625, + 40.52632651074401 + ], + [ + -73.8885498046875, + 40.49082625646807 + ] + ] + ] + } + }, + { + "properties": { + "id": "34023", + "name": "Middlesex County", + "pop_density": 9125.349561913852 + }, + "id": 46, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.3060302734375, + 40.60144147645397 + ], + [ + -74.29229736328125, + 40.5930995321649 + ], + [ + -74.2620849609375, + 40.59935608796519 + ], + [ + -74.25933837890625, + 40.603526799885884 + ], + [ + -74.23736572265625, + 40.603526799885884 + ], + [ + -74.23187255859375, + 40.59935608796519 + ], + [ + -74.21539306640625, + 40.605612058260164 + ], + [ + -74.20440673828125, + 40.5930995321649 + ], + [ + -74.22088623046875, + 40.55763465737647 + ], + [ + -74.23187255859375, + 40.55972134684839 + ], + [ + -74.24835205078125, + 40.54928724908203 + ], + [ + -74.24835205078125, + 40.52215098562377 + ], + [ + -74.256591796875, + 40.51588721022961 + ], + [ + -74.25933837890625, + 40.49918094806631 + ], + [ + -74.25384521484375, + 40.48873742102282 + ], + [ + -74.2291259765625, + 40.47829226856015 + ], + [ + -74.2236328125, + 40.45321727150386 + ], + [ + -74.2291259765625, + 40.44485685896177 + ], + [ + -74.23736572265625, + 40.44485685896177 + ], + [ + -74.24835205078125, + 40.4323142901375 + ], + [ + -74.24835205078125, + 40.40722213305287 + ], + [ + -74.39666748046875, + 40.29000168607598 + ], + [ + -74.3939208984375, + 40.27952566881291 + ], + [ + -74.46258544921875, + 40.25228042623783 + ], + [ + -74.48455810546875, + 40.254376603726485 + ], + [ + -74.48455810546875, + 40.2753348073247 + ], + [ + -74.50927734375, + 40.28162100214797 + ], + [ + -74.5147705078125, + 40.28790661250741 + ], + [ + -74.52301025390625, + 40.28790661250741 + ], + [ + -74.52301025390625, + 40.292096694701 + ], + [ + -74.53125, + 40.296286517117125 + ], + [ + -74.542236328125, + 40.29000168607598 + ], + [ + -74.54498291015625, + 40.294191638381676 + ], + [ + -74.5587158203125, + 40.292096694701 + ], + [ + -74.58343505859375, + 40.304665382591764 + ], + [ + -74.586181640625, + 40.31513750307457 + ], + [ + -74.62188720703125, + 40.32560799973206 + ], + [ + -74.630126953125, + 40.342357416583326 + ], + [ + -74.62188720703125, + 40.375843776960096 + ], + [ + -74.6026611328125, + 40.38212061782238 + ], + [ + -74.58892822265625, + 40.394672545122944 + ], + [ + -74.586181640625, + 40.4197693814462 + ], + [ + -74.5367431640625, + 40.43858586704329 + ], + [ + -74.4598388671875, + 40.497092372695676 + ], + [ + -74.46807861328125, + 40.509622849596695 + ], + [ + -74.48455810546875, + 40.513799155044126 + ], + [ + -74.49554443359375, + 40.530501775743204 + ], + [ + -74.5147705078125, + 40.543026009954986 + ], + [ + -74.520263671875, + 40.55554790286311 + ], + [ + -74.52850341796875, + 40.55972134684839 + ], + [ + -74.52850341796875, + 40.57015381856107 + ], + [ + -74.51751708984375, + 40.582670638095294 + ], + [ + -74.4708251953125, + 40.59935608796519 + ], + [ + -74.4598388671875, + 40.5951851158199 + ], + [ + -74.3060302734375, + 40.60978237983301 + ], + [ + -74.3060302734375, + 40.60144147645397 + ] + ] + ] + } + }, + { + "properties": { + "id": "34021", + "name": "Mercer County", + "pop_density": 5838.068064207171 + }, + "id": 26, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.7235107421875, + 40.375843776960096 + ], + [ + -74.65484619140625, + 40.392580719691324 + ], + [ + -74.6246337890625, + 40.386304853509046 + ], + [ + -74.619140625, + 40.377936122224156 + ], + [ + -74.62738037109375, + 40.36747374615592 + ], + [ + -74.630126953125, + 40.342357416583326 + ], + [ + -74.6246337890625, + 40.32560799973206 + ], + [ + -74.586181640625, + 40.31513750307457 + ], + [ + -74.58343505859375, + 40.304665382591764 + ], + [ + -74.5587158203125, + 40.292096694701 + ], + [ + -74.54498291015625, + 40.294191638381676 + ], + [ + -74.542236328125, + 40.29000168607598 + ], + [ + -74.53125, + 40.296286517117125 + ], + [ + -74.52301025390625, + 40.28790661250741 + ], + [ + -74.5147705078125, + 40.28790661250741 + ], + [ + -74.50927734375, + 40.28162100214797 + ], + [ + -74.48455810546875, + 40.2753348073247 + ], + [ + -74.48455810546875, + 40.254376603726485 + ], + [ + -74.49005126953125, + 40.25228042623783 + ], + [ + -74.4818115234375, + 40.243895066997766 + ], + [ + -74.54498291015625, + 40.21663547539123 + ], + [ + -74.564208984375, + 40.19146303804064 + ], + [ + -74.59442138671875, + 40.180971763887186 + ], + [ + -74.59991455078125, + 40.18726672309202 + ], + [ + -74.61639404296875, + 40.1830701485253 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.71527099609375, + 40.176774799905445 + ], + [ + -74.70977783203125, + 40.172577576321686 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.70703125, + 40.1620833816462 + ], + [ + -74.72625732421875, + 40.14738878354049 + ], + [ + -74.7235107421875, + 40.1620833816462 + ], + [ + -74.73724365234375, + 40.17887331434699 + ], + [ + -74.7564697265625, + 40.18726672309202 + ], + [ + -74.77294921875, + 40.21663547539123 + ], + [ + -74.8443603515625, + 40.25228042623783 + ], + [ + -74.8663330078125, + 40.292096694701 + ], + [ + -74.8828125, + 40.30675993658963 + ], + [ + -74.9102783203125, + 40.317231732315236 + ], + [ + -74.9432373046875, + 40.342357416583326 + ], + [ + -74.85809326171875, + 40.34863737603172 + ], + [ + -74.871826171875, + 40.377936122224156 + ], + [ + -74.80316162109375, + 40.386304853509046 + ], + [ + -74.80865478515625, + 40.4176783358555 + ], + [ + -74.74822998046875, + 40.426042128264925 + ], + [ + -74.7235107421875, + 40.375843776960096 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill-features-in/tilted/style.json b/test/integration/query-tests/fill-features-in/tilted/style.json new file mode 100644 index 00000000000..9f9a937b2a8 --- /dev/null +++ b/test/integration/query-tests/fill-features-in/tilted/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 260, + 90 + ], + [ + 280, + 110 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 9, + "pitch": 50, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill-translate-anchor/map/expected.json b/test/integration/query-tests/fill-translate-anchor/map/expected.json new file mode 100644 index 00000000000..3a9f7c6cd80 --- /dev/null +++ b/test/integration/query-tests/fill-translate-anchor/map/expected.json @@ -0,0 +1,190 @@ +[ + { + "properties": { + "id": "42017", + "name": "Bucks County", + "pop_density": 3662.8124921176313 + }, + "id": 24, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.1904296875, + 40.59101388345593 + ], + [ + -75.1959228515625, + 40.57849862511043 + ], + [ + -75.18218994140625, + 40.568067454307254 + ], + [ + -75.1629638671875, + 40.56598102500834 + ], + [ + -75.1409912109375, + 40.57641252104446 + ], + [ + -75.1025390625, + 40.568067454307254 + ], + [ + -75.069580078125, + 40.543026009954986 + ], + [ + -75.0640869140625, + 40.4824705245895 + ], + [ + -75.07232666015625, + 40.45739708775446 + ], + [ + -75.06134033203125, + 40.4197693814462 + ], + [ + -75.0311279296875, + 40.40513069752785 + ], + [ + -74.9981689453125, + 40.41140480914069 + ], + [ + -74.96795654296875, + 40.39885600103787 + ], + [ + -74.94049072265625, + 40.33817045213394 + ], + [ + -74.9102783203125, + 40.317231732315236 + ], + [ + -74.89654541015625, + 40.31513750307457 + ], + [ + -74.8663330078125, + 40.292096694701 + ], + [ + -74.8443603515625, + 40.25228042623783 + ], + [ + -74.77294921875, + 40.21663547539123 + ], + [ + -74.7564697265625, + 40.18726672309202 + ], + [ + -74.7235107421875, + 40.1620833816462 + ], + [ + -74.72625732421875, + 40.14738878354049 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.8223876953125, + 40.128491056854074 + ], + [ + -74.8388671875, + 40.10328591293441 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.9322509765625, + 40.071766346626134 + ], + [ + -74.9761962890625, + 40.04864272291729 + ], + [ + -74.9871826171875, + 40.059154433790695 + ], + [ + -74.97344970703125, + 40.078071427450084 + ], + [ + -74.9652099609375, + 40.078071427450084 + ], + [ + -74.95697021484375, + 40.096983167279575 + ], + [ + -74.96246337890625, + 40.099084147368444 + ], + [ + -74.9652099609375, + 40.120090380253316 + ], + [ + -74.98443603515625, + 40.12219064672337 + ], + [ + -75.48431396484375, + 40.4197693814462 + ], + [ + -75.41015625, + 40.48873742102282 + ], + [ + -75.267333984375, + 40.57849862511043 + ], + [ + -75.19866943359375, + 40.60978237983301 + ], + [ + -75.1904296875, + 40.59101388345593 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill-translate-anchor/map/style.json b/test/integration/query-tests/fill-translate-anchor/map/style.json new file mode 100644 index 00000000000..f69535271b0 --- /dev/null +++ b/test/integration/query-tests/fill-translate-anchor/map/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 136, + 231 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "bearing": 45, + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-translate": [ + 100, + 100 + ], + "fill-translate-anchor": "map", + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill-translate-anchor/viewport/expected.json b/test/integration/query-tests/fill-translate-anchor/viewport/expected.json new file mode 100644 index 00000000000..ac09082f543 --- /dev/null +++ b/test/integration/query-tests/fill-translate-anchor/viewport/expected.json @@ -0,0 +1,258 @@ +[ + { + "properties": { + "id": "34035", + "name": "Somerset County", + "pop_density": 3852.3524267234866 + }, + "id": 23, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.55047607421875, + 40.73477098967237 + ], + [ + -74.53125, + 40.72852712420598 + ], + [ + -74.53399658203125, + 40.72228267283148 + ], + [ + -74.5257568359375, + 40.71603763556806 + ], + [ + -74.52850341796875, + 40.709792012434946 + ], + [ + -74.5147705078125, + 40.701463603604594 + ], + [ + -74.5147705078125, + 40.695216613517175 + ], + [ + -74.520263671875, + 40.695216613517175 + ], + [ + -74.51751708984375, + 40.69105162801023 + ], + [ + -74.5257568359375, + 40.69105162801023 + ], + [ + -74.52850341796875, + 40.6723059714534 + ], + [ + -74.5367431640625, + 40.668139554080426 + ], + [ + -74.5257568359375, + 40.66188943992171 + ], + [ + -74.5257568359375, + 40.651471281440564 + ], + [ + -74.5147705078125, + 40.651471281440564 + ], + [ + -74.50653076171875, + 40.659805938378526 + ], + [ + -74.46258544921875, + 40.67438908251788 + ], + [ + -74.454345703125, + 40.655638740061164 + ], + [ + -74.432373046875, + 40.666056247773355 + ], + [ + -74.42138671875, + 40.659805938378526 + ], + [ + -74.40765380859375, + 40.668139554080426 + ], + [ + -74.40216064453125, + 40.666056247773355 + ], + [ + -74.410400390625, + 40.64313558331281 + ], + [ + -74.4158935546875, + 40.6410514961004 + ], + [ + -74.41864013671875, + 40.62854560636586 + ], + [ + -74.4598388671875, + 40.60144147645397 + ], + [ + -74.51751708984375, + 40.582670638095294 + ], + [ + -74.52850341796875, + 40.57015381856107 + ], + [ + -74.52850341796875, + 40.55972134684839 + ], + [ + -74.520263671875, + 40.55554790286311 + ], + [ + -74.5147705078125, + 40.543026009954986 + ], + [ + -74.49554443359375, + 40.530501775743204 + ], + [ + -74.48455810546875, + 40.513799155044126 + ], + [ + -74.46807861328125, + 40.509622849596695 + ], + [ + -74.4598388671875, + 40.497092372695676 + ], + [ + -74.5367431640625, + 40.43858586704329 + ], + [ + -74.586181640625, + 40.4197693814462 + ], + [ + -74.58892822265625, + 40.394672545122944 + ], + [ + -74.6026611328125, + 40.38212061782238 + ], + [ + -74.62188720703125, + 40.375843776960096 + ], + [ + -74.6246337890625, + 40.386304853509046 + ], + [ + -74.65484619140625, + 40.392580719691324 + ], + [ + -74.7235107421875, + 40.375843776960096 + ], + [ + -74.8004150390625, + 40.51588721022961 + ], + [ + -74.77569580078125, + 40.50544628405211 + ], + [ + -74.74273681640625, + 40.55554790286311 + ], + [ + -74.71527099609375, + 40.58475654701272 + ], + [ + -74.72625732421875, + 40.58892816969373 + ], + [ + -74.70428466796875, + 40.62229178309272 + ], + [ + -74.71527099609375, + 40.63271449655062 + ], + [ + -74.72625732421875, + 40.63271449655062 + ], + [ + -74.72076416015625, + 40.655638740061164 + ], + [ + -74.73175048828125, + 40.666056247773355 + ], + [ + -74.7235107421875, + 40.67022279530735 + ], + [ + -74.718017578125, + 40.684803661591246 + ], + [ + -74.72625732421875, + 40.68896903762433 + ], + [ + -74.718017578125, + 40.701463603604594 + ], + [ + -74.72625732421875, + 40.720201058841496 + ], + [ + -74.55596923828125, + 40.75974059207391 + ], + [ + -74.55047607421875, + 40.73477098967237 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill-translate-anchor/viewport/style.json b/test/integration/query-tests/fill-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..587ab47db39 --- /dev/null +++ b/test/integration/query-tests/fill-translate-anchor/viewport/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 136, + 231 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "bearing": 45, + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-translate": [ + 100, + 100 + ], + "fill-translate-anchor": "viewport", + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill-translate/literal/expected.json b/test/integration/query-tests/fill-translate/literal/expected.json new file mode 100644 index 00000000000..87c4a3373f3 --- /dev/null +++ b/test/integration/query-tests/fill-translate/literal/expected.json @@ -0,0 +1,202 @@ +[ + { + "properties": { + "id": "42091", + "name": "Montgomery County", + "pop_density": 5992.125506526473 + }, + "id": 18, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -75.01739501953125, + 40.13899044275823 + ], + [ + -75.0970458984375, + 40.069664523297774 + ], + [ + -75.08880615234375, + 40.06546068206555 + ], + [ + -75.11077880859375, + 40.04654018618777 + ], + [ + -75.17669677734375, + 40.08647729380883 + ], + [ + -75.1904296875, + 40.07386810509482 + ], + [ + -75.22613525390625, + 40.09488212232117 + ], + [ + -75.26458740234375, + 40.054949943999475 + ], + [ + -75.2069091796875, + 40.012890779526145 + ], + [ + -75.2783203125, + 39.97712009843963 + ], + [ + -75.31402587890625, + 40.02130468739708 + ], + [ + -75.322265625, + 40.01709786313759 + ], + [ + -75.36895751953125, + 40.07386810509482 + ], + [ + -75.3936767578125, + 40.061256581404706 + ], + [ + -75.421142578125, + 40.099084147368444 + ], + [ + -75.44036865234375, + 40.09067983779909 + ], + [ + -75.443115234375, + 40.09488212232117 + ], + [ + -75.45684814453125, + 40.08857859823706 + ], + [ + -75.45684814453125, + 40.09488212232117 + ], + [ + -75.465087890625, + 40.099084147368444 + ], + [ + -75.46234130859375, + 40.10328591293441 + ], + [ + -75.47332763671875, + 40.11378919157525 + ], + [ + -75.46234130859375, + 40.12639098502456 + ], + [ + -75.47332763671875, + 40.1305910638018 + ], + [ + -75.49530029296875, + 40.12639098502456 + ], + [ + -75.51177978515625, + 40.14109012528465 + ], + [ + -75.5035400390625, + 40.15578608609647 + ], + [ + -75.5145263671875, + 40.15998434802336 + ], + [ + -75.52276611328125, + 40.14738878354049 + ], + [ + -75.52825927734375, + 40.14948820651523 + ], + [ + -75.531005859375, + 40.17047886718112 + ], + [ + -75.5419921875, + 40.176774799905445 + ], + [ + -75.5584716796875, + 40.208245701525016 + ], + [ + -75.56671142578125, + 40.21034324236243 + ], + [ + -75.56396484375, + 40.19775702366542 + ], + [ + -75.574951171875, + 40.19565909336464 + ], + [ + -75.59967041015625, + 40.23760536584024 + ], + [ + -75.60791015625, + 40.23760536584024 + ], + [ + -75.60516357421875, + 40.22712123211295 + ], + [ + -75.6134033203125, + 40.225024210605 + ], + [ + -75.65185546875, + 40.243895066997766 + ], + [ + -75.67108154296875, + 40.245991504199026 + ], + [ + -75.6903076171875, + 40.23760536584024 + ], + [ + -75.69854736328125, + 40.243895066997766 + ], + [ + -75.531005859375, + 40.449037195237594 + ], + [ + -75.01739501953125, + 40.13899044275823 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill-translate/literal/style.json b/test/integration/query-tests/fill-translate/literal/style.json new file mode 100644 index 00000000000..b773d406932 --- /dev/null +++ b/test/integration/query-tests/fill-translate/literal/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 136, + 231 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-translate": [ + 100, + 100 + ], + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill/default/expected.json b/test/integration/query-tests/fill/default/expected.json new file mode 100644 index 00000000000..31d4ecb219d --- /dev/null +++ b/test/integration/query-tests/fill/default/expected.json @@ -0,0 +1,162 @@ +[ + { + "properties": { + "id": "42101", + "name": "Philadelphia County", + "pop_density": 39142.52658375366 + }, + "id": 25, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.9652099609375, + 40.117990048904744 + ], + [ + -74.96795654296875, + 40.109588074741396 + ], + [ + -74.95697021484375, + 40.096983167279575 + ], + [ + -74.959716796875, + 40.08437592451517 + ], + [ + -74.9871826171875, + 40.05705222132201 + ], + [ + -74.9761962890625, + 40.04864272291729 + ], + [ + -75.00091552734375, + 40.029717557833266 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.07781982421875, + 39.979224774767346 + ], + [ + -75.1080322265625, + 39.97291055131899 + ], + [ + -75.13275146484375, + 39.95817509460008 + ], + [ + -75.13824462890625, + 39.93501296038252 + ], + [ + -75.1300048828125, + 39.90973623453718 + ], + [ + -75.13275146484375, + 39.8992015115692 + ], + [ + -75.146484375, + 39.88655770592845 + ], + [ + -75.1904296875, + 39.88234258575574 + ], + [ + -75.21240234375, + 39.86758762451021 + ], + [ + -75.2178955078125, + 39.87812720644828 + ], + [ + -75.24261474609375, + 39.873911568012915 + ], + [ + -75.26458740234375, + 39.87812720644828 + ], + [ + -75.267333984375, + 39.88866516883712 + ], + [ + -75.23712158203125, + 39.93922484079195 + ], + [ + -75.25360107421875, + 39.94975340768178 + ], + [ + -75.24810791015625, + 39.96449067924027 + ], + [ + -75.267333984375, + 39.966595744487506 + ], + [ + -75.28106689453125, + 39.97501535728992 + ], + [ + -75.2069091796875, + 40.012890779526145 + ], + [ + -75.26458740234375, + 40.054949943999475 + ], + [ + -75.22613525390625, + 40.09488212232117 + ], + [ + -75.1904296875, + 40.07386810509482 + ], + [ + -75.17669677734375, + 40.08647729380883 + ], + [ + -75.11077880859375, + 40.04654018618777 + ], + [ + -75.08880615234375, + 40.06546068206555 + ], + [ + -75.0970458984375, + 40.069664523297774 + ], + [ + -75.01739501953125, + 40.13899044275823 + ], + [ + -74.9652099609375, + 40.117990048904744 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill/default/style.json b/test/integration/query-tests/fill/default/style.json new file mode 100644 index 00000000000..2b7411099af --- /dev/null +++ b/test/integration/query-tests/fill/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 136, + 231 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/fill/overscaled/expected.json b/test/integration/query-tests/fill/overscaled/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/fill/overscaled/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/fill/overscaled/style.json b/test/integration/query-tests/fill/overscaled/style.json new file mode 100644 index 00000000000..b7baf51069a --- /dev/null +++ b/test/integration/query-tests/fill/overscaled/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 136, + 231 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "fill", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "fill-outline-color": "white" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/geometry/linestring/expected.json b/test/integration/query-tests/geometry/linestring/expected.json new file mode 100644 index 00000000000..28d30f300c5 --- /dev/null +++ b/test/integration/query-tests/geometry/linestring/expected.json @@ -0,0 +1,19 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 0, + 0 + ], + [ + 45, + 44.99588261816547 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/geometry/linestring/style.json b/test/integration/query-tests/geometry/linestring/style.json new file mode 100644 index 00000000000..9d4baa8a97f --- /dev/null +++ b/test/integration/query-tests/geometry/linestring/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + 0, + 0 + ], [ + 45, + 45 + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "line", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/geometry/multilinestring/expected.json b/test/integration/query-tests/geometry/multilinestring/expected.json new file mode 100644 index 00000000000..955d8a1a53d --- /dev/null +++ b/test/integration/query-tests/geometry/multilinestring/expected.json @@ -0,0 +1,31 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + 0, + 0 + ], + [ + 45, + 44.99588261816547 + ] + ], + [ + [ + -5.009765625, + -5.003394345022144 + ], + [ + -45, + -44.99588261816546 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/geometry/multilinestring/style.json b/test/integration/query-tests/geometry/multilinestring/style.json new file mode 100644 index 00000000000..de669de8e8a --- /dev/null +++ b/test/integration/query-tests/geometry/multilinestring/style.json @@ -0,0 +1,65 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "needs investigation" + }, + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + 0, + 0 + ], + [ + 45, + 45 + ] + ], + [ + [ + -5, + -5 + ], + [ + -45, + -45 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "line", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/geometry/multipoint/expected.json b/test/integration/query-tests/geometry/multipoint/expected.json new file mode 100644 index 00000000000..e8b3cb18e93 --- /dev/null +++ b/test/integration/query-tests/geometry/multipoint/expected.json @@ -0,0 +1,19 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "MultiPoint", + "coordinates": [ + [ + 0, + 0 + ], + [ + 10.01953125, + 10.012129557908139 + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/geometry/multipoint/style.json b/test/integration/query-tests/geometry/multipoint/style.json new file mode 100644 index 00000000000..c89bce6d7fd --- /dev/null +++ b/test/integration/query-tests/geometry/multipoint/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiPoint", + "coordinates": [ + [ + 0, + 0 + ], + [ + 10, + 10 + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/geometry/multipolygon/expected.json b/test/integration/query-tests/geometry/multipolygon/expected.json new file mode 100644 index 00000000000..67919d68cae --- /dev/null +++ b/test/integration/query-tests/geometry/multipolygon/expected.json @@ -0,0 +1,59 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -30.0146484375, + 29.993002284551082 + ], + [ + 30.0146484375, + 29.993002284551082 + ], + [ + 30.0146484375, + -29.993002284551068 + ], + [ + -30.0146484375, + -29.993002284551068 + ], + [ + -30.0146484375, + 29.993002284551082 + ] + ] + ], + [ + [ + [ + -14.9853515625, + 14.987239525774243 + ], + [ + 14.9853515625, + 14.987239525774243 + ], + [ + 14.9853515625, + -14.987239525774243 + ], + [ + -14.9853515625, + -14.987239525774243 + ], + [ + -14.9853515625, + 14.987239525774243 + ] + ] + ] + ] + } + } +] diff --git a/test/integration/query-tests/geometry/multipolygon/style.json b/test/integration/query-tests/geometry/multipolygon/style.json new file mode 100644 index 00000000000..41494a6963b --- /dev/null +++ b/test/integration/query-tests/geometry/multipolygon/style.json @@ -0,0 +1,93 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "needs investigation" + }, + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -30, + 30 + ], + [ + 30, + 30 + ], + [ + 30, + -30 + ], + [ + -30, + -30 + ], + [ + -30, + 30 + ] + ] + ], + [ + [ + [ + -15, + 15 + ], + [ + 15, + 15 + ], + [ + 15, + -15 + ], + [ + -15, + -15 + ], + [ + -15, + 15 + ] + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "fill", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/geometry/point/expected.json b/test/integration/query-tests/geometry/point/expected.json new file mode 100644 index 00000000000..3e04c6ecc34 --- /dev/null +++ b/test/integration/query-tests/geometry/point/expected.json @@ -0,0 +1,13 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/geometry/point/style.json b/test/integration/query-tests/geometry/point/style.json new file mode 100644 index 00000000000..d6daba69808 --- /dev/null +++ b/test/integration/query-tests/geometry/point/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/geometry/polygon/expected.json b/test/integration/query-tests/geometry/polygon/expected.json new file mode 100644 index 00000000000..50f13f36705 --- /dev/null +++ b/test/integration/query-tests/geometry/polygon/expected.json @@ -0,0 +1,55 @@ +[ + { + "properties": {}, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -30.0146484375, + 29.993002284551082 + ], + [ + 30.0146484375, + 29.993002284551082 + ], + [ + 30.0146484375, + -29.993002284551068 + ], + [ + -30.0146484375, + -29.993002284551068 + ], + [ + -30.0146484375, + 29.993002284551082 + ] + ], + [ + [ + -14.9853515625, + 14.987239525774243 + ], + [ + -14.9853515625, + -14.987239525774243 + ], + [ + 14.9853515625, + -14.987239525774243 + ], + [ + 14.9853515625, + 14.987239525774243 + ], + [ + -14.9853515625, + 14.987239525774243 + ] + ] + ] + } + } +] diff --git a/test/integration/query-tests/geometry/polygon/style.json b/test/integration/query-tests/geometry/polygon/style.json new file mode 100644 index 00000000000..4e9ed7bb3b2 --- /dev/null +++ b/test/integration/query-tests/geometry/polygon/style.json @@ -0,0 +1,89 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "needs investigation" + }, + "width": 512, + "height": 512, + "debug": true, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 512, + 512 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -30, + 30 + ], + [ + 30, + 30 + ], + [ + 30, + -30 + ], + [ + -30, + -30 + ], + [ + -30, + 30 + ] + ], + [ + [ + -15, + 15 + ], + [ + 15, + 15 + ], + [ + 15, + -15 + ], + [ + -15, + -15 + ], + [ + -15, + 15 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "fill", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/inside-fractional/expected.json b/test/integration/query-tests/line-gap-width/inside-fractional/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/inside-fractional/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/inside-fractional/style.json b/test/integration/query-tests/line-gap-width/inside-fractional/style.json new file mode 100644 index 00000000000..b985748c420 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/inside-fractional/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 408, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 2, + "line-gap-width": 6 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/inside/expected.json b/test/integration/query-tests/line-gap-width/inside/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/inside/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/inside/style.json b/test/integration/query-tests/line-gap-width/inside/style.json new file mode 100644 index 00000000000..bbf63def909 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/inside/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 339, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 2, + "line-gap-width": 6 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/outside-fractional/expected.json b/test/integration/query-tests/line-gap-width/outside-fractional/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/outside-fractional/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/outside-fractional/style.json b/test/integration/query-tests/line-gap-width/outside-fractional/style.json new file mode 100644 index 00000000000..74363ede2fe --- /dev/null +++ b/test/integration/query-tests/line-gap-width/outside-fractional/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 405, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 2, + "line-gap-width": 6 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/outside/expected.json b/test/integration/query-tests/line-gap-width/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-gap-width/outside/style.json b/test/integration/query-tests/line-gap-width/outside/style.json new file mode 100644 index 00000000000..b0f6501d9c7 --- /dev/null +++ b/test/integration/query-tests/line-gap-width/outside/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 336, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 2, + "line-gap-width": 6 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/inside-fractional/expected.json b/test/integration/query-tests/line-offset/inside-fractional/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-offset/inside-fractional/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/inside-fractional/style.json b/test/integration/query-tests/line-offset/inside-fractional/style.json new file mode 100644 index 00000000000..0e993f19591 --- /dev/null +++ b/test/integration/query-tests/line-offset/inside-fractional/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 398, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-offset": 10, + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/inside/expected.json b/test/integration/query-tests/line-offset/inside/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-offset/inside/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/inside/style.json b/test/integration/query-tests/line-offset/inside/style.json new file mode 100644 index 00000000000..e14e14bfc7a --- /dev/null +++ b/test/integration/query-tests/line-offset/inside/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 329, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-offset": 10, + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/outside-fractional/expected.json b/test/integration/query-tests/line-offset/outside-fractional/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-offset/outside-fractional/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/outside-fractional/style.json b/test/integration/query-tests/line-offset/outside-fractional/style.json new file mode 100644 index 00000000000..f8c5b8581b9 --- /dev/null +++ b/test/integration/query-tests/line-offset/outside-fractional/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 475, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-offset": 10, + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/outside/expected.json b/test/integration/query-tests/line-offset/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-offset/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-offset/outside/style.json b/test/integration/query-tests/line-offset/outside/style.json new file mode 100644 index 00000000000..abc86be1c70 --- /dev/null +++ b/test/integration/query-tests/line-offset/outside/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 326, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-offset": 10, + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-translate-anchor/map/expected.json b/test/integration/query-tests/line-translate-anchor/map/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-translate-anchor/map/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-translate-anchor/map/style.json b/test/integration/query-tests/line-translate-anchor/map/style.json new file mode 100644 index 00000000000..cc377f80093 --- /dev/null +++ b/test/integration/query-tests/line-translate-anchor/map/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 427, + 110 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "bearing": 45, + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-translate": [ + 40, + 20 + ], + "line-translate-anchor": "map", + "line-width": 3 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-translate-anchor/viewport/expected.json b/test/integration/query-tests/line-translate-anchor/viewport/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-translate-anchor/viewport/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-translate-anchor/viewport/style.json b/test/integration/query-tests/line-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..ec01cb100fe --- /dev/null +++ b/test/integration/query-tests/line-translate-anchor/viewport/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 437, + 160 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "bearing": 45, + "zoom": 8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-translate": [ + 40, + 20 + ], + "line-translate-anchor": "viewport", + "line-width": 3 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-translate/inside/expected.json b/test/integration/query-tests/line-translate/inside/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-translate/inside/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-translate/inside/style.json b/test/integration/query-tests/line-translate/inside/style.json new file mode 100644 index 00000000000..dbf2ffe4ea1 --- /dev/null +++ b/test/integration/query-tests/line-translate/inside/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 379, + 270 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-translate": [ + 40, + 20 + ], + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-translate/outside/expected.json b/test/integration/query-tests/line-translate/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-translate/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-translate/outside/style.json b/test/integration/query-tests/line-translate/outside/style.json new file mode 100644 index 00000000000..215f21b55ac --- /dev/null +++ b/test/integration/query-tests/line-translate/outside/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 376, + 270 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-translate": [ + 40, + 20 + ], + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/inside/expected.json b/test/integration/query-tests/line-width-features-in/inside/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/inside/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/inside/style.json b/test/integration/query-tests/line-width-features-in/inside/style.json new file mode 100644 index 00000000000..c7149498cd8 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/inside/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 301, + 230 + ], + [ + 339, + 250 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/outside/expected.json b/test/integration/query-tests/line-width-features-in/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/outside/style.json b/test/integration/query-tests/line-width-features-in/outside/style.json new file mode 100644 index 00000000000..107593b4b81 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/outside/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 300, + 230 + ], + [ + 336, + 250 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/tilt-inside/expected.json b/test/integration/query-tests/line-width-features-in/tilt-inside/expected.json new file mode 100644 index 00000000000..61a9ddc8515 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/tilt-inside/expected.json @@ -0,0 +1,474 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + }, + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/tilt-inside/style.json b/test/integration/query-tests/line-width-features-in/tilt-inside/style.json new file mode 100644 index 00000000000..34c6e6d0551 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/tilt-inside/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 388, + 470 + ], + [ + 438, + 490 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "pitch": 50, + "zoom": 9, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/tilt-outside/expected.json b/test/integration/query-tests/line-width-features-in/tilt-outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/tilt-outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-width-features-in/tilt-outside/style.json b/test/integration/query-tests/line-width-features-in/tilt-outside/style.json new file mode 100644 index 00000000000..94bef6d8629 --- /dev/null +++ b/test/integration/query-tests/line-width-features-in/tilt-outside/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 390, + 470 + ], + [ + 438, + 490 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "pitch": 50, + "zoom": 9, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width/inside-fractional/expected.json b/test/integration/query-tests/line-width/inside-fractional/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-width/inside-fractional/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-width/inside-fractional/style.json b/test/integration/query-tests/line-width/inside-fractional/style.json new file mode 100644 index 00000000000..424dbd94360 --- /dev/null +++ b/test/integration/query-tests/line-width/inside-fractional/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 408, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width/inside/expected.json b/test/integration/query-tests/line-width/inside/expected.json new file mode 100644 index 00000000000..35aeedbb636 --- /dev/null +++ b/test/integration/query-tests/line-width/inside/expected.json @@ -0,0 +1,158 @@ +[ + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/line-width/inside/style.json b/test/integration/query-tests/line-width/inside/style.json new file mode 100644 index 00000000000..3396902b770 --- /dev/null +++ b/test/integration/query-tests/line-width/inside/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 339, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width/outside-fractional/expected.json b/test/integration/query-tests/line-width/outside-fractional/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-width/outside-fractional/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-width/outside-fractional/style.json b/test/integration/query-tests/line-width/outside-fractional/style.json new file mode 100644 index 00000000000..66bb07494fc --- /dev/null +++ b/test/integration/query-tests/line-width/outside-fractional/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 405, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.8, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/line-width/outside/expected.json b/test/integration/query-tests/line-width/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/line-width/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/line-width/outside/style.json b/test/integration/query-tests/line-width/outside/style.json new file mode 100644 index 00000000000..c0ccf733538 --- /dev/null +++ b/test/integration/query-tests/line-width/outside/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 500, + "height": 500, + "queryGeometry": [ + 336, + 250 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "counties", + "type": "line", + "source": "us-counties", + "source-layer": "counties", + "paint": { + "line-width": 10 + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/regressions/mapbox-gl-js#3534/expected.json b/test/integration/query-tests/regressions/mapbox-gl-js#3534/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/regressions/mapbox-gl-js#3534/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/regressions/mapbox-gl-js#3534/style.json b/test/integration/query-tests/regressions/mapbox-gl-js#3534/style.json new file mode 100644 index 00000000000..90a8154a7b3 --- /dev/null +++ b/test/integration/query-tests/regressions/mapbox-gl-js#3534/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6670" + }, + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 266, + 271 + ], + "layers": ["counties-symbol"] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties-fill", + "type": "fill", + "source": "us-counties", + "source-layer": "counties" + }, + { + "id": "counties-symbol", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} diff --git a/test/integration/query-tests/results.html.tmpl b/test/integration/query-tests/results.html.tmpl new file mode 100644 index 00000000000..b54ad331378 --- /dev/null +++ b/test/integration/query-tests/results.html.tmpl @@ -0,0 +1,26 @@ + + + + + + +{{#each results}} + + + + +{{/each}} +
ActualInfo
+

{{group}}/{{test}}

+
    +
  • diff: {{difference}}
  • +
  • zoom: {{zoom}}
  • +
  • center: {{center}}
  • +
  • bearing: {{bearing}}
  • +
  • width: {{width}}
  • +
  • height: {{height}}
  • +
+
diff --git a/test/integration/query-tests/symbol-features-in/fractional-outside/expected.json b/test/integration/query-tests/symbol-features-in/fractional-outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/fractional-outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/fractional-outside/style.json b/test/integration/query-tests/symbol-features-in/fractional-outside/style.json new file mode 100644 index 00000000000..c468138abdf --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/fractional-outside/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 260, + 260 + ], + [ + 279, + 283 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.85, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/hidden/expected.json b/test/integration/query-tests/symbol-features-in/hidden/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/hidden/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/hidden/style.json b/test/integration/query-tests/symbol-features-in/hidden/style.json new file mode 100644 index 00000000000..082e7538f49 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/hidden/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 220, + 210 + ], + [ + 280, + 241 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/inside/expected.json b/test/integration/query-tests/symbol-features-in/inside/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/inside/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/inside/style.json b/test/integration/query-tests/symbol-features-in/inside/style.json new file mode 100644 index 00000000000..32949c14489 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/inside/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 230, + 250 + ], + [ + 300, + 300 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/outside/expected.json b/test/integration/query-tests/symbol-features-in/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/outside/style.json b/test/integration/query-tests/symbol-features-in/outside/style.json new file mode 100644 index 00000000000..6f6cf26798b --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/outside/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 290, + 260 + ], + [ + 310, + 280 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/pitched-screen/expected.json b/test/integration/query-tests/symbol-features-in/pitched-screen/expected.json new file mode 100644 index 00000000000..92cdccbbd29 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/pitched-screen/expected.json @@ -0,0 +1,90 @@ +[ + { + "geometry": { + "type": "Point", + "coordinates": [ + 4.000053405761719, + 4.000061604283047 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 4.000053405761719, + 4.000061604283047 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 2.9999542236328125, + 2.999955856573024 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 2.9999542236328125, + 2.999955856573024 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 4.000053405761719, + 4.000061604283047 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 4.000053405761719, + 4.000061604283047 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 2.9999542236328125, + 2.999955856573024 + ] + }, + "type": "Feature", + "properties": {} + }, + { + "geometry": { + "type": "Point", + "coordinates": [ + 2.9999542236328125, + 2.999955856573024 + ] + }, + "type": "Feature", + "properties": {} + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/pitched-screen/style.json b/test/integration/query-tests/symbol-features-in/pitched-screen/style.json new file mode 100644 index 00000000000..108e8b84181 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/pitched-screen/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 500, + 500 + ] + ] + } + }, + "center": [ + 3, + 3 + ], + "zoom": 8.75, + "pitch": 60, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/121points.geojson" + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-image": "bicycle-12" + }, + "interactive": true + } + ] +} diff --git a/test/integration/query-tests/symbol-features-in/tilted-inside/expected.json b/test/integration/query-tests/symbol-features-in/tilted-inside/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/tilted-inside/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/tilted-inside/style.json b/test/integration/query-tests/symbol-features-in/tilted-inside/style.json new file mode 100644 index 00000000000..8cd8a66f905 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/tilted-inside/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/5056" + }, + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 230, + 250 + ], + [ + 310, + 300 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 9, + "pitch": 40, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/tilted-outside/expected.json b/test/integration/query-tests/symbol-features-in/tilted-outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/tilted-outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-features-in/tilted-outside/style.json b/test/integration/query-tests/symbol-features-in/tilted-outside/style.json new file mode 100644 index 00000000000..ad8f0abd2e6 --- /dev/null +++ b/test/integration/query-tests/symbol-features-in/tilted-outside/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + [ + 230, + 250 + ], + [ + 300, + 300 + ] + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 9, + "pitch": 40, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol-ignore-placement/inside/expected.json b/test/integration/query-tests/symbol-ignore-placement/inside/expected.json new file mode 100644 index 00000000000..d7156da40ee --- /dev/null +++ b/test/integration/query-tests/symbol-ignore-placement/inside/expected.json @@ -0,0 +1,338 @@ +[ + { + "properties": { + "id": "34025", + "name": "Monmouth County", + "pop_density": 3454.220015794825 + }, + "id": 47, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -73.8885498046875, + 40.49082625646807 + ], + [ + -73.89129638671875, + 40.310948849734984 + ], + [ + -73.8995361328125, + 40.2753348073247 + ], + [ + -73.9654541015625, + 40.120090380253316 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.0972900390625, + 40.1305910638018 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.61639404296875, + 40.1830701485253 + ], + [ + -74.59991455078125, + 40.18726672309202 + ], + [ + -74.59442138671875, + 40.180971763887186 + ], + [ + -74.56695556640625, + 40.18936491301898 + ], + [ + -74.54498291015625, + 40.21873275657032 + ], + [ + -74.4818115234375, + 40.243895066997766 + ], + [ + -74.49005126953125, + 40.254376603726485 + ], + [ + -74.46258544921875, + 40.25228042623783 + ], + [ + -74.3939208984375, + 40.27952566881291 + ], + [ + -74.39666748046875, + 40.29000168607598 + ], + [ + -74.24835205078125, + 40.40722213305287 + ], + [ + -74.24835205078125, + 40.4323142901375 + ], + [ + -74.23736572265625, + 40.44485685896177 + ], + [ + -74.2291259765625, + 40.44485685896177 + ], + [ + -74.2236328125, + 40.45321727150386 + ], + [ + -74.2291259765625, + 40.47829226856015 + ], + [ + -73.95172119140625, + 40.52632651074401 + ], + [ + -73.8885498046875, + 40.49082625646807 + ] + ] + ] + } + }, + { + "properties": { + "id": "34029", + "name": "Ocean County", + "pop_density": 2310.250993696356 + }, + "id": 49, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.26483154296875, + 40.168380093142446 + ], + [ + -74.25933837890625, + 40.1620833816462 + ], + [ + -74.2620849609375, + 40.14948820651523 + ], + [ + -74.25384521484375, + 40.14738878354049 + ], + [ + -74.24285888671875, + 40.1305910638018 + ], + [ + -74.24560546875, + 40.117990048904744 + ], + [ + -74.23187255859375, + 40.109588074741396 + ], + [ + -74.20440673828125, + 40.11378919157525 + ], + [ + -74.16046142578125, + 40.107487419012415 + ], + [ + -74.1522216796875, + 40.099084147368444 + ], + [ + -74.1082763671875, + 40.13899044275823 + ], + [ + -74.09454345703125, + 40.109588074741396 + ], + [ + -74.07257080078125, + 40.09067983779909 + ], + [ + -74.0478515625, + 40.10538669840983 + ], + [ + -73.9654541015625, + 40.099084147368444 + ], + [ + -74.00115966796875, + 39.97712009843963 + ], + [ + -74.03411865234375, + 39.77054750039528 + ], + [ + -74.04510498046875, + 39.73676229957945 + ], + [ + -74.0972900390625, + 39.650112101863726 + ], + [ + -74.234619140625, + 39.47648555419738 + ], + [ + -74.29779052734375, + 39.47648555419738 + ], + [ + -74.31427001953125, + 39.50192146626986 + ], + [ + -74.3280029296875, + 39.508278990341125 + ], + [ + -74.3829345703125, + 39.499802162332884 + ], + [ + -74.4049072265625, + 39.54005788576376 + ], + [ + -74.41864013671875, + 39.55064761909321 + ], + [ + -74.4158935546875, + 39.563353165829284 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.55322265625, + 40.08017299133499 + ], + [ + -74.52850341796875, + 40.09067983779909 + ], + [ + -74.40765380859375, + 40.172577576321686 + ], + [ + -74.26483154296875, + 40.168380093142446 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol-ignore-placement/inside/style.json b/test/integration/query-tests/symbol-ignore-placement/inside/style.json new file mode 100644 index 00000000000..00a45865abd --- /dev/null +++ b/test/integration/query-tests/symbol-ignore-placement/inside/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 345, + 205 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-ignore-placement": true, + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol/filtered/expected.json b/test/integration/query-tests/symbol/filtered/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/symbol/filtered/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/filtered/style.json b/test/integration/query-tests/symbol/filtered/style.json new file mode 100644 index 00000000000..6ee629e3e8f --- /dev/null +++ b/test/integration/query-tests/symbol/filtered/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 366, + 311 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 8, + "bearing": 45, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "filter": ["==", "name", "Burlington County"], + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} diff --git a/test/integration/query-tests/symbol/fractional-outside/expected.json b/test/integration/query-tests/symbol/fractional-outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol/fractional-outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/fractional-outside/style.json b/test/integration/query-tests/symbol/fractional-outside/style.json new file mode 100644 index 00000000000..1f1b1b80f50 --- /dev/null +++ b/test/integration/query-tests/symbol/fractional-outside/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 279, + 283 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7.85, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol/hidden/expected.json b/test/integration/query-tests/symbol/hidden/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol/hidden/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/hidden/style.json b/test/integration/query-tests/symbol/hidden/style.json new file mode 100644 index 00000000000..534d21a1bc4 --- /dev/null +++ b/test/integration/query-tests/symbol/hidden/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 180, + 400 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol/inside/expected.json b/test/integration/query-tests/symbol/inside/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/symbol/inside/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/inside/style.json b/test/integration/query-tests/symbol/inside/style.json new file mode 100644 index 00000000000..b7fd69dbca0 --- /dev/null +++ b/test/integration/query-tests/symbol/inside/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 266, + 271 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol/outside/expected.json b/test/integration/query-tests/symbol/outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol/outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/outside/style.json b/test/integration/query-tests/symbol/outside/style.json new file mode 100644 index 00000000000..51c39169177 --- /dev/null +++ b/test/integration/query-tests/symbol/outside/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 296, + 271 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 7, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol/panned-after-insert/expected.json b/test/integration/query-tests/symbol/panned-after-insert/expected.json new file mode 100644 index 00000000000..493909236ad --- /dev/null +++ b/test/integration/query-tests/symbol/panned-after-insert/expected.json @@ -0,0 +1,5326 @@ +[ + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + } +] diff --git a/test/integration/query-tests/symbol/panned-after-insert/style.json b/test/integration/query-tests/symbol/panned-after-insert/style.json new file mode 100644 index 00000000000..3ad5c090875 --- /dev/null +++ b/test/integration/query-tests/symbol/panned-after-insert/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 256, + "height": 256, + "operations": [ + [ + "setCenter", + [ + 1, + 1 + ] + ] + ], + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 256, + 256 + ] + ], + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3346" + } + } + }, + "center": [ + 0, + 0 + ], + "zoom": 3, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/121points.geojson" + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": ".", + "text-size": 6, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} diff --git a/test/integration/query-tests/symbol/rotated-after-insert/expected.json b/test/integration/query-tests/symbol/rotated-after-insert/expected.json new file mode 100644 index 00000000000..493909236ad --- /dev/null +++ b/test/integration/query-tests/symbol/rotated-after-insert/expected.json @@ -0,0 +1,5326 @@ +[ + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + -0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 0.999755859375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 1.99951171875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 2.999267578125, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 3.9990234375, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.997922089609844 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -4.00126030584525 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -1.9991059831233144 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + -0.99970513084196 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 0.9997051308419742 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 1.9991059831233287 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 2.9978987411030573 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.001260305845264 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + }, + { + "geometry": { + "coordinates": [ + 4.998779296875, + 4.997922089609858 + ], + "type": "Point" + }, + "properties": {}, + "type": "Feature" + } +] diff --git a/test/integration/query-tests/symbol/rotated-after-insert/style.json b/test/integration/query-tests/symbol/rotated-after-insert/style.json new file mode 100644 index 00000000000..cfcf7852258 --- /dev/null +++ b/test/integration/query-tests/symbol/rotated-after-insert/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 256, + "height": 256, + "operations": [ + [ + "setBearing", + 45 + ] + ], + "queryGeometry": [ + [ + 0, + 0 + ], + [ + 256, + 256 + ] + ], + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3346" + } + } + }, + "center": [ + 0, + 0 + ], + "zoom": 3, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/121points.geojson" + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": ".", + "text-size": 6, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} diff --git a/test/integration/query-tests/symbol/rotated-inside/expected.json b/test/integration/query-tests/symbol/rotated-inside/expected.json new file mode 100644 index 00000000000..df01aa9286c --- /dev/null +++ b/test/integration/query-tests/symbol/rotated-inside/expected.json @@ -0,0 +1,318 @@ +[ + { + "properties": { + "id": "34005", + "name": "Burlington County", + "pop_density": 2007.2920458152796 + }, + "id": 33, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -74.52850341796875, + 39.56970506644248 + ], + [ + -74.54498291015625, + 39.58029027440864 + ], + [ + -74.542236328125, + 39.586640623314594 + ], + [ + -74.55322265625, + 39.59933957529532 + ], + [ + -74.57794189453125, + 39.59933957529532 + ], + [ + -74.58892822265625, + 39.61203619933693 + ], + [ + -74.6246337890625, + 39.62684598486689 + ], + [ + -74.63287353515625, + 39.62049932196811 + ], + [ + -74.6356201171875, + 39.62896140981414 + ], + [ + -74.6575927734375, + 39.62896140981414 + ], + [ + -74.66033935546875, + 39.66914219401812 + ], + [ + -74.6685791015625, + 39.68393975392732 + ], + [ + -74.77294921875, + 39.751545363937566 + ], + [ + -74.80865478515625, + 39.785323314592574 + ], + [ + -74.8388671875, + 39.79165483525341 + ], + [ + -74.8773193359375, + 39.78321267821704 + ], + [ + -74.89654541015625, + 39.785323314592574 + ], + [ + -74.90478515625, + 39.79165483525341 + ], + [ + -74.9322509765625, + 39.88866516883712 + ], + [ + -74.95147705078125, + 39.8992015115692 + ], + [ + -74.9652099609375, + 39.92026933763398 + ], + [ + -74.98443603515625, + 39.92869465373238 + ], + [ + -74.9761962890625, + 39.9413306837869 + ], + [ + -75.01739501953125, + 39.947647823922495 + ], + [ + -75.0146484375, + 39.95817509460008 + ], + [ + -75.0201416015625, + 39.96870074491696 + ], + [ + -75.01190185546875, + 39.981329386272165 + ], + [ + -75.0201416015625, + 39.98974718404571 + ], + [ + -75.03387451171875, + 39.99185147142347 + ], + [ + -75.03662109375, + 39.9981639445858 + ], + [ + -75.06134033203125, + 39.99185147142347 + ], + [ + -75.047607421875, + 40.01078714046551 + ], + [ + -75.0146484375, + 40.02130468739708 + ], + [ + -74.96795654296875, + 40.05284760182397 + ], + [ + -74.92950439453125, + 40.071766346626134 + ], + [ + -74.90753173828125, + 40.071766346626134 + ], + [ + -74.86358642578125, + 40.08437592451517 + ], + [ + -74.8553466796875, + 40.09488212232117 + ], + [ + -74.8388671875, + 40.10118506258701 + ], + [ + -74.82513427734375, + 40.128491056854074 + ], + [ + -74.78668212890625, + 40.12219064672337 + ], + [ + -74.761962890625, + 40.13479088304851 + ], + [ + -74.74273681640625, + 40.1368906953459 + ], + [ + -74.72076416015625, + 40.14948820651523 + ], + [ + -74.70428466796875, + 40.17047886718112 + ], + [ + -74.7125244140625, + 40.168380093142446 + ], + [ + -74.7125244140625, + 40.180971763887186 + ], + [ + -74.70428466796875, + 40.18516846826054 + ], + [ + -74.67681884765625, + 40.174676220563384 + ], + [ + -74.6795654296875, + 40.16628125420655 + ], + [ + -74.6630859375, + 40.16628125420655 + ], + [ + -74.6356201171875, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14948820651523 + ], + [ + -74.6246337890625, + 40.14318974292439 + ], + [ + -74.6026611328125, + 40.1368906953459 + ], + [ + -74.58892822265625, + 40.13899044275823 + ], + [ + -74.39117431640625, + 39.77476948529548 + ], + [ + -74.39117431640625, + 39.59722324495564 + ], + [ + -74.40216064453125, + 39.57393934359189 + ], + [ + -74.42138671875, + 39.56970506644248 + ], + [ + -74.41864013671875, + 39.55911824217185 + ], + [ + -74.44061279296875, + 39.55488305992401 + ], + [ + -74.4378662109375, + 39.54217596171196 + ], + [ + -74.44610595703125, + 39.546411919686705 + ], + [ + -74.443359375, + 39.55700068337126 + ], + [ + -74.454345703125, + 39.55911824217185 + ], + [ + -74.45709228515625, + 39.54852980171145 + ], + [ + -74.46533203125, + 39.55700068337126 + ], + [ + -74.476318359375, + 39.552765371831015 + ], + [ + -74.48455810546875, + 39.55911824217185 + ], + [ + -74.49554443359375, + 39.55700068337126 + ], + [ + -74.5037841796875, + 39.56970506644248 + ], + [ + -74.51202392578125, + 39.56970506644248 + ], + [ + -74.51751708984375, + 39.57393934359189 + ], + [ + -74.52850341796875, + 39.56970506644248 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/rotated-inside/style.json b/test/integration/query-tests/symbol/rotated-inside/style.json new file mode 100644 index 00000000000..f9af284a367 --- /dev/null +++ b/test/integration/query-tests/symbol/rotated-inside/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 366, + 311 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 8, + "bearing": 45, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/symbol/rotated-outside/expected.json b/test/integration/query-tests/symbol/rotated-outside/expected.json new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/test/integration/query-tests/symbol/rotated-outside/expected.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/test/integration/query-tests/symbol/rotated-outside/style.json b/test/integration/query-tests/symbol/rotated-outside/style.json new file mode 100644 index 00000000000..41359851cc3 --- /dev/null +++ b/test/integration/query-tests/symbol/rotated-outside/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "collisionDebug": true, + "width": 500, + "height": 500, + "queryGeometry": [ + 366, + 321 + ] + } + }, + "center": [ + -74.522, + 39.92 + ], + "zoom": 8, + "bearing": 45, + "sources": { + "us-counties": { + "type": "vector", + "maxzoom": 7, + "minzoom": 7, + "tiles": [ + "local://tiles/counties-{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "counties", + "type": "symbol", + "source": "us-counties", + "source-layer": "counties", + "layout": { + "text-field": "{name}", + "text-size": 11, + "symbol-spacing": 60, + "text-max-angle": 1000, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "line" + }, + "interactive": true + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/world-wrapping/box/expected.json b/test/integration/query-tests/world-wrapping/box/expected.json new file mode 100644 index 00000000000..31a50bad7c7 --- /dev/null +++ b/test/integration/query-tests/world-wrapping/box/expected.json @@ -0,0 +1,95 @@ +[ + { + "properties": { + "class": "shadow", + "level": 56 + }, + "id": 958, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -69.2578125, + -33.87041555094182 + ], + [ + -69.609375, + -33.57801474614399 + ], + [ + -69.43359375, + -33.13755119234615 + ], + [ + -69.2578125, + -33.87041555094182 + ] + ] + ] + } + }, + { + "properties": { + "class": "shadow", + "level": 56 + }, + "id": 957, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -65.390625, + -27.059125784374054 + ], + [ + -65.91796875, + -27.527758206861897 + ], + [ + -65.56640625, + -26.74561038219901 + ], + [ + -65.390625, + -27.059125784374054 + ] + ] + ] + } + }, + { + "properties": { + "class": "shadow", + "level": 56 + }, + "id": 956, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -64.6875, + -23.563987128451217 + ], + [ + -65.0390625, + -23.72501173595178 + ], + [ + -64.86328125, + -23.07973176244988 + ], + [ + -64.6875, + -23.563987128451217 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/world-wrapping/box/style.json b/test/integration/query-tests/world-wrapping/box/style.json new file mode 100644 index 00000000000..4dbe82dfa52 --- /dev/null +++ b/test/integration/query-tests/world-wrapping/box/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "skipped": { + "native": "needs issue" + }, + "width": 2000, + "height": 500, + "pixelRatio": 0.25, + "queryGeometry": [ + [ + 500, + 280 + ], + [ + 1700, + 400 + ] + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "countries", + "type": "circle", + "source": "mapbox", + "source-layer": "hillshade", + "filter": [ + "==", + "level", + 56 + ], + "paint": { + "circle-radius": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/query-tests/world-wrapping/point/expected.json b/test/integration/query-tests/world-wrapping/point/expected.json new file mode 100644 index 00000000000..4f159ff53fa --- /dev/null +++ b/test/integration/query-tests/world-wrapping/point/expected.json @@ -0,0 +1,33 @@ +[ + { + "properties": { + "class": "shadow", + "level": 56 + }, + "id": 967, + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 121.640625, + 23.644524198573677 + ], + [ + 121.46484375, + 24.287026865376433 + ], + [ + 121.81640625, + 24.287026865376433 + ], + [ + 121.640625, + 23.644524198573677 + ] + ] + ] + } + } +] \ No newline at end of file diff --git a/test/integration/query-tests/world-wrapping/point/style.json b/test/integration/query-tests/world-wrapping/point/style.json new file mode 100644 index 00000000000..cd140fbc136 --- /dev/null +++ b/test/integration/query-tests/world-wrapping/point/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "skipped": { + "native": "needs issue" + }, + "debug": true, + "width": 1000, + "height": 250, + "pixelRatio": 0.5, + "queryGeometry": [ + 160, + 90 + ] + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "countries", + "type": "circle", + "source": "mapbox", + "source-layer": "hillshade", + "filter": [ + "==", + "level", + 56 + ], + "paint": { + "circle-radius": 15 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-color/default/expected.png b/test/integration/render-tests/background-color/default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/background-color/default/expected.png differ diff --git a/test/integration/render-tests/background-color/default/style.json b/test/integration/render-tests/background-color/default/style.json new file mode 100644 index 00000000000..deafaa3c81f --- /dev/null +++ b/test/integration/render-tests/background-color/default/style.json @@ -0,0 +1,16 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-color/function/expected.png b/test/integration/render-tests/background-color/function/expected.png new file mode 100644 index 00000000000..cc46431ca9e Binary files /dev/null and b/test/integration/render-tests/background-color/function/expected.png differ diff --git a/test/integration/render-tests/background-color/function/style.json b/test/integration/render-tests/background-color/function/style.json new file mode 100644 index 00000000000..5c76b5152f7 --- /dev/null +++ b/test/integration/render-tests/background-color/function/style.json @@ -0,0 +1,30 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-color/literal/expected.png b/test/integration/render-tests/background-color/literal/expected.png new file mode 100644 index 00000000000..3a2d7006298 Binary files /dev/null and b/test/integration/render-tests/background-color/literal/expected.png differ diff --git a/test/integration/render-tests/background-color/literal/style.json b/test/integration/render-tests/background-color/literal/style.json new file mode 100644 index 00000000000..c00cd11f7a3 --- /dev/null +++ b/test/integration/render-tests/background-color/literal/style.json @@ -0,0 +1,19 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-opacity/color/expected.png b/test/integration/render-tests/background-opacity/color/expected.png new file mode 100644 index 00000000000..2f34aeea6d8 Binary files /dev/null and b/test/integration/render-tests/background-opacity/color/expected.png differ diff --git a/test/integration/render-tests/background-opacity/color/style.json b/test/integration/render-tests/background-opacity/color/style.json new file mode 100644 index 00000000000..bc8bff1c88b --- /dev/null +++ b/test/integration/render-tests/background-opacity/color/style.json @@ -0,0 +1,21 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-opacity": 0.5, + "background-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-opacity/image/expected.png b/test/integration/render-tests/background-opacity/image/expected.png new file mode 100644 index 00000000000..8b1d3cd4a79 Binary files /dev/null and b/test/integration/render-tests/background-opacity/image/expected.png differ diff --git a/test/integration/render-tests/background-opacity/image/style.json b/test/integration/render-tests/background-opacity/image/style.json new file mode 100644 index 00000000000..99163fc1cc2 --- /dev/null +++ b/test/integration/render-tests/background-opacity/image/style.json @@ -0,0 +1,21 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-opacity": 0.5, + "background-pattern": "wetland-17" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-opacity/overlay/expected.png b/test/integration/render-tests/background-opacity/overlay/expected.png new file mode 100644 index 00000000000..f2b60e088de Binary files /dev/null and b/test/integration/render-tests/background-opacity/overlay/expected.png differ diff --git a/test/integration/render-tests/background-opacity/overlay/style.json b/test/integration/render-tests/background-opacity/overlay/style.json new file mode 100644 index 00000000000..f6795900e7c --- /dev/null +++ b/test/integration/render-tests/background-opacity/overlay/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 0, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster-none", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + }, + { + "id": "background_overlay", + "type": "background", + "paint": { + "background-opacity": 0.5, + "background-color": "green" + } + } + ] +} diff --git a/test/integration/render-tests/background-pattern/@2x/expected.png b/test/integration/render-tests/background-pattern/@2x/expected.png new file mode 100644 index 00000000000..924281576da Binary files /dev/null and b/test/integration/render-tests/background-pattern/@2x/expected.png differ diff --git a/test/integration/render-tests/background-pattern/@2x/style.json b/test/integration/render-tests/background-pattern/@2x/style.json new file mode 100644 index 00000000000..ef25cf6fc0b --- /dev/null +++ b/test/integration/render-tests/background-pattern/@2x/style.json @@ -0,0 +1,21 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "pixelRatio": 2 + } + }, + "sources": {}, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "school_striped" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-pattern/literal/expected.png b/test/integration/render-tests/background-pattern/literal/expected.png new file mode 100644 index 00000000000..8865307daae Binary files /dev/null and b/test/integration/render-tests/background-pattern/literal/expected.png differ diff --git a/test/integration/render-tests/background-pattern/literal/style.json b/test/integration/render-tests/background-pattern/literal/style.json new file mode 100644 index 00000000000..960e7dd8eb3 --- /dev/null +++ b/test/integration/render-tests/background-pattern/literal/style.json @@ -0,0 +1,20 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "school_striped" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-pattern/pitch/expected.png b/test/integration/render-tests/background-pattern/pitch/expected.png new file mode 100644 index 00000000000..362bfe60464 Binary files /dev/null and b/test/integration/render-tests/background-pattern/pitch/expected.png differ diff --git a/test/integration/render-tests/background-pattern/pitch/style.json b/test/integration/render-tests/background-pattern/pitch/style.json new file mode 100644 index 00000000000..199eca6e424 --- /dev/null +++ b/test/integration/render-tests/background-pattern/pitch/style.json @@ -0,0 +1,22 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "zoom": 2, + "pitch": 40, + "sources": {}, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "cemetery_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-pattern/rotated/expected.png b/test/integration/render-tests/background-pattern/rotated/expected.png new file mode 100644 index 00000000000..422ef9f3c2d Binary files /dev/null and b/test/integration/render-tests/background-pattern/rotated/expected.png differ diff --git a/test/integration/render-tests/background-pattern/rotated/style.json b/test/integration/render-tests/background-pattern/rotated/style.json new file mode 100644 index 00000000000..b6798928182 --- /dev/null +++ b/test/integration/render-tests/background-pattern/rotated/style.json @@ -0,0 +1,21 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": {}, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "cemetery_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-pattern/zoomed/expected.png b/test/integration/render-tests/background-pattern/zoomed/expected.png new file mode 100644 index 00000000000..55a8e763134 Binary files /dev/null and b/test/integration/render-tests/background-pattern/zoomed/expected.png differ diff --git a/test/integration/render-tests/background-pattern/zoomed/style.json b/test/integration/render-tests/background-pattern/zoomed/style.json new file mode 100644 index 00000000000..569ebfa32ff --- /dev/null +++ b/test/integration/render-tests/background-pattern/zoomed/style.json @@ -0,0 +1,21 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "zoom": 0.5, + "sources": {}, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "cemetery_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-visibility/none/expected.png b/test/integration/render-tests/background-visibility/none/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/background-visibility/none/expected.png differ diff --git a/test/integration/render-tests/background-visibility/none/style.json b/test/integration/render-tests/background-visibility/none/style.json new file mode 100644 index 00000000000..ad5a8bc716b --- /dev/null +++ b/test/integration/render-tests/background-visibility/none/style.json @@ -0,0 +1,19 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/background-visibility/visible/expected.png b/test/integration/render-tests/background-visibility/visible/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/background-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/background-visibility/visible/style.json b/test/integration/render-tests/background-visibility/visible/style.json new file mode 100644 index 00000000000..cd1dd089094 --- /dev/null +++ b/test/integration/render-tests/background-visibility/visible/style.json @@ -0,0 +1,19 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-blur/default/expected.png b/test/integration/render-tests/circle-blur/default/expected.png new file mode 100644 index 00000000000..c863bbf1798 Binary files /dev/null and b/test/integration/render-tests/circle-blur/default/expected.png differ diff --git a/test/integration/render-tests/circle-blur/default/style.json b/test/integration/render-tests/circle-blur/default/style.json new file mode 100644 index 00000000000..90431f11bd4 --- /dev/null +++ b/test/integration/render-tests/circle-blur/default/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-blur/function/expected.png b/test/integration/render-tests/circle-blur/function/expected.png new file mode 100644 index 00000000000..2936e2202e2 Binary files /dev/null and b/test/integration/render-tests/circle-blur/function/expected.png differ diff --git a/test/integration/render-tests/circle-blur/function/style.json b/test/integration/render-tests/circle-blur/function/style.json new file mode 100644 index 00000000000..b2539c9e83e --- /dev/null +++ b/test/integration/render-tests/circle-blur/function/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "#000", + "circle-blur": { + "stops": [ + [ + 16, + 15 + ], + [ + 17, + 20 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-blur/literal-stroke/expected.png b/test/integration/render-tests/circle-blur/literal-stroke/expected.png new file mode 100644 index 00000000000..4fb1a10ead8 Binary files /dev/null and b/test/integration/render-tests/circle-blur/literal-stroke/expected.png differ diff --git a/test/integration/render-tests/circle-blur/literal-stroke/style.json b/test/integration/render-tests/circle-blur/literal-stroke/style.json new file mode 100644 index 00000000000..02462289547 --- /dev/null +++ b/test/integration/render-tests/circle-blur/literal-stroke/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5, + "circle-stroke-color": "blue", + "circle-blur": 0.5 + } + } + ] +} diff --git a/test/integration/render-tests/circle-blur/literal/expected.png b/test/integration/render-tests/circle-blur/literal/expected.png new file mode 100644 index 00000000000..b5284abdb7f Binary files /dev/null and b/test/integration/render-tests/circle-blur/literal/expected.png differ diff --git a/test/integration/render-tests/circle-blur/literal/style.json b/test/integration/render-tests/circle-blur/literal/style.json new file mode 100644 index 00000000000..0a48a6292ba --- /dev/null +++ b/test/integration/render-tests/circle-blur/literal/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "#000", + "circle-blur": 5 + } + } + ] +} diff --git a/test/integration/render-tests/circle-blur/property-function/expected.png b/test/integration/render-tests/circle-blur/property-function/expected.png new file mode 100644 index 00000000000..2f74b65f282 Binary files /dev/null and b/test/integration/render-tests/circle-blur/property-function/expected.png differ diff --git a/test/integration/render-tests/circle-blur/property-function/style.json b/test/integration/render-tests/circle-blur/property-function/style.json new file mode 100644 index 00000000000..b729dd2f282 --- /dev/null +++ b/test/integration/render-tests/circle-blur/property-function/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-blur": { + "stops": [ + [ + 0, + 0 + ], + [ + 50, + 10 + ] + ], + "property": "localrank" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-blur/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-blur/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..dddf34c4182 Binary files /dev/null and b/test/integration/render-tests/circle-blur/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-blur/zoom-and-property-function/style.json b/test/integration/render-tests/circle-blur/zoom-and-property-function/style.json new file mode 100644 index 00000000000..c5c9967d0c0 --- /dev/null +++ b/test/integration/render-tests/circle-blur/zoom-and-property-function/style.json @@ -0,0 +1,75 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-blur": { + "stops": [ + [ + { + "zoom": 13.9, + "value": 0 + }, + 0 + ], + [ + { + "zoom": 13.9, + "value": 50 + }, + 10 + ], + [ + { + "zoom": 14.2, + "value": 0 + }, + 5 + ], + [ + { + "zoom": 14.2, + "value": 50 + }, + 15 + ] + ], + "property": "localrank" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-color/default/expected.png b/test/integration/render-tests/circle-color/default/expected.png new file mode 100644 index 00000000000..c863bbf1798 Binary files /dev/null and b/test/integration/render-tests/circle-color/default/expected.png differ diff --git a/test/integration/render-tests/circle-color/default/style.json b/test/integration/render-tests/circle-color/default/style.json new file mode 100644 index 00000000000..f370aa2393a --- /dev/null +++ b/test/integration/render-tests/circle-color/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-color/function/expected.png b/test/integration/render-tests/circle-color/function/expected.png new file mode 100644 index 00000000000..5c1e589381d Binary files /dev/null and b/test/integration/render-tests/circle-color/function/expected.png differ diff --git a/test/integration/render-tests/circle-color/function/style.json b/test/integration/render-tests/circle-color/function/style.json new file mode 100644 index 00000000000..7d6dad247e9 --- /dev/null +++ b/test/integration/render-tests/circle-color/function/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": { + "stops": [ + [ + 16, + "green" + ], + [ + 17, + "blue" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-color/identity-property-function/expected.png b/test/integration/render-tests/circle-color/identity-property-function/expected.png new file mode 100644 index 00000000000..253d5bf782a Binary files /dev/null and b/test/integration/render-tests/circle-color/identity-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-color/identity-property-function/style.json b/test/integration/render-tests/circle-color/identity-property-function/style.json new file mode 100644 index 00000000000..038bf15ec9e --- /dev/null +++ b/test/integration/render-tests/circle-color/identity-property-function/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6518" + } + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "color": "red" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "circle", + "type": "circle", + "source": "mapbox", + "paint": { + "circle-radius": 20, + "circle-color": { + "type": "identity", + "property": "color" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-color/literal/expected.png b/test/integration/render-tests/circle-color/literal/expected.png new file mode 100644 index 00000000000..2e499c367f5 Binary files /dev/null and b/test/integration/render-tests/circle-color/literal/expected.png differ diff --git a/test/integration/render-tests/circle-color/literal/style.json b/test/integration/render-tests/circle-color/literal/style.json new file mode 100644 index 00000000000..8dd356c65dd --- /dev/null +++ b/test/integration/render-tests/circle-color/literal/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-color/property-function/expected.png b/test/integration/render-tests/circle-color/property-function/expected.png new file mode 100644 index 00000000000..9b27bd6861d Binary files /dev/null and b/test/integration/render-tests/circle-color/property-function/expected.png differ diff --git a/test/integration/render-tests/circle-color/property-function/style.json b/test/integration/render-tests/circle-color/property-function/style.json new file mode 100644 index 00000000000..945ab15089d --- /dev/null +++ b/test/integration/render-tests/circle-color/property-function/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": { + "stops": [ + [ + 0, + "red" + ], + [ + 50, + "green" + ] + ], + "property": "localrank" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-color/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-color/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..fd27c86bb1f Binary files /dev/null and b/test/integration/render-tests/circle-color/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-color/zoom-and-property-function/style.json b/test/integration/render-tests/circle-color/zoom-and-property-function/style.json new file mode 100644 index 00000000000..1ff53d22f36 --- /dev/null +++ b/test/integration/render-tests/circle-color/zoom-and-property-function/style.json @@ -0,0 +1,77 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": { + "base": 1, + "stops": [ + [ + { + "zoom": 13.9, + "value": 0 + }, + "red" + ], + [ + { + "zoom": 13.9, + "value": 50 + }, + "yellow" + ], + [ + { + "zoom": 14.2, + "value": 0 + }, + "blue" + ], + [ + { + "zoom": 14.2, + "value": 50 + }, + "green" + ] + ], + "property": "localrank" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-geometry/linestring/expected.png b/test/integration/render-tests/circle-geometry/linestring/expected.png new file mode 100644 index 00000000000..b87ddbe5f48 Binary files /dev/null and b/test/integration/render-tests/circle-geometry/linestring/expected.png differ diff --git a/test/integration/render-tests/circle-geometry/linestring/style.json b/test/integration/render-tests/circle-geometry/linestring/style.json new file mode 100644 index 00000000000..c4a74b6e990 --- /dev/null +++ b/test/integration/render-tests/circle-geometry/linestring/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 0, + -25 + ], + [ + 0, + 25 + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "circle", + "source": "geometry" + } + ] +} diff --git a/test/integration/render-tests/circle-geometry/multilinestring/expected.png b/test/integration/render-tests/circle-geometry/multilinestring/expected.png new file mode 100644 index 00000000000..707106ed8c6 Binary files /dev/null and b/test/integration/render-tests/circle-geometry/multilinestring/expected.png differ diff --git a/test/integration/render-tests/circle-geometry/multilinestring/style.json b/test/integration/render-tests/circle-geometry/multilinestring/style.json new file mode 100644 index 00000000000..4daa6e48d90 --- /dev/null +++ b/test/integration/render-tests/circle-geometry/multilinestring/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + 25, + -25 + ], + [ + 25, + 25 + ] + ], + [ + [ + -25, + -25 + ], + [ + -25, + 25 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "circle", + "source": "geometry" + } + ] +} diff --git a/test/integration/render-tests/circle-geometry/multipoint/expected.png b/test/integration/render-tests/circle-geometry/multipoint/expected.png new file mode 100644 index 00000000000..e85997174c2 Binary files /dev/null and b/test/integration/render-tests/circle-geometry/multipoint/expected.png differ diff --git a/test/integration/render-tests/circle-geometry/multipoint/style.json b/test/integration/render-tests/circle-geometry/multipoint/style.json new file mode 100644 index 00000000000..832e48a0c8c --- /dev/null +++ b/test/integration/render-tests/circle-geometry/multipoint/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [ [50.0, 0.0], [-50.0, 0.0] ] + } + }] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "circle", + "source": "geometry" + } + ] +} diff --git a/test/integration/render-tests/circle-geometry/multipolygon/expected.png b/test/integration/render-tests/circle-geometry/multipolygon/expected.png new file mode 100644 index 00000000000..028a2fef739 Binary files /dev/null and b/test/integration/render-tests/circle-geometry/multipolygon/expected.png differ diff --git a/test/integration/render-tests/circle-geometry/multipolygon/style.json b/test/integration/render-tests/circle-geometry/multipolygon/style.json new file mode 100644 index 00000000000..2e0b56cbd81 --- /dev/null +++ b/test/integration/render-tests/circle-geometry/multipolygon/style.json @@ -0,0 +1,91 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -25, + -25 + ], + [ + -25, + 25 + ], + [ + -75, + 25 + ], + [ + -75, + -25 + ], + [ + -25, + -25 + ] + ] + ], + [ + [ + [ + 25, + -25 + ], + [ + 25, + 25 + ], + [ + 75, + 25 + ], + [ + 75, + -25 + ], + [ + 25, + -25 + ] + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "circle", + "source": "geometry" + } + ] +} diff --git a/test/integration/render-tests/circle-geometry/point/expected.png b/test/integration/render-tests/circle-geometry/point/expected.png new file mode 100644 index 00000000000..5cf63e0e5e7 Binary files /dev/null and b/test/integration/render-tests/circle-geometry/point/expected.png differ diff --git a/test/integration/render-tests/circle-geometry/point/style.json b/test/integration/render-tests/circle-geometry/point/style.json new file mode 100644 index 00000000000..ed2c63009be --- /dev/null +++ b/test/integration/render-tests/circle-geometry/point/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [0, 0] + } + }] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "circle", + "source": "geometry" + } + ] +} diff --git a/test/integration/render-tests/circle-geometry/polygon/expected.png b/test/integration/render-tests/circle-geometry/polygon/expected.png new file mode 100644 index 00000000000..37b266e9a09 Binary files /dev/null and b/test/integration/render-tests/circle-geometry/polygon/expected.png differ diff --git a/test/integration/render-tests/circle-geometry/polygon/style.json b/test/integration/render-tests/circle-geometry/polygon/style.json new file mode 100644 index 00000000000..5189b0d6de6 --- /dev/null +++ b/test/integration/render-tests/circle-geometry/polygon/style.json @@ -0,0 +1,65 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -25, + -25 + ], + [ + -25, + 25 + ], + [ + 25, + 25 + ], + [ + 25, + -25 + ], + [ + -25, + -25 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "circle", + "source": "geometry" + } + ] +} diff --git a/test/integration/render-tests/circle-opacity/default/expected.png b/test/integration/render-tests/circle-opacity/default/expected.png new file mode 100644 index 00000000000..4b650620144 Binary files /dev/null and b/test/integration/render-tests/circle-opacity/default/expected.png differ diff --git a/test/integration/render-tests/circle-opacity/default/style.json b/test/integration/render-tests/circle-opacity/default/style.json new file mode 100644 index 00000000000..fcfc4ca0827 --- /dev/null +++ b/test/integration/render-tests/circle-opacity/default/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 10, + "circle-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-opacity/function/expected.png b/test/integration/render-tests/circle-opacity/function/expected.png new file mode 100644 index 00000000000..642cf2cb223 Binary files /dev/null and b/test/integration/render-tests/circle-opacity/function/expected.png differ diff --git a/test/integration/render-tests/circle-opacity/function/style.json b/test/integration/render-tests/circle-opacity/function/style.json new file mode 100644 index 00000000000..44e72b2d698 --- /dev/null +++ b/test/integration/render-tests/circle-opacity/function/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 10, + "circle-color": "#000", + "circle-opacity": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 17, + 0.6 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-opacity/literal/expected.png b/test/integration/render-tests/circle-opacity/literal/expected.png new file mode 100644 index 00000000000..7cde009ea0c Binary files /dev/null and b/test/integration/render-tests/circle-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/circle-opacity/literal/style.json b/test/integration/render-tests/circle-opacity/literal/style.json new file mode 100644 index 00000000000..10cfdcd1730 --- /dev/null +++ b/test/integration/render-tests/circle-opacity/literal/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 10, + "circle-color": "#000", + "circle-opacity": 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-opacity/property-function/expected.png b/test/integration/render-tests/circle-opacity/property-function/expected.png new file mode 100644 index 00000000000..d21c93b6784 Binary files /dev/null and b/test/integration/render-tests/circle-opacity/property-function/expected.png differ diff --git a/test/integration/render-tests/circle-opacity/property-function/style.json b/test/integration/render-tests/circle-opacity/property-function/style.json new file mode 100644 index 00000000000..17abc8fe39d --- /dev/null +++ b/test/integration/render-tests/circle-opacity/property-function/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-opacity": { + "stops": [ + [ + 0, + 0 + ], + [ + 50, + 1 + ] + ], + "property": "localrank" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-opacity/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-opacity/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..440191644e5 Binary files /dev/null and b/test/integration/render-tests/circle-opacity/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-opacity/zoom-and-property-function/style.json b/test/integration/render-tests/circle-opacity/zoom-and-property-function/style.json new file mode 100644 index 00000000000..15dbea19945 --- /dev/null +++ b/test/integration/render-tests/circle-opacity/zoom-and-property-function/style.json @@ -0,0 +1,76 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-opacity": { + "base": 1, + "stops": [ + [ + { + "zoom": 13.9, + "value": 0 + }, + 0 + ], + [ + { + "zoom": 13.9, + "value": 50 + }, + 0.75 + ], + [ + { + "zoom": 14.2, + "value": 0 + }, + 0.25 + ], + [ + { + "zoom": 14.2, + "value": 50 + }, + 1 + ] + ], + "property": "localrank" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-pitch-scale/default/expected.png b/test/integration/render-tests/circle-pitch-scale/default/expected.png new file mode 100644 index 00000000000..b66ae94cd02 Binary files /dev/null and b/test/integration/render-tests/circle-pitch-scale/default/expected.png differ diff --git a/test/integration/render-tests/circle-pitch-scale/default/style.json b/test/integration/render-tests/circle-pitch-scale/default/style.json new file mode 100644 index 00000000000..38187a8ead9 --- /dev/null +++ b/test/integration/render-tests/circle-pitch-scale/default/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "pitch": 90, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiPoint", + "coordinates": [ + [ + 0, + 0 + ], + [ + 0, + 60 + ], + [ + 0, + -60 + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 40, + "circle-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-pitch-scale/map/expected.png b/test/integration/render-tests/circle-pitch-scale/map/expected.png new file mode 100644 index 00000000000..b66ae94cd02 Binary files /dev/null and b/test/integration/render-tests/circle-pitch-scale/map/expected.png differ diff --git a/test/integration/render-tests/circle-pitch-scale/map/style.json b/test/integration/render-tests/circle-pitch-scale/map/style.json new file mode 100644 index 00000000000..cf62662ac15 --- /dev/null +++ b/test/integration/render-tests/circle-pitch-scale/map/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "pitch": 90, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiPoint", + "coordinates": [ + [ + 0, + 0 + ], + [ + 0, + 60 + ], + [ + 0, + -60 + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 40, + "circle-color": "blue", + "circle-pitch-scale": "map" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-pitch-scale/viewport/expected.png b/test/integration/render-tests/circle-pitch-scale/viewport/expected.png new file mode 100644 index 00000000000..5f4d958fbce Binary files /dev/null and b/test/integration/render-tests/circle-pitch-scale/viewport/expected.png differ diff --git a/test/integration/render-tests/circle-pitch-scale/viewport/style.json b/test/integration/render-tests/circle-pitch-scale/viewport/style.json new file mode 100644 index 00000000000..14c71fe0b86 --- /dev/null +++ b/test/integration/render-tests/circle-pitch-scale/viewport/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "pitch": 90, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiPoint", + "coordinates": [ + [ + 0, + 0 + ], + [ + 0, + 60 + ], + [ + 0, + -60 + ] + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 40, + "circle-color": "blue", + "circle-pitch-scale": "viewport" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-radius/antimeridian/expected.png b/test/integration/render-tests/circle-radius/antimeridian/expected.png new file mode 100644 index 00000000000..81c71995d24 Binary files /dev/null and b/test/integration/render-tests/circle-radius/antimeridian/expected.png differ diff --git a/test/integration/render-tests/circle-radius/antimeridian/style.json b/test/integration/render-tests/circle-radius/antimeridian/style.json new file mode 100644 index 00000000000..2098164ba1b --- /dev/null +++ b/test/integration/render-tests/circle-radius/antimeridian/style.json @@ -0,0 +1,36 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 514, + "height": 514 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 179, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circles", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 20 + } + } + ] +} diff --git a/test/integration/render-tests/circle-radius/default/expected.png b/test/integration/render-tests/circle-radius/default/expected.png new file mode 100644 index 00000000000..c863bbf1798 Binary files /dev/null and b/test/integration/render-tests/circle-radius/default/expected.png differ diff --git a/test/integration/render-tests/circle-radius/default/style.json b/test/integration/render-tests/circle-radius/default/style.json new file mode 100644 index 00000000000..fc66367e846 --- /dev/null +++ b/test/integration/render-tests/circle-radius/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-radius/function/expected.png b/test/integration/render-tests/circle-radius/function/expected.png new file mode 100644 index 00000000000..aebb63b84d3 Binary files /dev/null and b/test/integration/render-tests/circle-radius/function/expected.png differ diff --git a/test/integration/render-tests/circle-radius/function/style.json b/test/integration/render-tests/circle-radius/function/style.json new file mode 100644 index 00000000000..ce2301b4712 --- /dev/null +++ b/test/integration/render-tests/circle-radius/function/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-color": "#000", + "circle-radius": { + "stops": [ + [ + 16, + 20 + ], + [ + 17, + 30 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-radius/identity-property-function/expected.png b/test/integration/render-tests/circle-radius/identity-property-function/expected.png new file mode 100644 index 00000000000..17c96bb26cc Binary files /dev/null and b/test/integration/render-tests/circle-radius/identity-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-radius/identity-property-function/style.json b/test/integration/render-tests/circle-radius/identity-property-function/style.json new file mode 100644 index 00000000000..0bcd143161f --- /dev/null +++ b/test/integration/render-tests/circle-radius/identity-property-function/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6518" + } + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "radius": 20 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "circle", + "type": "circle", + "source": "mapbox", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + }, + "circle-color": "black" + } + } + ] +} diff --git a/test/integration/render-tests/circle-radius/literal/expected.png b/test/integration/render-tests/circle-radius/literal/expected.png new file mode 100644 index 00000000000..4b650620144 Binary files /dev/null and b/test/integration/render-tests/circle-radius/literal/expected.png differ diff --git a/test/integration/render-tests/circle-radius/literal/style.json b/test/integration/render-tests/circle-radius/literal/style.json new file mode 100644 index 00000000000..d531357ee33 --- /dev/null +++ b/test/integration/render-tests/circle-radius/literal/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-color": "#000", + "circle-radius": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-radius/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-radius/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..864c2b6cd6f Binary files /dev/null and b/test/integration/render-tests/circle-radius/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-radius/zoom-and-property-function/style.json b/test/integration/render-tests/circle-radius/zoom-and-property-function/style.json new file mode 100644 index 00000000000..6358ac01e2c --- /dev/null +++ b/test/integration/render-tests/circle-radius/zoom-and-property-function/style.json @@ -0,0 +1,76 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": { + "base": 1, + "stops": [ + [ + { + "zoom": 13.9, + "value": 0 + }, + 2 + ], + [ + { + "zoom": 13.9, + "value": 50 + }, + 8 + ], + [ + { + "zoom": 14.2, + "value": 0 + }, + 6 + ], + [ + { + "zoom": 14.2, + "value": 50 + }, + 24 + ] + ], + "property": "localrank" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-stroke-color/default/expected.png b/test/integration/render-tests/circle-stroke-color/default/expected.png new file mode 100644 index 00000000000..6f047282d14 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-color/default/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-color/default/style.json b/test/integration/render-tests/circle-stroke-color/default/style.json new file mode 100644 index 00000000000..cba3f52fad5 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-color/default/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 2 + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-color/function/expected.png b/test/integration/render-tests/circle-stroke-color/function/expected.png new file mode 100644 index 00000000000..1232d3b7d87 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-color/function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-color/function/style.json b/test/integration/render-tests/circle-stroke-color/function/style.json new file mode 100644 index 00000000000..fa6a0fa82c2 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-color/function/style.json @@ -0,0 +1,66 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 2, + "circle-stroke-color": { + "stops": [ + [ + 0, + "green" + ], + [ + 1, + "blue" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-color/literal/expected.png b/test/integration/render-tests/circle-stroke-color/literal/expected.png new file mode 100644 index 00000000000..b218369596d Binary files /dev/null and b/test/integration/render-tests/circle-stroke-color/literal/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-color/literal/style.json b/test/integration/render-tests/circle-stroke-color/literal/style.json new file mode 100644 index 00000000000..6686d884d08 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-color/literal/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 2, + "circle-stroke-color": "blue" + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-color/property-function/expected.png b/test/integration/render-tests/circle-stroke-color/property-function/expected.png new file mode 100644 index 00000000000..cb6a5cb7efd Binary files /dev/null and b/test/integration/render-tests/circle-stroke-color/property-function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-color/property-function/style.json b/test/integration/render-tests/circle-stroke-color/property-function/style.json new file mode 100644 index 00000000000..898a287f697 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-color/property-function/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "color": "red" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "color": "green" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 2, + "circle-stroke-color": { + "type": "identity", + "property": "color" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-color/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-stroke-color/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..d0684433f66 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-color/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-color/zoom-and-property-function/style.json b/test/integration/render-tests/circle-stroke-color/zoom-and-property-function/style.json new file mode 100644 index 00000000000..0ab20639ccd --- /dev/null +++ b/test/integration/render-tests/circle-stroke-color/zoom-and-property-function/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "color": 0 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "color": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 2, + "circle-stroke-color": { + "property": "color", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + "red" + ], + [ + { + "zoom": 0, + "value": 10 + }, + "yellow" + ], + [ + { + "zoom": 1, + "value": 0 + }, + "blue" + ], + [ + { + "zoom": 1, + "value": 10 + }, + "green" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-opacity/default/expected.png b/test/integration/render-tests/circle-stroke-opacity/default/expected.png new file mode 100644 index 00000000000..9ccde6d2885 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-opacity/default/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-opacity/default/style.json b/test/integration/render-tests/circle-stroke-opacity/default/style.json new file mode 100644 index 00000000000..de18581c1a7 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-opacity/default/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5 + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-opacity/function/expected.png b/test/integration/render-tests/circle-stroke-opacity/function/expected.png new file mode 100644 index 00000000000..f9553b3e877 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-opacity/function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-opacity/function/style.json b/test/integration/render-tests/circle-stroke-opacity/function/style.json new file mode 100644 index 00000000000..eaff03059ea --- /dev/null +++ b/test/integration/render-tests/circle-stroke-opacity/function/style.json @@ -0,0 +1,66 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5, + "circle-stroke-opacity": { + "stops": [ + [ + 0, + 0.5 + ], + [ + 1, + 1 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-opacity/literal/expected.png b/test/integration/render-tests/circle-stroke-opacity/literal/expected.png new file mode 100644 index 00000000000..f9553b3e877 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-opacity/literal/style.json b/test/integration/render-tests/circle-stroke-opacity/literal/style.json new file mode 100644 index 00000000000..83cd9fc55aa --- /dev/null +++ b/test/integration/render-tests/circle-stroke-opacity/literal/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5, + "circle-stroke-opacity": 0.5 + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-opacity/property-function/expected.png b/test/integration/render-tests/circle-stroke-opacity/property-function/expected.png new file mode 100644 index 00000000000..b7daa6cc398 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-opacity/property-function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-opacity/property-function/style.json b/test/integration/render-tests/circle-stroke-opacity/property-function/style.json new file mode 100644 index 00000000000..b9538ed5afa --- /dev/null +++ b/test/integration/render-tests/circle-stroke-opacity/property-function/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "opacity": 0.5 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "opacity": 0.8 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5, + "circle-stroke-opacity": { + "type": "identity", + "property": "opacity" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-opacity/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-stroke-opacity/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..cf1ddf100ec Binary files /dev/null and b/test/integration/render-tests/circle-stroke-opacity/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-opacity/zoom-and-property-function/style.json b/test/integration/render-tests/circle-stroke-opacity/zoom-and-property-function/style.json new file mode 100644 index 00000000000..f444a46b670 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-opacity/zoom-and-property-function/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "opacity": 0 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "opacity": 1 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5, + "circle-stroke-opacity": { + "property": "opacity", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + 0.5 + ], + [ + { + "zoom": 0, + "value": 1 + }, + 0.7 + ], + [ + { + "zoom": 1, + "value": 0 + }, + 0.9 + ], + [ + { + "zoom": 1, + "value": 1 + }, + 1 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-width/default/expected.png b/test/integration/render-tests/circle-stroke-width/default/expected.png new file mode 100644 index 00000000000..fe42144442b Binary files /dev/null and b/test/integration/render-tests/circle-stroke-width/default/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-width/default/style.json b/test/integration/render-tests/circle-stroke-width/default/style.json new file mode 100644 index 00000000000..47ea53f5ca9 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-width/default/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff" + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-width/function/expected.png b/test/integration/render-tests/circle-stroke-width/function/expected.png new file mode 100644 index 00000000000..9ccde6d2885 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-width/function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-width/function/style.json b/test/integration/render-tests/circle-stroke-width/function/style.json new file mode 100644 index 00000000000..66eae4e4f9e --- /dev/null +++ b/test/integration/render-tests/circle-stroke-width/function/style.json @@ -0,0 +1,65 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": { + "stops": [ + [ + 0, + 5 + ], + [ + 1, + 10 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-width/literal/expected.png b/test/integration/render-tests/circle-stroke-width/literal/expected.png new file mode 100644 index 00000000000..9ccde6d2885 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-width/literal/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-width/literal/style.json b/test/integration/render-tests/circle-stroke-width/literal/style.json new file mode 100644 index 00000000000..de18581c1a7 --- /dev/null +++ b/test/integration/render-tests/circle-stroke-width/literal/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": 5 + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-width/property-function/expected.png b/test/integration/render-tests/circle-stroke-width/property-function/expected.png new file mode 100644 index 00000000000..33a85211d4a Binary files /dev/null and b/test/integration/render-tests/circle-stroke-width/property-function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-width/property-function/style.json b/test/integration/render-tests/circle-stroke-width/property-function/style.json new file mode 100644 index 00000000000..9d31f64229f --- /dev/null +++ b/test/integration/render-tests/circle-stroke-width/property-function/style.json @@ -0,0 +1,62 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "width": 4 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "width": 7 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": { + "type": "identity", + "property": "width" + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-stroke-width/zoom-and-property-function/expected.png b/test/integration/render-tests/circle-stroke-width/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..8f9a448f553 Binary files /dev/null and b/test/integration/render-tests/circle-stroke-width/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/circle-stroke-width/zoom-and-property-function/style.json b/test/integration/render-tests/circle-stroke-width/zoom-and-property-function/style.json new file mode 100644 index 00000000000..a0b7099d78b --- /dev/null +++ b/test/integration/render-tests/circle-stroke-width/zoom-and-property-function/style.json @@ -0,0 +1,91 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "width": 5 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "width": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-stroke-width": { + "property": "width", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + 2 + ], + [ + { + "zoom": 0, + "value": 50 + }, + 8 + ], + [ + { + "zoom": 1, + "value": 0 + }, + 6 + ], + [ + { + "zoom": 1, + "value": 50 + }, + 24 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/circle-translate-anchor/map/expected.png b/test/integration/render-tests/circle-translate-anchor/map/expected.png new file mode 100644 index 00000000000..50baa83e242 Binary files /dev/null and b/test/integration/render-tests/circle-translate-anchor/map/expected.png differ diff --git a/test/integration/render-tests/circle-translate-anchor/map/style.json b/test/integration/render-tests/circle-translate-anchor/map/style.json new file mode 100644 index 00000000000..8b131c62b8f --- /dev/null +++ b/test/integration/render-tests/circle-translate-anchor/map/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-color": "black", + "circle-translate": [ + 10, + 10 + ], + "circle-translate-anchor": "map" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-translate-anchor/viewport/expected.png b/test/integration/render-tests/circle-translate-anchor/viewport/expected.png new file mode 100644 index 00000000000..c8a7162ea69 Binary files /dev/null and b/test/integration/render-tests/circle-translate-anchor/viewport/expected.png differ diff --git a/test/integration/render-tests/circle-translate-anchor/viewport/style.json b/test/integration/render-tests/circle-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..7de2c29b2b3 --- /dev/null +++ b/test/integration/render-tests/circle-translate-anchor/viewport/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-color": "black", + "circle-translate": [ + 10, + 10 + ], + "circle-translate-anchor": "viewport" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-translate/default/expected.png b/test/integration/render-tests/circle-translate/default/expected.png new file mode 100644 index 00000000000..c863bbf1798 Binary files /dev/null and b/test/integration/render-tests/circle-translate/default/expected.png differ diff --git a/test/integration/render-tests/circle-translate/default/style.json b/test/integration/render-tests/circle-translate/default/style.json new file mode 100644 index 00000000000..90431f11bd4 --- /dev/null +++ b/test/integration/render-tests/circle-translate/default/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-translate/function/expected.png b/test/integration/render-tests/circle-translate/function/expected.png new file mode 100644 index 00000000000..3779e4e3536 Binary files /dev/null and b/test/integration/render-tests/circle-translate/function/expected.png differ diff --git a/test/integration/render-tests/circle-translate/function/style.json b/test/integration/render-tests/circle-translate/function/style.json new file mode 100644 index 00000000000..ef04b24070b --- /dev/null +++ b/test/integration/render-tests/circle-translate/function/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "#000", + "circle-translate": { + "stops": [ + [ + 16, + [ + 15, + 15 + ] + ], + [ + 17, + [ + 20, + 20 + ] + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/circle-translate/literal/expected.png b/test/integration/render-tests/circle-translate/literal/expected.png new file mode 100644 index 00000000000..195814db3d3 Binary files /dev/null and b/test/integration/render-tests/circle-translate/literal/expected.png differ diff --git a/test/integration/render-tests/circle-translate/literal/style.json b/test/integration/render-tests/circle-translate/literal/style.json new file mode 100644 index 00000000000..46ff12b6a35 --- /dev/null +++ b/test/integration/render-tests/circle-translate/literal/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poi_label", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-radius": 5, + "circle-color": "#000", + "circle-translate": [ + 5, + 5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/classes/additive/expected.png b/test/integration/render-tests/classes/additive/expected.png new file mode 100644 index 00000000000..2f34aeea6d8 Binary files /dev/null and b/test/integration/render-tests/classes/additive/expected.png differ diff --git a/test/integration/render-tests/classes/additive/style.json b/test/integration/render-tests/classes/additive/style.json new file mode 100644 index 00000000000..f7d9418e16e --- /dev/null +++ b/test/integration/render-tests/classes/additive/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "classes": [ + "additive" + ], + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/pull/3643" + } + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + }, + "paint.additive": { + "background-opacity": 0.5 + } + } + ] +} diff --git a/test/integration/render-tests/classes/override/expected.png b/test/integration/render-tests/classes/override/expected.png new file mode 100644 index 00000000000..210be504d39 Binary files /dev/null and b/test/integration/render-tests/classes/override/expected.png differ diff --git a/test/integration/render-tests/classes/override/style.json b/test/integration/render-tests/classes/override/style.json new file mode 100644 index 00000000000..98ea6f286a5 --- /dev/null +++ b/test/integration/render-tests/classes/override/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "classes": [ + "override" + ], + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/pull/3643" + } + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + }, + "paint.override": { + "background-color": "green" + } + } + ] +} diff --git a/test/integration/render-tests/debug/collision-overscaled/expected.png b/test/integration/render-tests/debug/collision-overscaled/expected.png new file mode 100644 index 00000000000..4c54aa17db6 Binary files /dev/null and b/test/integration/render-tests/debug/collision-overscaled/expected.png differ diff --git a/test/integration/render-tests/debug/collision-overscaled/style.json b/test/integration/render-tests/debug/collision-overscaled/style.json new file mode 100644 index 00000000000..20b50964010 --- /dev/null +++ b/test/integration/render-tests/debug/collision-overscaled/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/3841" + }, + "collisionDebug": true, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "icon-image": "triangle-stroked-12", + "text-field": "test test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/debug/collision/expected.png b/test/integration/render-tests/debug/collision/expected.png new file mode 100644 index 00000000000..f61575f1738 Binary files /dev/null and b/test/integration/render-tests/debug/collision/expected.png differ diff --git a/test/integration/render-tests/debug/collision/style.json b/test/integration/render-tests/debug/collision/style.json new file mode 100644 index 00000000000..67ac48001f1 --- /dev/null +++ b/test/integration/render-tests/debug/collision/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/3841" + }, + "collisionDebug": true, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "icon-image": "triangle-stroked-12", + "text-field": "test test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/debug/overdraw/expected.png b/test/integration/render-tests/debug/overdraw/expected.png new file mode 100644 index 00000000000..fb05002b238 Binary files /dev/null and b/test/integration/render-tests/debug/overdraw/expected.png differ diff --git a/test/integration/render-tests/debug/overdraw/style.json b/test/integration/render-tests/debug/overdraw/style.json new file mode 100644 index 00000000000..0fdba9345d8 --- /dev/null +++ b/test/integration/render-tests/debug/overdraw/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "showOverdrawInspector": true + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road" + } + ] +} diff --git a/test/integration/render-tests/debug/tile-overscaled/expected.png b/test/integration/render-tests/debug/tile-overscaled/expected.png new file mode 100644 index 00000000000..1d123bd64a3 Binary files /dev/null and b/test/integration/render-tests/debug/tile-overscaled/expected.png differ diff --git a/test/integration/render-tests/debug/tile-overscaled/style.json b/test/integration/render-tests/debug/tile-overscaled/style.json new file mode 100644 index 00000000000..2c8a72e032c --- /dev/null +++ b/test/integration/render-tests/debug/tile-overscaled/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/3841" + }, + "debug": true, + "height": 256 + } + }, + "center": [ + 13.42498, + 52.49608 + ], + "zoom": 17, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "text-field": "test", + "text-allow-overlap": true, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/debug/tile/expected.png b/test/integration/render-tests/debug/tile/expected.png new file mode 100644 index 00000000000..cf6b02d6090 Binary files /dev/null and b/test/integration/render-tests/debug/tile/expected.png differ diff --git a/test/integration/render-tests/debug/tile/style.json b/test/integration/render-tests/debug/tile/style.json new file mode 100644 index 00000000000..f86ce653660 --- /dev/null +++ b/test/integration/render-tests/debug/tile/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/3841" + }, + "debug": true, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "text-field": "test", + "text-allow-overlap": true, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/empty/empty/expected.png b/test/integration/render-tests/empty/empty/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/empty/empty/expected.png differ diff --git a/test/integration/render-tests/empty/empty/style.json b/test/integration/render-tests/empty/empty/style.json new file mode 100644 index 00000000000..6a58d312136 --- /dev/null +++ b/test/integration/render-tests/empty/empty/style.json @@ -0,0 +1,16 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/extent/1024-circle/expected.png b/test/integration/render-tests/extent/1024-circle/expected.png new file mode 100644 index 00000000000..05c997eb061 Binary files /dev/null and b/test/integration/render-tests/extent/1024-circle/expected.png differ diff --git a/test/integration/render-tests/extent/1024-circle/style.json b/test/integration/render-tests/extent/1024-circle/style.json new file mode 100644 index 00000000000..ac46a936232 --- /dev/null +++ b/test/integration/render-tests/extent/1024-circle/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "needs investigation" + } + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/extent1024-14-8802-5374.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "mapbox", + "type": "circle", + "source": "mapbox", + "source-layer": "poi_label", + "paint": { + "circle-color": "black", + "circle-radius": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/extent/1024-fill/expected.png b/test/integration/render-tests/extent/1024-fill/expected.png new file mode 100644 index 00000000000..71e28b540c2 Binary files /dev/null and b/test/integration/render-tests/extent/1024-fill/expected.png differ diff --git a/test/integration/render-tests/extent/1024-fill/style.json b/test/integration/render-tests/extent/1024-fill/style.json new file mode 100644 index 00000000000..d3acb7b7dd2 --- /dev/null +++ b/test/integration/render-tests/extent/1024-fill/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "diff": 0.0008 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/extent1024-14-8802-5374.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "mapbox", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "black", + "fill-antialias": true + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/extent/1024-line/expected.png b/test/integration/render-tests/extent/1024-line/expected.png new file mode 100644 index 00000000000..6a21d97a274 Binary files /dev/null and b/test/integration/render-tests/extent/1024-line/expected.png differ diff --git a/test/integration/render-tests/extent/1024-line/style.json b/test/integration/render-tests/extent/1024-line/style.json new file mode 100644 index 00000000000..a52a760f17c --- /dev/null +++ b/test/integration/render-tests/extent/1024-line/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "diff": 0.0005 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/extent1024-14-8802-5374.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "mapbox", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "black", + "line-width": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/extent/1024-symbol/expected.png b/test/integration/render-tests/extent/1024-symbol/expected.png new file mode 100644 index 00000000000..f3eb10087a5 Binary files /dev/null and b/test/integration/render-tests/extent/1024-symbol/expected.png differ diff --git a/test/integration/render-tests/extent/1024-symbol/style.json b/test/integration/render-tests/extent/1024-symbol/style.json new file mode 100644 index 00000000000..5bfcd6233c3 --- /dev/null +++ b/test/integration/render-tests/extent/1024-symbol/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "diff": 0.003, + "ignored": { + "native": "needs investigation" + } + } + }, + "center": [ + 0, + 0 + ], + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/extent1024-14-8802-5374.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "mapbox", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "icon-image": "dog-park-12", + "text-field": "mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-antialias/false/expected.png b/test/integration/render-tests/fill-antialias/false/expected.png new file mode 100644 index 00000000000..ba8caeead69 Binary files /dev/null and b/test/integration/render-tests/fill-antialias/false/expected.png differ diff --git a/test/integration/render-tests/fill-antialias/false/style.json b/test/integration/render-tests/fill-antialias/false/style.json new file mode 100644 index 00000000000..fc9adb4e27c --- /dev/null +++ b/test/integration/render-tests/fill-antialias/false/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-color/default/expected.png b/test/integration/render-tests/fill-color/default/expected.png new file mode 100644 index 00000000000..ba8caeead69 Binary files /dev/null and b/test/integration/render-tests/fill-color/default/expected.png differ diff --git a/test/integration/render-tests/fill-color/default/style.json b/test/integration/render-tests/fill-color/default/style.json new file mode 100644 index 00000000000..fc9adb4e27c --- /dev/null +++ b/test/integration/render-tests/fill-color/default/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-color/function/expected.png b/test/integration/render-tests/fill-color/function/expected.png new file mode 100644 index 00000000000..366e9f2e5df Binary files /dev/null and b/test/integration/render-tests/fill-color/function/expected.png differ diff --git a/test/integration/render-tests/fill-color/function/style.json b/test/integration/render-tests/fill-color/function/style.json new file mode 100644 index 00000000000..9119cde4f00 --- /dev/null +++ b/test/integration/render-tests/fill-color/function/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-color": { + "stops": [ + [ + 0, + "green" + ], + [ + 1, + "blue" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-color/literal/expected.png b/test/integration/render-tests/fill-color/literal/expected.png new file mode 100644 index 00000000000..2b486b95236 Binary files /dev/null and b/test/integration/render-tests/fill-color/literal/expected.png differ diff --git a/test/integration/render-tests/fill-color/literal/style.json b/test/integration/render-tests/fill-color/literal/style.json new file mode 100644 index 00000000000..3b324d84d95 --- /dev/null +++ b/test/integration/render-tests/fill-color/literal/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-color/multiply/expected.png b/test/integration/render-tests/fill-color/multiply/expected.png new file mode 100644 index 00000000000..8cdb2b5f16d Binary files /dev/null and b/test/integration/render-tests/fill-color/multiply/expected.png differ diff --git a/test/integration/render-tests/fill-color/multiply/style.json b/test/integration/render-tests/fill-color/multiply/style.json new file mode 100644 index 00000000000..37868e0dd9a --- /dev/null +++ b/test/integration/render-tests/fill-color/multiply/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-color": "rgba(255,0,0,0.5)", + "fill-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-color/opacity/expected.png b/test/integration/render-tests/fill-color/opacity/expected.png new file mode 100644 index 00000000000..8307f661ba8 Binary files /dev/null and b/test/integration/render-tests/fill-color/opacity/expected.png differ diff --git a/test/integration/render-tests/fill-color/opacity/style.json b/test/integration/render-tests/fill-color/opacity/style.json new file mode 100644 index 00000000000..a589d21f3d8 --- /dev/null +++ b/test/integration/render-tests/fill-color/opacity/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-color": "rgba(255,0,0,1)", + "fill-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-color/property-function/expected.png b/test/integration/render-tests/fill-color/property-function/expected.png new file mode 100644 index 00000000000..08423a342bc Binary files /dev/null and b/test/integration/render-tests/fill-color/property-function/expected.png differ diff --git a/test/integration/render-tests/fill-color/property-function/style.json b/test/integration/render-tests/fill-color/property-function/style.json new file mode 100644 index 00000000000..09b0d8930d4 --- /dev/null +++ b/test/integration/render-tests/fill-color/property-function/style.json @@ -0,0 +1,148 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-color": { + "property": "property", + "stops": [ + [ + 0, + "rgba(255,0,0,1)" + ], + [ + 1, + "rgba(0,255,0,1)" + ], + [ + 2, + "rgba(0,0,255,1)" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-color/zoom-and-property-function/expected.png b/test/integration/render-tests/fill-color/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..2a7ab91a720 Binary files /dev/null and b/test/integration/render-tests/fill-color/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/fill-color/zoom-and-property-function/style.json b/test/integration/render-tests/fill-color/zoom-and-property-function/style.json new file mode 100644 index 00000000000..e09752746c7 --- /dev/null +++ b/test/integration/render-tests/fill-color/zoom-and-property-function/style.json @@ -0,0 +1,179 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "zoom": 0.1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-color": { + "property": "property", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + "rgba(255,0,0,1)" + ], + [ + { + "zoom": 0, + "value": 1 + }, + "rgba(0,255,0,1)" + ], + [ + { + "zoom": 0, + "value": 2 + }, + "rgba(0,0,255,1)" + ], + [ + { + "zoom": 1, + "value": 0 + }, + "rgba(255,0,0,0)" + ], + [ + { + "zoom": 1, + "value": 1 + }, + "rgba(0,255,0,0)" + ], + [ + { + "zoom": 1, + "value": 2 + }, + "rgba(0,0,255,0)" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-base/default/expected.png b/test/integration/render-tests/fill-extrusion-base/default/expected.png new file mode 100644 index 00000000000..8570f5b1b74 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-base/default/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-base/default/style.json b/test/integration/render-tests/fill-extrusion-base/default/style.json new file mode 100644 index 00000000000..3d99795e41d --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-base/default/style.json @@ -0,0 +1,162 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 80, + "zoom": 18, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 30 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-base/function/expected.png b/test/integration/render-tests/fill-extrusion-base/function/expected.png new file mode 100644 index 00000000000..058c72d9cde Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-base/function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-base/function/style.json b/test/integration/render-tests/fill-extrusion-base/function/style.json new file mode 100644 index 00000000000..3c38a87feb0 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-base/function/style.json @@ -0,0 +1,166 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 80, + "zoom": 18, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 40, + "fill-extrusion-base": { + "stops": [[17,0],[19,30]], + "type": "exponential" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-base/literal/expected.png b/test/integration/render-tests/fill-extrusion-base/literal/expected.png new file mode 100644 index 00000000000..d1417418797 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-base/literal/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-base/literal/style.json b/test/integration/render-tests/fill-extrusion-base/literal/style.json new file mode 100644 index 00000000000..ea58666bc52 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-base/literal/style.json @@ -0,0 +1,163 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 80, + "zoom": 18, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 40, + "fill-extrusion-base": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-base/negative/expected.png b/test/integration/render-tests/fill-extrusion-base/negative/expected.png new file mode 100644 index 00000000000..ea8b829970d Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-base/negative/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-base/negative/style.json b/test/integration/render-tests/fill-extrusion-base/negative/style.json new file mode 100644 index 00000000000..228273dfa02 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-base/negative/style.json @@ -0,0 +1,166 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6745" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": -30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": -10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 80, + "zoom": 18, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 40, + "fill-extrusion-base": { + "type": "identity", + "property": "property" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-base/property-function/expected.png b/test/integration/render-tests/fill-extrusion-base/property-function/expected.png new file mode 100644 index 00000000000..164fc188c88 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-base/property-function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-base/property-function/style.json b/test/integration/render-tests/fill-extrusion-base/property-function/style.json new file mode 100644 index 00000000000..9df98b762bf --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-base/property-function/style.json @@ -0,0 +1,167 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 80, + "zoom": 18, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 40, + "fill-extrusion-base": { + "stops": [[0,0],[100,100]], + "type": "exponential", + "property": "property" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/expected.png b/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..0339ee60ee9 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json b/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json new file mode 100644 index 00000000000..8e0b0c3e14a --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-base/zoom-and-property-function/style.json @@ -0,0 +1,184 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 90, + "zoom": 18, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 100, + "fill-extrusion-base": { + "stops": [ + [{ + "zoom": 17, + "value": 0 + }, 0], + [{ + "zoom": 17, + "value": 0 + }, 0], + [{ + "zoom": 18.5, + "value": 0 + }, 0], + [{ + "zoom": 18.5, + "value": 100 + }, 200] + ], + "type": "exponential", + "property": "property" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-color/default/expected.png b/test/integration/render-tests/fill-extrusion-color/default/expected.png new file mode 100644 index 00000000000..4cfadacbce0 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-color/default/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-color/default/style.json b/test/integration/render-tests/fill-extrusion-color/default/style.json new file mode 100644 index 00000000000..c7b66fdcd42 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-color/default/style.json @@ -0,0 +1,132 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + -0.0002 + ], + [ + -0.0002, + 0.0002 + ], + [ + 0.0002, + 0.0002 + ], + [ + 0.0002, + -0.0002 + ], + [ + -0.0002, + -0.0002 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-color/function/expected.png b/test/integration/render-tests/fill-extrusion-color/function/expected.png new file mode 100644 index 00000000000..891fef5a723 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-color/function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-color/function/style.json b/test/integration/render-tests/fill-extrusion-color/function/style.json new file mode 100644 index 00000000000..3389ccb1b63 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-color/function/style.json @@ -0,0 +1,138 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + -0.0002 + ], + [ + -0.0002, + 0.0002 + ], + [ + 0.0002, + 0.0002 + ], + [ + 0.0002, + -0.0002 + ], + [ + -0.0002, + -0.0002 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-color": { + "stops": [ + [17, "blue"], + [19, "red"] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-color/literal/expected.png b/test/integration/render-tests/fill-extrusion-color/literal/expected.png new file mode 100644 index 00000000000..9f85ba77cd5 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-color/literal/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-color/literal/style.json b/test/integration/render-tests/fill-extrusion-color/literal/style.json new file mode 100644 index 00000000000..3d347976970 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-color/literal/style.json @@ -0,0 +1,133 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + -0.0002 + ], + [ + -0.0002, + 0.0002 + ], + [ + 0.0002, + 0.0002 + ], + [ + 0.0002, + -0.0002 + ], + [ + -0.0002, + -0.0002 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-color": "blue" + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-color/no-alpha-no-multiply/expected.png b/test/integration/render-tests/fill-extrusion-color/no-alpha-no-multiply/expected.png new file mode 100644 index 00000000000..e1662d5d1ac Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-color/no-alpha-no-multiply/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-color/no-alpha-no-multiply/style.json b/test/integration/render-tests/fill-extrusion-color/no-alpha-no-multiply/style.json new file mode 100644 index 00000000000..9b1e31d30f2 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-color/no-alpha-no-multiply/style.json @@ -0,0 +1,133 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + -0.0002 + ], + [ + -0.0002, + 0.0002 + ], + [ + 0.0002, + 0.0002 + ], + [ + 0.0002, + -0.0002 + ], + [ + -0.0002, + -0.0002 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-color": "rgba(100,100,100,0.2)" + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-color/property-function/expected.png b/test/integration/render-tests/fill-extrusion-color/property-function/expected.png new file mode 100644 index 00000000000..9976c294b5f Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-color/property-function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-color/property-function/style.json b/test/integration/render-tests/fill-extrusion-color/property-function/style.json new file mode 100644 index 00000000000..ddf6e18df63 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-color/property-function/style.json @@ -0,0 +1,98 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-color": { + "property": "property", + "stops": [ + [ + 10, + "rgba(255,0,0,1)" + ], + [ + 20, + "rgba(0,255,0,1)" + ], + [ + 30, + "rgba(0,0,255,1)" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-color/zoom-and-property-function/expected.png b/test/integration/render-tests/fill-extrusion-color/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..5f28a5cdd22 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-color/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-color/zoom-and-property-function/style.json b/test/integration/render-tests/fill-extrusion-color/zoom-and-property-function/style.json new file mode 100644 index 00000000000..5309c3d46aa --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-color/zoom-and-property-function/style.json @@ -0,0 +1,102 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-color": { + "property": "property", + "stops": [ + [{ + "zoom": 17, + "value": 10 + }, "rgba(255,255,0,1)"], + [{ + "zoom": 17, + "value": 30 + }, "rgba(0,0,255,1)"], + [{ + "zoom": 19, + "value": 10 + }, "rgba(0,255,255,1)"], + [{ + "zoom": 19, + "value": 30 + }, "rgba(255,0,0,1)"] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-height/default/expected.png b/test/integration/render-tests/fill-extrusion-height/default/expected.png new file mode 100644 index 00000000000..088d733c4ca Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-height/default/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-height/default/style.json b/test/integration/render-tests/fill-extrusion-height/default/style.json new file mode 100644 index 00000000000..2da1600d108 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-height/default/style.json @@ -0,0 +1,130 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": {} + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-height/function/expected.png b/test/integration/render-tests/fill-extrusion-height/function/expected.png new file mode 100644 index 00000000000..a87b2e5075c Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-height/function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-height/function/style.json b/test/integration/render-tests/fill-extrusion-height/function/style.json new file mode 100644 index 00000000000..b63d6ffe62a --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-height/function/style.json @@ -0,0 +1,138 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": { + "stops": [ + [17, 10], + [19, 100] + ], + "type": "exponential" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-height/negative/expected.png b/test/integration/render-tests/fill-extrusion-height/negative/expected.png new file mode 100644 index 00000000000..c69b771d801 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-height/negative/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-height/negative/style.json b/test/integration/render-tests/fill-extrusion-height/negative/style.json new file mode 100644 index 00000000000..b9b35ba4587 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-height/negative/style.json @@ -0,0 +1,135 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6745" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": -10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": -30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": { + "type": "identity", + "property": "property" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-height/property-function/expected.png b/test/integration/render-tests/fill-extrusion-height/property-function/expected.png new file mode 100644 index 00000000000..73f6d044dd5 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-height/property-function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-height/property-function/style.json b/test/integration/render-tests/fill-extrusion-height/property-function/style.json new file mode 100644 index 00000000000..47d0d40a480 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-height/property-function/style.json @@ -0,0 +1,139 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": { + "stops": [ + [0, 0], + [100, 100] + ], + "property": "property", + "type": "exponential" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-height/zoom-and-property-function/expected.png b/test/integration/render-tests/fill-extrusion-height/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..19925915378 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-height/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-height/zoom-and-property-function/style.json b/test/integration/render-tests/fill-extrusion-height/zoom-and-property-function/style.json new file mode 100644 index 00000000000..2d59f6953ab --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-height/zoom-and-property-function/style.json @@ -0,0 +1,153 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": { + "stops": [ + [{ + "zoom": 17.99, + "value": 0 + }, 0], + [{ + "zoom": 17.99, + "value": 100 + }, 0], + [{ + "zoom": 18.1, + "value": 0 + }, 0], + [{ + "zoom": 18.1, + "value": 100 + }, 300] + ], + "property": "property", + "type": "exponential" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-opacity/default/expected.png b/test/integration/render-tests/fill-extrusion-opacity/default/expected.png new file mode 100644 index 00000000000..900187fba98 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-opacity/default/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-opacity/default/style.json b/test/integration/render-tests/fill-extrusion-opacity/default/style.json new file mode 100644 index 00000000000..f3d6e604e03 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-opacity/default/style.json @@ -0,0 +1,112 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "bearing": -20, + "zoom": 19, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-opacity/function/expected.png b/test/integration/render-tests/fill-extrusion-opacity/function/expected.png new file mode 100644 index 00000000000..5bf4301f78c Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-opacity/function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-opacity/function/style.json b/test/integration/render-tests/fill-extrusion-opacity/function/style.json new file mode 100644 index 00000000000..6d700022ca4 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-opacity/function/style.json @@ -0,0 +1,116 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "bearing": -20, + "zoom": 19, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-opacity": { + "stops": [[18.9, 0.1],[19.1, 1]], + "type": "exponential" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-opacity/literal/expected.png b/test/integration/render-tests/fill-extrusion-opacity/literal/expected.png new file mode 100644 index 00000000000..0cfd43166ba Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-opacity/literal/style.json b/test/integration/render-tests/fill-extrusion-opacity/literal/style.json new file mode 100644 index 00000000000..b32233bbd66 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-opacity/literal/style.json @@ -0,0 +1,113 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [[ + [ -0.0004, -0.0004 ], + [ -0.0004, 0.0000 ], + [ 0.0004, 0.0004 ], + [ 0.0004, -0.0000 ], + [ -0.0004, -0.0004 ] + ]] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "bearing": -20, + "zoom": 19, + "layers": [ + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-opacity": 0.75 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-pattern/@2x/expected.png b/test/integration/render-tests/fill-extrusion-pattern/@2x/expected.png new file mode 100644 index 00000000000..9a080e68247 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-pattern/@2x/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-pattern/@2x/style.json b/test/integration/render-tests/fill-extrusion-pattern/@2x/style.json new file mode 100644 index 00000000000..5c60a5eb12a --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-pattern/@2x/style.json @@ -0,0 +1,69 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3327", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "pixelRatio": 2 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0004, 0 ], + [ -0.0002, 0.0002 ], + [ 0.0000, 0 ], + [ -0.0002, -0.0002 ], + [ -0.0004, 0 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0000, -0.0002 ], + [ -0.0000, 0.0002 ], + [ 0.0003, 0.0002 ], + [ 0.0003, -0.0002 ], + [ -0.0000, -0.0002 ] ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-pattern": "generic_icon", + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-pattern/function-2/expected.png b/test/integration/render-tests/fill-extrusion-pattern/function-2/expected.png new file mode 100644 index 00000000000..d99ec165c0b Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-pattern/function-2/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-pattern/function-2/style.json b/test/integration/render-tests/fill-extrusion-pattern/function-2/style.json new file mode 100644 index 00000000000..b4d4aa629c7 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-pattern/function-2/style.json @@ -0,0 +1,71 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3327", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0004, 0 ], + [ -0.0002, 0.0002 ], + [ 0.0000, 0 ], + [ -0.0002, -0.0002 ], + [ -0.0004, 0 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0000, -0.0002 ], + [ -0.0000, 0.0002 ], + [ 0.0003, 0.0002 ], + [ 0.0003, -0.0002 ], + [ -0.0000, -0.0002 ] ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "pitch": 60, + "zoom": 19, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-pattern": { + "stops": [[18, "generic_icon"], [19, "generic_metro"]], + "type": "interval" + }, + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-pattern/function/expected.png b/test/integration/render-tests/fill-extrusion-pattern/function/expected.png new file mode 100644 index 00000000000..95887794282 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-pattern/function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-pattern/function/style.json b/test/integration/render-tests/fill-extrusion-pattern/function/style.json new file mode 100644 index 00000000000..2a500f3c374 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-pattern/function/style.json @@ -0,0 +1,71 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3327", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0004, 0 ], + [ -0.0002, 0.0002 ], + [ 0.0000, 0 ], + [ -0.0002, -0.0002 ], + [ -0.0004, 0 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0000, -0.0002 ], + [ -0.0000, 0.0002 ], + [ 0.0003, 0.0002 ], + [ 0.0003, -0.0002 ], + [ -0.0000, -0.0002 ] ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-pattern": { + "stops": [[18, "generic_icon"], [19, "generic_metro"]], + "type": "interval" + }, + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-pattern/literal/expected.png b/test/integration/render-tests/fill-extrusion-pattern/literal/expected.png new file mode 100644 index 00000000000..33446d2b1ef Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-pattern/literal/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-pattern/literal/style.json b/test/integration/render-tests/fill-extrusion-pattern/literal/style.json new file mode 100644 index 00000000000..06af41f71ed --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-pattern/literal/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3327", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0004, 0 ], + [ -0.0002, 0.0002 ], + [ 0.0000, 0 ], + [ -0.0002, -0.0002 ], + [ -0.0004, 0 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0000, -0.0002 ], + [ -0.0000, 0.0002 ], + [ 0.0003, 0.0002 ], + [ 0.0003, -0.0002 ], + [ -0.0000, -0.0002 ] ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-pattern": "generic_icon", + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-pattern/opacity/expected.png b/test/integration/render-tests/fill-extrusion-pattern/opacity/expected.png new file mode 100644 index 00000000000..7adbab0e7cc Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-pattern/opacity/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-pattern/opacity/style.json b/test/integration/render-tests/fill-extrusion-pattern/opacity/style.json new file mode 100644 index 00000000000..2238890a8ef --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-pattern/opacity/style.json @@ -0,0 +1,69 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3327", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0004, 0 ], + [ -0.0002, 0.0002 ], + [ 0.0000, 0 ], + [ -0.0002, -0.0002 ], + [ -0.0004, 0 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0000, -0.0002 ], + [ -0.0000, 0.0002 ], + [ 0.0003, 0.0002 ], + [ 0.0003, -0.0002 ], + [ -0.0000, -0.0002 ] ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "pitch": 60, + "zoom": 18, + "layers": [ + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-pattern": "generic_icon", + "fill-extrusion-opacity": 0.5, + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-translate-anchor/map/expected.png b/test/integration/render-tests/fill-extrusion-translate-anchor/map/expected.png new file mode 100644 index 00000000000..27a23bf1b71 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-translate-anchor/map/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-translate-anchor/map/style.json b/test/integration/render-tests/fill-extrusion-translate-anchor/map/style.json new file mode 100644 index 00000000000..bc06e020fa6 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-translate-anchor/map/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.0004 ], + [ -0.0003, -0.0001 ], + [ 0, -0.0001 ], + [ 0, -0.0004 ], + [ -0.0003, -0.0004 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "bearing": 90, + "zoom": 18, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-translate": [-30, -30], + "fill-extrusion-translate-anchor": "map" + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-translate-anchor/viewport/expected.png b/test/integration/render-tests/fill-extrusion-translate-anchor/viewport/expected.png new file mode 100644 index 00000000000..9fd925c59dd Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-translate-anchor/viewport/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-translate-anchor/viewport/style.json b/test/integration/render-tests/fill-extrusion-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..dc9ed94b7f6 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-translate-anchor/viewport/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.0004 ], + [ -0.0003, -0.0001 ], + [ 0, -0.0001 ], + [ 0, -0.0004 ], + [ -0.0003, -0.0004 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "bearing": 90, + "zoom": 18, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-translate": [-30, -30], + "fill-extrusion-translate-anchor": "viewport" + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-translate/default/expected.png b/test/integration/render-tests/fill-extrusion-translate/default/expected.png new file mode 100644 index 00000000000..53df218876e Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-translate/default/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-translate/default/style.json b/test/integration/render-tests/fill-extrusion-translate/default/style.json new file mode 100644 index 00000000000..67b907fca72 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-translate/default/style.json @@ -0,0 +1,89 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 19, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-translate/function/expected.png b/test/integration/render-tests/fill-extrusion-translate/function/expected.png new file mode 100644 index 00000000000..385c3823994 Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-translate/function/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-translate/function/style.json b/test/integration/render-tests/fill-extrusion-translate/function/style.json new file mode 100644 index 00000000000..a0368d94c86 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-translate/function/style.json @@ -0,0 +1,93 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 19, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-translate": { + "stops": [[18, [0, -220]], [20, [100, -20]]], + "type": "exponential" + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-translate/literal-opacity/expected.png b/test/integration/render-tests/fill-extrusion-translate/literal-opacity/expected.png new file mode 100644 index 00000000000..52ed70a5e7b Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-translate/literal-opacity/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-translate/literal-opacity/style.json b/test/integration/render-tests/fill-extrusion-translate/literal-opacity/style.json new file mode 100644 index 00000000000..e946f0727db --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-translate/literal-opacity/style.json @@ -0,0 +1,91 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 19, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-translate": [-30, -30], + "fill-extrusion-opacity": 0.5 + } + } + ] +} diff --git a/test/integration/render-tests/fill-extrusion-translate/literal/expected.png b/test/integration/render-tests/fill-extrusion-translate/literal/expected.png new file mode 100644 index 00000000000..cc1e2049d0a Binary files /dev/null and b/test/integration/render-tests/fill-extrusion-translate/literal/expected.png differ diff --git a/test/integration/render-tests/fill-extrusion-translate/literal/style.json b/test/integration/render-tests/fill-extrusion-translate/literal/style.json new file mode 100644 index 00000000000..482cc4ca6f4 --- /dev/null +++ b/test/integration/render-tests/fill-extrusion-translate/literal/style.json @@ -0,0 +1,90 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.0003, -0.00047 ], + [ -0.0003, -0.00017 ], + [ 0, -0.00017 ], + [ 0, -0.00047 ], + [ -0.0003, -0.00047 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ -0.00015, -0.00015 ], + [ -0.00015, 0.00015 ], + [ 0.00015, 0.00015 ], + [ 0.00015, -0.00015 ], + [ -0.00015, -0.00015 ] ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ [ 0, 0.00017 ], + [ 0, 0.00047 ], + [ 0.0003, 0.00047 ], + [ 0.0003, 0.00017 ], + [ 0, 0.00017 ] ] + ] + } + } + ] + } + } + }, + "pitch": 60, + "zoom": 19, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-translate": [-30, -30] + } + } + ] +} diff --git a/test/integration/render-tests/fill-opacity/default/expected.png b/test/integration/render-tests/fill-opacity/default/expected.png new file mode 100644 index 00000000000..791d5169bd8 Binary files /dev/null and b/test/integration/render-tests/fill-opacity/default/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/default/style.json b/test/integration/render-tests/fill-opacity/default/style.json new file mode 100644 index 00000000000..04a517e6510 --- /dev/null +++ b/test/integration/render-tests/fill-opacity/default/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-opacity/function/expected.png b/test/integration/render-tests/fill-opacity/function/expected.png new file mode 100644 index 00000000000..2f7c5a31dd3 Binary files /dev/null and b/test/integration/render-tests/fill-opacity/function/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/function/style.json b/test/integration/render-tests/fill-opacity/function/style.json new file mode 100644 index 00000000000..c37b640acc9 --- /dev/null +++ b/test/integration/render-tests/fill-opacity/function/style.json @@ -0,0 +1,62 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-opacity": { + "stops": [ + [ + 0, + 0.5 + ], + [ + 1, + 0.6 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-opacity/literal/expected.png b/test/integration/render-tests/fill-opacity/literal/expected.png new file mode 100644 index 00000000000..4e0052ba0ac Binary files /dev/null and b/test/integration/render-tests/fill-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/literal/style.json b/test/integration/render-tests/fill-opacity/literal/style.json new file mode 100644 index 00000000000..664e97c2607 --- /dev/null +++ b/test/integration/render-tests/fill-opacity/literal/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-opacity": 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-opacity/overlapping/expected.png b/test/integration/render-tests/fill-opacity/overlapping/expected.png new file mode 100644 index 00000000000..b8445305317 Binary files /dev/null and b/test/integration/render-tests/fill-opacity/overlapping/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/overlapping/style.json b/test/integration/render-tests/fill-opacity/overlapping/style.json new file mode 100644 index 00000000000..0d32e742561 --- /dev/null +++ b/test/integration/render-tests/fill-opacity/overlapping/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "sources": { + "rectangles": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -130.78125, + -33.13755119234615 + ], + [ + -130.78125, + 63.548552232036414 + ], + [ + 15.468749999999998, + 63.548552232036414 + ], + [ + 15.468749999999998, + -33.13755119234615 + ], + [ + -130.78125, + -33.13755119234615 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -48.515625, + -54.97761367069625 + ], + [ + -48.515625, + 36.5978891330702 + ], + [ + 169.45312499999997, + 36.5978891330702 + ], + [ + 169.45312499999997, + -54.97761367069625 + ], + [ + -48.515625, + -54.97761367069625 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "rectangles", + "type": "fill", + "source": "rectangles", + "paint": { + "fill-opacity": 0.3 + } + } + ] +} diff --git a/test/integration/render-tests/fill-opacity/property-function-pattern/expected.png b/test/integration/render-tests/fill-opacity/property-function-pattern/expected.png new file mode 100644 index 00000000000..385e19dd33a Binary files /dev/null and b/test/integration/render-tests/fill-opacity/property-function-pattern/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/property-function-pattern/style.json b/test/integration/render-tests/fill-opacity/property-function-pattern/style.json new file mode 100644 index 00000000000..96e7486898f --- /dev/null +++ b/test/integration/render-tests/fill-opacity/property-function-pattern/style.json @@ -0,0 +1,146 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-pattern": "generic_icon", + "fill-opacity": { + "property": "property", + "stops": [ + [ + 0, + 1 + ], + [ + 4, + 0 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-opacity/property-function/expected.png b/test/integration/render-tests/fill-opacity/property-function/expected.png new file mode 100644 index 00000000000..9900615a877 Binary files /dev/null and b/test/integration/render-tests/fill-opacity/property-function/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/property-function/style.json b/test/integration/render-tests/fill-opacity/property-function/style.json new file mode 100644 index 00000000000..9cab0a90137 --- /dev/null +++ b/test/integration/render-tests/fill-opacity/property-function/style.json @@ -0,0 +1,144 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-opacity": { + "property": "property", + "stops": [ + [ + 0, + 1 + ], + [ + 4, + 0 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-opacity/zoom-and-property-function-pattern/expected.png b/test/integration/render-tests/fill-opacity/zoom-and-property-function-pattern/expected.png new file mode 100644 index 00000000000..1490af4f9f4 Binary files /dev/null and b/test/integration/render-tests/fill-opacity/zoom-and-property-function-pattern/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/zoom-and-property-function-pattern/style.json b/test/integration/render-tests/fill-opacity/zoom-and-property-function-pattern/style.json new file mode 100644 index 00000000000..cc5af9fd815 --- /dev/null +++ b/test/integration/render-tests/fill-opacity/zoom-and-property-function-pattern/style.json @@ -0,0 +1,167 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "zoom": 0.1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-pattern": "generic_icon", + "fill-opacity": { + "property": "property", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + 1 + ], + [ + { + "zoom": 0, + "value": 4 + }, + 0 + ], + [ + { + "zoom": 1, + "value": 0 + }, + 0 + ], + [ + { + "zoom": 1, + "value": 4 + }, + 0 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-opacity/zoom-and-property-function/expected.png b/test/integration/render-tests/fill-opacity/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..89c7b165679 Binary files /dev/null and b/test/integration/render-tests/fill-opacity/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/fill-opacity/zoom-and-property-function/style.json b/test/integration/render-tests/fill-opacity/zoom-and-property-function/style.json new file mode 100644 index 00000000000..aad99ff533c --- /dev/null +++ b/test/integration/render-tests/fill-opacity/zoom-and-property-function/style.json @@ -0,0 +1,165 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "zoom": 0.1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-opacity": { + "property": "property", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + 1 + ], + [ + { + "zoom": 0, + "value": 4 + }, + 0 + ], + [ + { + "zoom": 1, + "value": 0 + }, + 0 + ], + [ + { + "zoom": 1, + "value": 4 + }, + 0 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-outline-color/default/expected.png b/test/integration/render-tests/fill-outline-color/default/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/default/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/default/style.json b/test/integration/render-tests/fill-outline-color/default/style.json new file mode 100644 index 00000000000..cab0a71e517 --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/default/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-outline-color/function/expected.png b/test/integration/render-tests/fill-outline-color/function/expected.png new file mode 100644 index 00000000000..790ac67cd43 Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/function/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/function/style.json b/test/integration/render-tests/fill-outline-color/function/style.json new file mode 100644 index 00000000000..9f7a2b4fb05 --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/function/style.json @@ -0,0 +1,66 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6927" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)", + "fill-outline-color": { + "stops": [ + [ + 0, + "green" + ], + [ + 1, + "blue" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-outline-color/literal/expected.png b/test/integration/render-tests/fill-outline-color/literal/expected.png new file mode 100644 index 00000000000..c58e4e71abb Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/literal/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/literal/style.json b/test/integration/render-tests/fill-outline-color/literal/style.json new file mode 100644 index 00000000000..4428bf3042a --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/literal/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6927" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)", + "fill-outline-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-outline-color/multiply/expected.png b/test/integration/render-tests/fill-outline-color/multiply/expected.png new file mode 100644 index 00000000000..ef31af94090 Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/multiply/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/multiply/style.json b/test/integration/render-tests/fill-outline-color/multiply/style.json new file mode 100644 index 00000000000..ea25ca38d50 --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/multiply/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6927" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)", + "fill-outline-color": "rgba(255,0,0,0.5)", + "fill-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-outline-color/opacity/expected.png b/test/integration/render-tests/fill-outline-color/opacity/expected.png new file mode 100644 index 00000000000..ab126417558 Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/opacity/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/opacity/style.json b/test/integration/render-tests/fill-outline-color/opacity/style.json new file mode 100644 index 00000000000..9ec3412804b --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/opacity/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6927" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)", + "fill-outline-color": "rgba(255,0,0,1)", + "fill-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-outline-color/property-function/expected.png b/test/integration/render-tests/fill-outline-color/property-function/expected.png new file mode 100644 index 00000000000..fa6d73d1817 Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/property-function/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/property-function/style.json b/test/integration/render-tests/fill-outline-color/property-function/style.json new file mode 100644 index 00000000000..76a6dde426b --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/property-function/style.json @@ -0,0 +1,148 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)", + "fill-outline-color": { + "property": "property", + "stops": [ + [ + 0, + "rgba(255,0,0,1)" + ], + [ + 1, + "rgba(0,255,0,1)" + ], + [ + 2, + "rgba(0,0,255,1)" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-outline-color/zoom-and-property-function/expected.png b/test/integration/render-tests/fill-outline-color/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..48372b9984b Binary files /dev/null and b/test/integration/render-tests/fill-outline-color/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/fill-outline-color/zoom-and-property-function/style.json b/test/integration/render-tests/fill-outline-color/zoom-and-property-function/style.json new file mode 100644 index 00000000000..2e8baeb518f --- /dev/null +++ b/test/integration/render-tests/fill-outline-color/zoom-and-property-function/style.json @@ -0,0 +1,179 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "zoom": 0.1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "rgba(0,0,0,0)", + "fill-outline-color": { + "property": "property", + "stops": [ + [ + { + "zoom": 0, + "value": 0 + }, + "rgba(255,0,0,1)" + ], + [ + { + "zoom": 0, + "value": 1 + }, + "rgba(0,255,0,1)" + ], + [ + { + "zoom": 0, + "value": 2 + }, + "rgba(0,0,255,1)" + ], + [ + { + "zoom": 1, + "value": 0 + }, + "rgba(255,0,0,0)" + ], + [ + { + "zoom": 1, + "value": 1 + }, + "rgba(0,255,0,0)" + ], + [ + { + "zoom": 1, + "value": 2 + }, + "rgba(0,0,255,0)" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/fill-pattern/@2x/expected.png b/test/integration/render-tests/fill-pattern/@2x/expected.png new file mode 100644 index 00000000000..5139650daa4 Binary files /dev/null and b/test/integration/render-tests/fill-pattern/@2x/expected.png differ diff --git a/test/integration/render-tests/fill-pattern/@2x/style.json b/test/integration/render-tests/fill-pattern/@2x/style.json new file mode 100644 index 00000000000..1d12983c392 --- /dev/null +++ b/test/integration/render-tests/fill-pattern/@2x/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "pixelRatio": 2 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-pattern": "generic_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-pattern/literal/expected.png b/test/integration/render-tests/fill-pattern/literal/expected.png new file mode 100644 index 00000000000..da9142bf698 Binary files /dev/null and b/test/integration/render-tests/fill-pattern/literal/expected.png differ diff --git a/test/integration/render-tests/fill-pattern/literal/style.json b/test/integration/render-tests/fill-pattern/literal/style.json new file mode 100644 index 00000000000..32304b61472 --- /dev/null +++ b/test/integration/render-tests/fill-pattern/literal/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-pattern": "generic_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-pattern/opacity/expected.png b/test/integration/render-tests/fill-pattern/opacity/expected.png new file mode 100644 index 00000000000..271696e557c Binary files /dev/null and b/test/integration/render-tests/fill-pattern/opacity/expected.png differ diff --git a/test/integration/render-tests/fill-pattern/opacity/style.json b/test/integration/render-tests/fill-pattern/opacity/style.json new file mode 100644 index 00000000000..eb10f814791 --- /dev/null +++ b/test/integration/render-tests/fill-pattern/opacity/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-pattern": "generic_icon", + "fill-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-pattern/uneven-pattern/expected.png b/test/integration/render-tests/fill-pattern/uneven-pattern/expected.png new file mode 100644 index 00000000000..7818e1ac7ff Binary files /dev/null and b/test/integration/render-tests/fill-pattern/uneven-pattern/expected.png differ diff --git a/test/integration/render-tests/fill-pattern/uneven-pattern/style.json b/test/integration/render-tests/fill-pattern/uneven-pattern/style.json new file mode 100644 index 00000000000..2227c423e2c --- /dev/null +++ b/test/integration/render-tests/fill-pattern/uneven-pattern/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": {} + }, + "zoom": 2, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-pattern": "interstate_1" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-pattern/wrapping-with-interpolation/expected.png b/test/integration/render-tests/fill-pattern/wrapping-with-interpolation/expected.png new file mode 100644 index 00000000000..fd78e22afb7 Binary files /dev/null and b/test/integration/render-tests/fill-pattern/wrapping-with-interpolation/expected.png differ diff --git a/test/integration/render-tests/fill-pattern/wrapping-with-interpolation/style.json b/test/integration/render-tests/fill-pattern/wrapping-with-interpolation/style.json new file mode 100644 index 00000000000..06e497aa53e --- /dev/null +++ b/test/integration/render-tests/fill-pattern/wrapping-with-interpolation/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": {} + }, + "zoom": 0.99, + "center": [ + 0.7, + 0 + ], + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/solid-black", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-pattern": "black" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-pattern/zoomed/expected.png b/test/integration/render-tests/fill-pattern/zoomed/expected.png new file mode 100644 index 00000000000..c8fb1d95f25 Binary files /dev/null and b/test/integration/render-tests/fill-pattern/zoomed/expected.png differ diff --git a/test/integration/render-tests/fill-pattern/zoomed/style.json b/test/integration/render-tests/fill-pattern/zoomed/style.json new file mode 100644 index 00000000000..42b7cd21913 --- /dev/null +++ b/test/integration/render-tests/fill-pattern/zoomed/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "zoom": 0.5, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-pattern": "generic_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-translate-anchor/map/expected.png b/test/integration/render-tests/fill-translate-anchor/map/expected.png new file mode 100644 index 00000000000..e9b9bfb47e6 Binary files /dev/null and b/test/integration/render-tests/fill-translate-anchor/map/expected.png differ diff --git a/test/integration/render-tests/fill-translate-anchor/map/style.json b/test/integration/render-tests/fill-translate-anchor/map/style.json new file mode 100644 index 00000000000..32e0e178388 --- /dev/null +++ b/test/integration/render-tests/fill-translate-anchor/map/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 90, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-translate": [ + 10, + 10 + ], + "fill-translate-anchor": "map" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-translate-anchor/viewport/expected.png b/test/integration/render-tests/fill-translate-anchor/viewport/expected.png new file mode 100644 index 00000000000..8685c013b27 Binary files /dev/null and b/test/integration/render-tests/fill-translate-anchor/viewport/expected.png differ diff --git a/test/integration/render-tests/fill-translate-anchor/viewport/style.json b/test/integration/render-tests/fill-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..e20eadf98ef --- /dev/null +++ b/test/integration/render-tests/fill-translate-anchor/viewport/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 90, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-translate": [ + 10, + 10 + ], + "fill-translate-anchor": "viewport" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-translate/default/expected.png b/test/integration/render-tests/fill-translate/default/expected.png new file mode 100644 index 00000000000..ba8caeead69 Binary files /dev/null and b/test/integration/render-tests/fill-translate/default/expected.png differ diff --git a/test/integration/render-tests/fill-translate/default/style.json b/test/integration/render-tests/fill-translate/default/style.json new file mode 100644 index 00000000000..fc9adb4e27c --- /dev/null +++ b/test/integration/render-tests/fill-translate/default/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-translate/function/expected.png b/test/integration/render-tests/fill-translate/function/expected.png new file mode 100644 index 00000000000..5c7d56acf75 Binary files /dev/null and b/test/integration/render-tests/fill-translate/function/expected.png differ diff --git a/test/integration/render-tests/fill-translate/function/style.json b/test/integration/render-tests/fill-translate/function/style.json new file mode 100644 index 00000000000..8a76cd7a2fb --- /dev/null +++ b/test/integration/render-tests/fill-translate/function/style.json @@ -0,0 +1,69 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-translate": { + "stops": [ + [ + 16, + [ + 15, + 15 + ] + ], + [ + 17, + [ + 20, + 20 + ] + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-translate/literal/expected.png b/test/integration/render-tests/fill-translate/literal/expected.png new file mode 100644 index 00000000000..a87f773fb99 Binary files /dev/null and b/test/integration/render-tests/fill-translate/literal/expected.png differ diff --git a/test/integration/render-tests/fill-translate/literal/style.json b/test/integration/render-tests/fill-translate/literal/style.json new file mode 100644 index 00000000000..9cbb19cd0a1 --- /dev/null +++ b/test/integration/render-tests/fill-translate/literal/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-antialias": false, + "fill-translate": [ + 5, + 5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-visibility/none/expected.png b/test/integration/render-tests/fill-visibility/none/expected.png new file mode 100644 index 00000000000..4d1bfc103f9 Binary files /dev/null and b/test/integration/render-tests/fill-visibility/none/expected.png differ diff --git a/test/integration/render-tests/fill-visibility/none/style.json b/test/integration/render-tests/fill-visibility/none/style.json new file mode 100644 index 00000000000..f514d1b950c --- /dev/null +++ b/test/integration/render-tests/fill-visibility/none/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "fill-visible", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#000", + "fill-opacity": 0 + } + }, + { + "id": "fill-none", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "#000", + "fill-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/fill-visibility/visible/expected.png b/test/integration/render-tests/fill-visibility/visible/expected.png new file mode 100644 index 00000000000..57b8c9223b7 Binary files /dev/null and b/test/integration/render-tests/fill-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/fill-visibility/visible/style.json b/test/integration/render-tests/fill-visibility/visible/style.json new file mode 100644 index 00000000000..102ecd5a357 --- /dev/null +++ b/test/integration/render-tests/fill-visibility/visible/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "fill-visible", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#000", + "fill-opacity": 1 + } + }, + { + "id": "fill-none", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "#000", + "fill-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/clustered/expected.png b/test/integration/render-tests/geojson/clustered/expected.png new file mode 100644 index 00000000000..c7ca6958d1a Binary files /dev/null and b/test/integration/render-tests/geojson/clustered/expected.png differ diff --git a/test/integration/render-tests/geojson/clustered/style.json b/test/integration/render-tests/geojson/clustered/style.json new file mode 100644 index 00000000000..206c1866a79 --- /dev/null +++ b/test/integration/render-tests/geojson/clustered/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -0.01, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/places.geojson", + "cluster": true, + "clusterRadius": 25 + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "cluster", + "type": "circle", + "source": "geojson", + "filter": [ + "==", + "cluster", + true + ], + "paint": { + "circle-color": "rgba(0, 200, 0, 1)", + "circle-radius": 20 + } + }, + { + "id": "cluster_label", + "type": "symbol", + "source": "geojson", + "filter": [ + "==", + "cluster", + true + ], + "layout": { + "text-field": "{point_count}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 12, + "text-allow-overlap": true, + "text-ignore-placement": true + } + }, + { + "id": "unclustered_point", + "type": "circle", + "source": "geojson", + "filter": [ + "!=", + "cluster", + true + ], + "paint": { + "circle-color": "rgba(0, 0, 200, 1)", + "circle-radius": 10 + } + } + ] +} diff --git a/test/integration/render-tests/geojson/external-feature/expected.png b/test/integration/render-tests/geojson/external-feature/expected.png new file mode 100644 index 00000000000..5ce3ce508be Binary files /dev/null and b/test/integration/render-tests/geojson/external-feature/expected.png differ diff --git a/test/integration/render-tests/geojson/external-feature/style.json b/test/integration/render-tests/geojson/external-feature/style.json new file mode 100644 index 00000000000..5aeefd779c6 --- /dev/null +++ b/test/integration/render-tests/geojson/external-feature/style.json @@ -0,0 +1,31 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/feature.geojson" + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/external-invalid/expected.png b/test/integration/render-tests/geojson/external-invalid/expected.png new file mode 100644 index 00000000000..da62bb0db1d Binary files /dev/null and b/test/integration/render-tests/geojson/external-invalid/expected.png differ diff --git a/test/integration/render-tests/geojson/external-invalid/style.json b/test/integration/render-tests/geojson/external-invalid/style.json new file mode 100644 index 00000000000..3f07825d5fd --- /dev/null +++ b/test/integration/render-tests/geojson/external-invalid/style.json @@ -0,0 +1,31 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/invalid.geojson" + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/external-linestring/expected.png b/test/integration/render-tests/geojson/external-linestring/expected.png new file mode 100644 index 00000000000..5ce3ce508be Binary files /dev/null and b/test/integration/render-tests/geojson/external-linestring/expected.png differ diff --git a/test/integration/render-tests/geojson/external-linestring/style.json b/test/integration/render-tests/geojson/external-linestring/style.json new file mode 100644 index 00000000000..5aeefd779c6 --- /dev/null +++ b/test/integration/render-tests/geojson/external-linestring/style.json @@ -0,0 +1,31 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/feature.geojson" + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/external-malformed/expected.png b/test/integration/render-tests/geojson/external-malformed/expected.png new file mode 100644 index 00000000000..da62bb0db1d Binary files /dev/null and b/test/integration/render-tests/geojson/external-malformed/expected.png differ diff --git a/test/integration/render-tests/geojson/external-malformed/style.json b/test/integration/render-tests/geojson/external-malformed/style.json new file mode 100644 index 00000000000..3e080600e75 --- /dev/null +++ b/test/integration/render-tests/geojson/external-malformed/style.json @@ -0,0 +1,31 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/malformed.geojson" + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/inconsistent-winding-order/expected.png b/test/integration/render-tests/geojson/inconsistent-winding-order/expected.png new file mode 100644 index 00000000000..1cf5c65d9fe Binary files /dev/null and b/test/integration/render-tests/geojson/inconsistent-winding-order/expected.png differ diff --git a/test/integration/render-tests/geojson/inconsistent-winding-order/style.json b/test/integration/render-tests/geojson/inconsistent-winding-order/style.json new file mode 100644 index 00000000000..f07396f8365 --- /dev/null +++ b/test/integration/render-tests/geojson/inconsistent-winding-order/style.json @@ -0,0 +1,31 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 1, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/winding.geojson" + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "#EC8D8D", + "fill-antialias": false + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/inline-feature/expected.png b/test/integration/render-tests/geojson/inline-feature/expected.png new file mode 100644 index 00000000000..5ce3ce508be Binary files /dev/null and b/test/integration/render-tests/geojson/inline-feature/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-feature/style.json b/test/integration/render-tests/geojson/inline-feature/style.json new file mode 100644 index 00000000000..d0a1e74e33f --- /dev/null +++ b/test/integration/render-tests/geojson/inline-feature/style.json @@ -0,0 +1,737 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -77.066104, + 38.910203 + ], + [ + -77.066106, + 38.910321 + ], + [ + -77.066112, + 38.910758 + ], + [ + -77.065249, + 38.910775 + ], + [ + -77.065178, + 38.910793 + ], + [ + -77.065139, + 38.910804 + ], + [ + -77.064904, + 38.91036 + ], + [ + -77.064855, + 38.910268 + ], + [ + -77.064621, + 38.909825 + ], + [ + -77.06459, + 38.909766 + ], + [ + -77.064342, + 38.909298 + ], + [ + -77.064281, + 38.909182 + ], + [ + -77.064201, + 38.909226 + ], + [ + -77.064175, + 38.909235 + ], + [ + -77.064149, + 38.909241 + ], + [ + -77.064122, + 38.909244 + ], + [ + -77.06336, + 38.90926 + ], + [ + -77.061442, + 38.909288 + ], + [ + -77.060801, + 38.909297 + ], + [ + -77.059237, + 38.909315 + ], + [ + -77.058186, + 38.90933 + ], + [ + -77.057113, + 38.909343 + ], + [ + -77.055623, + 38.909368 + ], + [ + -77.054762, + 38.909377 + ], + [ + -77.053951, + 38.909389 + ], + [ + -77.053904, + 38.909393 + ], + [ + -77.053858, + 38.909399 + ], + [ + -77.053813, + 38.909408 + ], + [ + -77.052833, + 38.909635 + ], + [ + -77.052799, + 38.909642 + ], + [ + -77.052772, + 38.909645 + ], + [ + -77.052692, + 38.90965 + ], + [ + -77.052443, + 38.909649 + ], + [ + -77.05096, + 38.909639 + ], + [ + -77.050327, + 38.909634 + ], + [ + -77.049545, + 38.909631 + ], + [ + -77.049533, + 38.909635 + ], + [ + -77.049341, + 38.909635 + ], + [ + -77.048903, + 38.909635 + ], + [ + -77.048797, + 38.909634 + ], + [ + -77.04773, + 38.909639 + ], + [ + -77.046632, + 38.90964 + ], + [ + -77.045758, + 38.909641 + ], + [ + -77.044877, + 38.909643 + ], + [ + -77.044578, + 38.909641 + ], + [ + -77.044493, + 38.909635 + ], + [ + -77.04442, + 38.909626 + ], + [ + -77.044345, + 38.909608 + ], + [ + -77.044283, + 38.909578 + ], + [ + -77.044249, + 38.909541 + ], + [ + -77.044212, + 38.909496 + ], + [ + -77.044199, + 38.909458 + ], + [ + -77.044182, + 38.909421 + ], + [ + -77.044162, + 38.909385 + ], + [ + -77.04414, + 38.90935 + ], + [ + -77.044113, + 38.909313 + ], + [ + -77.044083, + 38.90928 + ], + [ + -77.044051, + 38.909247 + ], + [ + -77.044018, + 38.909165 + ], + [ + -77.044018, + 38.909117 + ], + [ + -77.044029, + 38.909071 + ], + [ + -77.044037, + 38.909038 + ], + [ + -77.044058, + 38.908981 + ], + [ + -77.043996, + 38.909021 + ], + [ + -77.043919, + 38.909052 + ], + [ + -77.043854, + 38.909067 + ], + [ + -77.043798, + 38.909073 + ], + [ + -77.043755, + 38.909075 + ], + [ + -77.043689, + 38.909056 + ], + [ + -77.043656, + 38.909048 + ], + [ + -77.04359, + 38.909036 + ], + [ + -77.043527, + 38.909028 + ], + [ + -77.043486, + 38.909026 + ], + [ + -77.043444, + 38.909025 + ], + [ + -77.043402, + 38.909026 + ], + [ + -77.043344, + 38.909029 + ], + [ + -77.043286, + 38.909037 + ], + [ + -77.043263, + 38.909041 + ], + [ + -77.04323, + 38.909047 + ], + [ + -77.043194, + 38.909056 + ], + [ + -77.043022, + 38.909118 + ], + [ + -77.042995, + 38.909132 + ], + [ + -77.04296, + 38.909151 + ], + [ + -77.042938, + 38.909165 + ], + [ + -77.042915, + 38.90918 + ], + [ + -77.042875, + 38.909209 + ], + [ + -77.04284, + 38.909239 + ], + [ + -77.042823, + 38.909255 + ], + [ + -77.042791, + 38.909288 + ], + [ + -77.042774, + 38.909307 + ], + [ + -77.042712, + 38.909315 + ], + [ + -77.042637, + 38.909322 + ], + [ + -77.042551, + 38.909317 + ], + [ + -77.042422, + 38.909299 + ], + [ + -77.041676, + 38.90903 + ], + [ + -77.039935, + 38.908425 + ], + [ + -77.038503, + 38.907925 + ], + [ + -77.037656, + 38.907632 + ], + [ + -77.037477, + 38.907534 + ], + [ + -77.037317, + 38.907438 + ], + [ + -77.037238, + 38.90739 + ], + [ + -77.037121, + 38.907315 + ], + [ + -77.036997, + 38.907233 + ], + [ + -77.036875, + 38.907137 + ], + [ + -77.036833, + 38.907094 + ], + [ + -77.036817, + 38.907081 + ], + [ + -77.036795, + 38.907068 + ], + [ + -77.036774, + 38.907058 + ], + [ + -77.036767, + 38.907052 + ], + [ + -77.036712, + 38.907034 + ], + [ + -77.03669, + 38.907028 + ], + [ + -77.036643, + 38.907022 + ], + [ + -77.03661, + 38.907021 + ], + [ + -77.03653, + 38.907021 + ], + [ + -77.036474, + 38.907021 + ], + [ + -77.03643, + 38.907025 + ], + [ + -77.03639, + 38.907033 + ], + [ + -77.036295, + 38.907058 + ], + [ + -77.036005, + 38.906995 + ], + [ + -77.035439, + 38.906869 + ], + [ + -77.035142, + 38.906757 + ], + [ + -77.035049, + 38.906725 + ], + [ + -77.0348, + 38.906641 + ], + [ + -77.034673, + 38.906594 + ], + [ + -77.034568, + 38.906558 + ], + [ + -77.034059, + 38.906382 + ], + [ + -77.033931, + 38.906338 + ], + [ + -77.032623, + 38.905883 + ], + [ + -77.03129, + 38.905426 + ], + [ + -77.030031, + 38.904982 + ], + [ + -77.029623, + 38.904835 + ], + [ + -77.028082, + 38.904304 + ], + [ + -77.027679, + 38.904167 + ], + [ + -77.02705, + 38.903949 + ], + [ + -77.026409, + 38.903729 + ], + [ + -77.025984, + 38.903579 + ], + [ + -77.024321, + 38.902997 + ], + [ + -77.024139, + 38.902954 + ], + [ + -77.023952, + 38.902954 + ], + [ + -77.023188, + 38.902956 + ], + [ + -77.022699, + 38.902958 + ], + [ + -77.021917, + 38.90296 + ], + [ + -77.021918, + 38.902902 + ], + [ + -77.021918, + 38.902521 + ], + [ + -77.019907, + 38.902521 + ], + [ + -77.018928, + 38.902521 + ], + [ + -77.016176, + 38.902519 + ], + [ + -77.015177, + 38.902518 + ], + [ + -77.013722, + 38.902514 + ], + [ + -77.012171, + 38.902516 + ], + [ + -77.011237, + 38.902516 + ], + [ + -77.009846, + 38.902515 + ], + [ + -77.009117, + 38.902514 + ], + [ + -77.009126, + 38.901346 + ], + [ + -77.00912, + 38.900203 + ], + [ + -77.009062, + 38.900203 + ], + [ + -77.008975, + 38.900203 + ], + [ + -77.008004, + 38.900198 + ], + [ + -77.00631, + 38.900193 + ], + [ + -77.005531, + 38.900197 + ], + [ + -77.002929, + 38.9002 + ], + [ + -77.002038, + 38.900203 + ], + [ + -77.001892, + 38.900203 + ], + [ + -77.000571, + 38.900205 + ], + [ + -76.999507, + 38.900204 + ], + [ + -76.998442, + 38.900204 + ], + [ + -76.998369, + 38.900204 + ], + [ + -76.996167, + 38.900205 + ], + [ + -76.994961, + 38.900203 + ], + [ + -76.994962, + 38.899748 + ], + [ + -76.994961, + 38.899626 + ], + [ + -76.994961, + 38.899367 + ], + [ + -76.994961, + 38.898908 + ], + [ + -76.994962, + 38.898447 + ] + ] + }, + "properties": { + "name": "P Street Northwest - Massachusetts Avenue Northwest" + } + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/inline-invalid/expected.png b/test/integration/render-tests/geojson/inline-invalid/expected.png new file mode 100644 index 00000000000..da62bb0db1d Binary files /dev/null and b/test/integration/render-tests/geojson/inline-invalid/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-invalid/style.json b/test/integration/render-tests/geojson/inline-invalid/style.json new file mode 100644 index 00000000000..64ab0777e91 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-invalid/style.json @@ -0,0 +1,31 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": 42 + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/inline-linestring-circle/expected.png b/test/integration/render-tests/geojson/inline-linestring-circle/expected.png new file mode 100644 index 00000000000..931bf9a4cb6 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-linestring-circle/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-linestring-circle/style.json b/test/integration/render-tests/geojson/inline-linestring-circle/style.json new file mode 100644 index 00000000000..febf41e83b9 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-linestring-circle/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-linestring-fill/expected.png b/test/integration/render-tests/geojson/inline-linestring-fill/expected.png new file mode 100644 index 00000000000..d44e8996e18 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-linestring-fill/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-linestring-fill/style.json b/test/integration/render-tests/geojson/inline-linestring-fill/style.json new file mode 100644 index 00000000000..857cbe5fa8e --- /dev/null +++ b/test/integration/render-tests/geojson/inline-linestring-fill/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "js": "current behavior is arbitrary", + "native": "current behavior is arbitrary" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-linestring-line/expected.png b/test/integration/render-tests/geojson/inline-linestring-line/expected.png new file mode 100644 index 00000000000..6af662bba55 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-linestring-line/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-linestring-line/style.json b/test/integration/render-tests/geojson/inline-linestring-line/style.json new file mode 100644 index 00000000000..009c250a5e3 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-linestring-line/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-linestring-symbol/expected.png b/test/integration/render-tests/geojson/inline-linestring-symbol/expected.png new file mode 100644 index 00000000000..1f9c66477af Binary files /dev/null and b/test/integration/render-tests/geojson/inline-linestring-symbol/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-linestring-symbol/style.json b/test/integration/render-tests/geojson/inline-linestring-symbol/style.json new file mode 100644 index 00000000000..0aa0db1b108 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-linestring-symbol/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true + } + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-malformed/expected.png b/test/integration/render-tests/geojson/inline-malformed/expected.png new file mode 100644 index 00000000000..da62bb0db1d Binary files /dev/null and b/test/integration/render-tests/geojson/inline-malformed/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-malformed/style.json b/test/integration/render-tests/geojson/inline-malformed/style.json new file mode 100644 index 00000000000..d412d286427 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-malformed/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Model", + "geometry": [ + -77.050327, + 38.909634 + ], + "properties": { + "name": "P Street Northwest - Massachusetts Avenue Northwest" + } + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/inline-point-circle/expected.png b/test/integration/render-tests/geojson/inline-point-circle/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/geojson/inline-point-circle/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-point-circle/style.json b/test/integration/render-tests/geojson/inline-point-circle/style.json new file mode 100644 index 00000000000..84ec6808b95 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-point-circle/style.json @@ -0,0 +1,29 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-point-fill/expected.png b/test/integration/render-tests/geojson/inline-point-fill/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-point-fill/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-point-fill/style.json b/test/integration/render-tests/geojson/inline-point-fill/style.json new file mode 100644 index 00000000000..572f53e5f92 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-point-fill/style.json @@ -0,0 +1,29 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-point-line/expected.png b/test/integration/render-tests/geojson/inline-point-line/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-point-line/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-point-line/style.json b/test/integration/render-tests/geojson/inline-point-line/style.json new file mode 100644 index 00000000000..ad39c64f5bb --- /dev/null +++ b/test/integration/render-tests/geojson/inline-point-line/style.json @@ -0,0 +1,29 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-point-symbol/expected.png b/test/integration/render-tests/geojson/inline-point-symbol/expected.png new file mode 100644 index 00000000000..58f91cc82a6 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-point-symbol/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-point-symbol/style.json b/test/integration/render-tests/geojson/inline-point-symbol/style.json new file mode 100644 index 00000000000..c6a85f1869c --- /dev/null +++ b/test/integration/render-tests/geojson/inline-point-symbol/style.json @@ -0,0 +1,32 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-polygon-circle/expected.png b/test/integration/render-tests/geojson/inline-polygon-circle/expected.png new file mode 100644 index 00000000000..8b28765ff12 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-polygon-circle/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-polygon-circle/style.json b/test/integration/render-tests/geojson/inline-polygon-circle/style.json new file mode 100644 index 00000000000..e94d70f36df --- /dev/null +++ b/test/integration/render-tests/geojson/inline-polygon-circle/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-polygon-fill/expected.png b/test/integration/render-tests/geojson/inline-polygon-fill/expected.png new file mode 100644 index 00000000000..791d5169bd8 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-polygon-fill/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-polygon-fill/style.json b/test/integration/render-tests/geojson/inline-polygon-fill/style.json new file mode 100644 index 00000000000..42723a5d4c3 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-polygon-fill/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-polygon-line/expected.png b/test/integration/render-tests/geojson/inline-polygon-line/expected.png new file mode 100644 index 00000000000..167ae112050 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-polygon-line/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-polygon-line/style.json b/test/integration/render-tests/geojson/inline-polygon-line/style.json new file mode 100644 index 00000000000..0a5b8ed2d19 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-polygon-line/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/geojson/inline-polygon-symbol/expected.png b/test/integration/render-tests/geojson/inline-polygon-symbol/expected.png new file mode 100644 index 00000000000..58f91cc82a6 Binary files /dev/null and b/test/integration/render-tests/geojson/inline-polygon-symbol/expected.png differ diff --git a/test/integration/render-tests/geojson/inline-polygon-symbol/style.json b/test/integration/render-tests/geojson/inline-polygon-symbol/style.json new file mode 100644 index 00000000000..a71588393c5 --- /dev/null +++ b/test/integration/render-tests/geojson/inline-polygon-symbol/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "behavior needs reconciliation with gl-js" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true + } + } + ] +} diff --git a/test/integration/render-tests/geojson/missing/expected.png b/test/integration/render-tests/geojson/missing/expected.png new file mode 100644 index 00000000000..da62bb0db1d Binary files /dev/null and b/test/integration/render-tests/geojson/missing/expected.png differ diff --git a/test/integration/render-tests/geojson/missing/style.json b/test/integration/render-tests/geojson/missing/style.json new file mode 100644 index 00000000000..856abfb6196 --- /dev/null +++ b/test/integration/render-tests/geojson/missing/style.json @@ -0,0 +1,30 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson" + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/geojson/reparse-overscaled/expected.png b/test/integration/render-tests/geojson/reparse-overscaled/expected.png new file mode 100644 index 00000000000..46b03bc1450 Binary files /dev/null and b/test/integration/render-tests/geojson/reparse-overscaled/expected.png differ diff --git a/test/integration/render-tests/geojson/reparse-overscaled/style.json b/test/integration/render-tests/geojson/reparse-overscaled/style.json new file mode 100644 index 00000000000..c27a1d2ba05 --- /dev/null +++ b/test/integration/render-tests/geojson/reparse-overscaled/style.json @@ -0,0 +1,32 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -77.0424, + 38.90924 + ], + "zoom": 19, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/feature.geojson" + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "minzoom": 19, + "paint": { + "line-color": "#EC8D8D", + "line-width": 4 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-color/default/expected.png b/test/integration/render-tests/icon-color/default/expected.png new file mode 100644 index 00000000000..0cd32ecc454 Binary files /dev/null and b/test/integration/render-tests/icon-color/default/expected.png differ diff --git a/test/integration/render-tests/icon-color/default/style.json b/test/integration/render-tests/icon-color/default/style.json new file mode 100644 index 00000000000..195b84d2ae0 --- /dev/null +++ b/test/integration/render-tests/icon-color/default/style.json @@ -0,0 +1,32 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-color/function/expected.png b/test/integration/render-tests/icon-color/function/expected.png new file mode 100644 index 00000000000..6eb70a82c3f Binary files /dev/null and b/test/integration/render-tests/icon-color/function/expected.png differ diff --git a/test/integration/render-tests/icon-color/function/style.json b/test/integration/render-tests/icon-color/function/style.json new file mode 100644 index 00000000000..6443a326642 --- /dev/null +++ b/test/integration/render-tests/icon-color/function/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-color": { + "stops": [ + [ + 16, + "blue" + ], + [ + 17, + "red" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-color/literal/expected.png b/test/integration/render-tests/icon-color/literal/expected.png new file mode 100644 index 00000000000..bbc2b7ef5f8 Binary files /dev/null and b/test/integration/render-tests/icon-color/literal/expected.png differ diff --git a/test/integration/render-tests/icon-color/literal/style.json b/test/integration/render-tests/icon-color/literal/style.json new file mode 100644 index 00000000000..6f2cd053107 --- /dev/null +++ b/test/integration/render-tests/icon-color/literal/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-blur/default/expected.png b/test/integration/render-tests/icon-halo-blur/default/expected.png new file mode 100644 index 00000000000..f52550dd25c Binary files /dev/null and b/test/integration/render-tests/icon-halo-blur/default/expected.png differ diff --git a/test/integration/render-tests/icon-halo-blur/default/style.json b/test/integration/render-tests/icon-halo-blur/default/style.json new file mode 100644 index 00000000000..6af45978897 --- /dev/null +++ b/test/integration/render-tests/icon-halo-blur/default/style.json @@ -0,0 +1,36 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-color": "blue", + "icon-halo-width": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-blur/function/expected.png b/test/integration/render-tests/icon-halo-blur/function/expected.png new file mode 100644 index 00000000000..3a8f89b93d5 Binary files /dev/null and b/test/integration/render-tests/icon-halo-blur/function/expected.png differ diff --git a/test/integration/render-tests/icon-halo-blur/function/style.json b/test/integration/render-tests/icon-halo-blur/function/style.json new file mode 100644 index 00000000000..50d5d55e5a3 --- /dev/null +++ b/test/integration/render-tests/icon-halo-blur/function/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-color": "blue", + "icon-halo-width": 2, + "icon-halo-blur": { + "stops": [ + [ + 16, + 4 + ], + [ + 17, + 5 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-blur/literal/expected.png b/test/integration/render-tests/icon-halo-blur/literal/expected.png new file mode 100644 index 00000000000..ec62eb4092a Binary files /dev/null and b/test/integration/render-tests/icon-halo-blur/literal/expected.png differ diff --git a/test/integration/render-tests/icon-halo-blur/literal/style.json b/test/integration/render-tests/icon-halo-blur/literal/style.json new file mode 100644 index 00000000000..14cbc84fa57 --- /dev/null +++ b/test/integration/render-tests/icon-halo-blur/literal/style.json @@ -0,0 +1,37 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-color": "blue", + "icon-halo-width": 2, + "icon-halo-blur": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-color/default/expected.png b/test/integration/render-tests/icon-halo-color/default/expected.png new file mode 100644 index 00000000000..0cd32ecc454 Binary files /dev/null and b/test/integration/render-tests/icon-halo-color/default/expected.png differ diff --git a/test/integration/render-tests/icon-halo-color/default/style.json b/test/integration/render-tests/icon-halo-color/default/style.json new file mode 100644 index 00000000000..dfbb7dbb32c --- /dev/null +++ b/test/integration/render-tests/icon-halo-color/default/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-width": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-color/function/expected.png b/test/integration/render-tests/icon-halo-color/function/expected.png new file mode 100644 index 00000000000..f52550dd25c Binary files /dev/null and b/test/integration/render-tests/icon-halo-color/function/expected.png differ diff --git a/test/integration/render-tests/icon-halo-color/function/style.json b/test/integration/render-tests/icon-halo-color/function/style.json new file mode 100644 index 00000000000..521b763808f --- /dev/null +++ b/test/integration/render-tests/icon-halo-color/function/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-width": 2, + "icon-halo-color": { + "stops": [ + [ + 16, + "blue" + ], + [ + 17, + "red" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-color/literal/expected.png b/test/integration/render-tests/icon-halo-color/literal/expected.png new file mode 100644 index 00000000000..e95c9e5d55a Binary files /dev/null and b/test/integration/render-tests/icon-halo-color/literal/expected.png differ diff --git a/test/integration/render-tests/icon-halo-color/literal/style.json b/test/integration/render-tests/icon-halo-color/literal/style.json new file mode 100644 index 00000000000..9c92b9b177e --- /dev/null +++ b/test/integration/render-tests/icon-halo-color/literal/style.json @@ -0,0 +1,36 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-width": 2, + "icon-halo-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-color/multiply/expected.png b/test/integration/render-tests/icon-halo-color/multiply/expected.png new file mode 100644 index 00000000000..a2849527ac7 Binary files /dev/null and b/test/integration/render-tests/icon-halo-color/multiply/expected.png differ diff --git a/test/integration/render-tests/icon-halo-color/multiply/style.json b/test/integration/render-tests/icon-halo-color/multiply/style.json new file mode 100644 index 00000000000..06755a5073a --- /dev/null +++ b/test/integration/render-tests/icon-halo-color/multiply/style.json @@ -0,0 +1,37 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-width": 2, + "icon-halo-color": "rgba(255,0,0,0.5)", + "icon-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-color/opacity/expected.png b/test/integration/render-tests/icon-halo-color/opacity/expected.png new file mode 100644 index 00000000000..e28a4b65e93 Binary files /dev/null and b/test/integration/render-tests/icon-halo-color/opacity/expected.png differ diff --git a/test/integration/render-tests/icon-halo-color/opacity/style.json b/test/integration/render-tests/icon-halo-color/opacity/style.json new file mode 100644 index 00000000000..adb4d345eb1 --- /dev/null +++ b/test/integration/render-tests/icon-halo-color/opacity/style.json @@ -0,0 +1,37 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-width": 2, + "icon-halo-color": "rgba(255,0,0,1)", + "icon-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-color/transparent/expected.png b/test/integration/render-tests/icon-halo-color/transparent/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/icon-halo-color/transparent/expected.png differ diff --git a/test/integration/render-tests/icon-halo-color/transparent/style.json b/test/integration/render-tests/icon-halo-color/transparent/style.json new file mode 100644 index 00000000000..d2108d9dda0 --- /dev/null +++ b/test/integration/render-tests/icon-halo-color/transparent/style.json @@ -0,0 +1,37 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-width": 2, + "icon-halo-color": "rgba(255,0,0,1)", + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-width/default/expected.png b/test/integration/render-tests/icon-halo-width/default/expected.png new file mode 100644 index 00000000000..0cd32ecc454 Binary files /dev/null and b/test/integration/render-tests/icon-halo-width/default/expected.png differ diff --git a/test/integration/render-tests/icon-halo-width/default/style.json b/test/integration/render-tests/icon-halo-width/default/style.json new file mode 100644 index 00000000000..7e05a1484b7 --- /dev/null +++ b/test/integration/render-tests/icon-halo-width/default/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-width/function/expected.png b/test/integration/render-tests/icon-halo-width/function/expected.png new file mode 100644 index 00000000000..7c6d4bb5b20 Binary files /dev/null and b/test/integration/render-tests/icon-halo-width/function/expected.png differ diff --git a/test/integration/render-tests/icon-halo-width/function/style.json b/test/integration/render-tests/icon-halo-width/function/style.json new file mode 100644 index 00000000000..dc0f1886943 --- /dev/null +++ b/test/integration/render-tests/icon-halo-width/function/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-color": "blue", + "icon-halo-width": { + "stops": [ + [ + 16, + 4 + ], + [ + 17, + 5 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-halo-width/literal/expected.png b/test/integration/render-tests/icon-halo-width/literal/expected.png new file mode 100644 index 00000000000..f52550dd25c Binary files /dev/null and b/test/integration/render-tests/icon-halo-width/literal/expected.png differ diff --git a/test/integration/render-tests/icon-halo-width/literal/style.json b/test/integration/render-tests/icon-halo-width/literal/style.json new file mode 100644 index 00000000000..6af45978897 --- /dev/null +++ b/test/integration/render-tests/icon-halo-width/literal/style.json @@ -0,0 +1,36 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-halo-color": "blue", + "icon-halo-width": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-offset/literal/expected.png b/test/integration/render-tests/icon-offset/literal/expected.png new file mode 100644 index 00000000000..6c24c98d442 Binary files /dev/null and b/test/integration/render-tests/icon-offset/literal/expected.png differ diff --git a/test/integration/render-tests/icon-offset/literal/style.json b/test/integration/render-tests/icon-offset/literal/style.json new file mode 100644 index 00000000000..5a1064be79e --- /dev/null +++ b/test/integration/render-tests/icon-offset/literal/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-offset": [ + 5, + 5 + ] + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-offset/property-function/expected.png b/test/integration/render-tests/icon-offset/property-function/expected.png new file mode 100644 index 00000000000..0bf4543441e Binary files /dev/null and b/test/integration/render-tests/icon-offset/property-function/expected.png differ diff --git a/test/integration/render-tests/icon-offset/property-function/style.json b/test/integration/render-tests/icon-offset/property-function/style.json new file mode 100644 index 00000000000..2f2f5acddcb --- /dev/null +++ b/test/integration/render-tests/icon-offset/property-function/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-offset": { + "base": 1, + "stops": [ + [ + 0, + [ + 0, + 10 + ] + ], + [ + 50, + [ + 20, + 10 + ] + ] + ], + "property": "localrank" + } + } + } + ] +} diff --git a/test/integration/render-tests/icon-offset/zoom-and-property-function/expected.png b/test/integration/render-tests/icon-offset/zoom-and-property-function/expected.png new file mode 100644 index 00000000000..c63833bb6c0 Binary files /dev/null and b/test/integration/render-tests/icon-offset/zoom-and-property-function/expected.png differ diff --git a/test/integration/render-tests/icon-offset/zoom-and-property-function/style.json b/test/integration/render-tests/icon-offset/zoom-and-property-function/style.json new file mode 100644 index 00000000000..851096272bd --- /dev/null +++ b/test/integration/render-tests/icon-offset/zoom-and-property-function/style.json @@ -0,0 +1,101 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-offset": { + "base": 1, + "stops": [ + [ + { + "zoom": 13.9, + "value": 0 + }, + [ + 0, + 10 + ] + ], + [ + { + "zoom": 13.9, + "value": 50 + }, + [ + 20, + 10 + ] + ], + [ + { + "zoom": 14.2, + "value": 0 + }, + [ + 0, + 25 + ] + ], + [ + { + "zoom": 14.2, + "value": 50 + }, + [ + 50, + 25 + ] + ] + ], + "property": "localrank" + } + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/icon-opacity/default/expected.png b/test/integration/render-tests/icon-opacity/default/expected.png new file mode 100644 index 00000000000..98bc19f1abc Binary files /dev/null and b/test/integration/render-tests/icon-opacity/default/expected.png differ diff --git a/test/integration/render-tests/icon-opacity/default/style.json b/test/integration/render-tests/icon-opacity/default/style.json new file mode 100644 index 00000000000..d6b9029466d --- /dev/null +++ b/test/integration/render-tests/icon-opacity/default/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "building-12" + }, + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-opacity/function/expected.png b/test/integration/render-tests/icon-opacity/function/expected.png new file mode 100644 index 00000000000..fb1992ae5bc Binary files /dev/null and b/test/integration/render-tests/icon-opacity/function/expected.png differ diff --git a/test/integration/render-tests/icon-opacity/function/style.json b/test/integration/render-tests/icon-opacity/function/style.json new file mode 100644 index 00000000000..f7c7da50c07 --- /dev/null +++ b/test/integration/render-tests/icon-opacity/function/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "building-12" + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 17, + 0.6 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-opacity/icon-only/expected.png b/test/integration/render-tests/icon-opacity/icon-only/expected.png new file mode 100644 index 00000000000..98bc19f1abc Binary files /dev/null and b/test/integration/render-tests/icon-opacity/icon-only/expected.png differ diff --git a/test/integration/render-tests/icon-opacity/icon-only/style.json b/test/integration/render-tests/icon-opacity/icon-only/style.json new file mode 100644 index 00000000000..2c4d624291c --- /dev/null +++ b/test/integration/render-tests/icon-opacity/icon-only/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-only", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "building-12", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-opacity/literal/expected.png b/test/integration/render-tests/icon-opacity/literal/expected.png new file mode 100644 index 00000000000..7ab071b8b8b Binary files /dev/null and b/test/integration/render-tests/icon-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/icon-opacity/literal/style.json b/test/integration/render-tests/icon-opacity/literal/style.json new file mode 100644 index 00000000000..a3a0a37b34a --- /dev/null +++ b/test/integration/render-tests/icon-opacity/literal/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "building-12" + }, + "paint": { + "icon-opacity": 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-opacity/text-and-icon/expected.png b/test/integration/render-tests/icon-opacity/text-and-icon/expected.png new file mode 100644 index 00000000000..278715889f3 Binary files /dev/null and b/test/integration/render-tests/icon-opacity/text-and-icon/expected.png differ diff --git a/test/integration/render-tests/icon-opacity/text-and-icon/style.json b/test/integration/render-tests/icon-opacity/text-and-icon/style.json new file mode 100644 index 00000000000..0f6908bba20 --- /dev/null +++ b/test/integration/render-tests/icon-opacity/text-and-icon/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text-and-icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "building-12", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-opacity/text-only/expected.png b/test/integration/render-tests/icon-opacity/text-only/expected.png new file mode 100644 index 00000000000..a8e51773b34 Binary files /dev/null and b/test/integration/render-tests/icon-opacity/text-only/expected.png differ diff --git a/test/integration/render-tests/icon-opacity/text-only/style.json b/test/integration/render-tests/icon-opacity/text-only/style.json new file mode 100644 index 00000000000..062e60f1150 --- /dev/null +++ b/test/integration/render-tests/icon-opacity/text-only/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text-only", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "building-12", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "icon-opacity": 0, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-pixelratio-mismatch/default/expected.png b/test/integration/render-tests/icon-pixelratio-mismatch/default/expected.png new file mode 100644 index 00000000000..6b4b416b67e Binary files /dev/null and b/test/integration/render-tests/icon-pixelratio-mismatch/default/expected.png differ diff --git a/test/integration/render-tests/icon-pixelratio-mismatch/default/style.json b/test/integration/render-tests/icon-pixelratio-mismatch/default/style.json new file mode 100644 index 00000000000..e3de2b695a5 --- /dev/null +++ b/test/integration/render-tests/icon-pixelratio-mismatch/default/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/3164" + }, + "pixelRatio": 0.5, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-default", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "generic_icon" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotate/literal/expected.png b/test/integration/render-tests/icon-rotate/literal/expected.png new file mode 100644 index 00000000000..b4b1352ee2c Binary files /dev/null and b/test/integration/render-tests/icon-rotate/literal/expected.png differ diff --git a/test/integration/render-tests/icon-rotate/literal/style.json b/test/integration/render-tests/icon-rotate/literal/style.json new file mode 100644 index 00000000000..4a120148dbd --- /dev/null +++ b/test/integration/render-tests/icon-rotate/literal/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-rotate": 25 + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotate/property-function/expected.png b/test/integration/render-tests/icon-rotate/property-function/expected.png new file mode 100644 index 00000000000..da1b5f0755d Binary files /dev/null and b/test/integration/render-tests/icon-rotate/property-function/expected.png differ diff --git a/test/integration/render-tests/icon-rotate/property-function/style.json b/test/integration/render-tests/icon-rotate/property-function/style.json new file mode 100644 index 00000000000..b09a41cb132 --- /dev/null +++ b/test/integration/render-tests/icon-rotate/property-function/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": ["has", "maki"], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-rotate": { + "stops": [ + [ + 0, + 0 + ], + [ + 50, + 360 + ] + ], + "property": "localrank" + } + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-line/expected.png b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-line/expected.png new file mode 100644 index 00000000000..3b5dc528ee2 Binary files /dev/null and b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-line/expected.png differ diff --git a/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-line/style.json b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-line/style.json new file mode 100644 index 00000000000..07e4c34b645 --- /dev/null +++ b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-line/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -20, + 0 + ], + [ + 20, + 0 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "icon-rotation-alignment": "auto", + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-point/expected.png b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-point/expected.png new file mode 100644 index 00000000000..d14c291ff06 Binary files /dev/null and b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-point/expected.png differ diff --git a/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-point/style.json b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-point/style.json new file mode 100644 index 00000000000..e288eaf10ac --- /dev/null +++ b/test/integration/render-tests/icon-rotation-alignment/auto-symbol-placement-point/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-rotation-alignment": "auto", + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-line/expected.png b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-line/expected.png new file mode 100644 index 00000000000..3b5dc528ee2 Binary files /dev/null and b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-line/expected.png differ diff --git a/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-line/style.json b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-line/style.json new file mode 100644 index 00000000000..1943dbb22b5 --- /dev/null +++ b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-line/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -20, + 0 + ], + [ + 20, + 0 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "icon-rotation-alignment": "map", + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-point/expected.png b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-point/expected.png new file mode 100644 index 00000000000..e60858e984b Binary files /dev/null and b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-point/expected.png differ diff --git a/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-point/style.json b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-point/style.json new file mode 100644 index 00000000000..6c41bc510cf --- /dev/null +++ b/test/integration/render-tests/icon-rotation-alignment/map-symbol-placement-point/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-rotation-alignment": "map", + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-line/expected.png b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-line/expected.png new file mode 100644 index 00000000000..458d35010d6 Binary files /dev/null and b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-line/expected.png differ diff --git a/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-line/style.json b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-line/style.json new file mode 100644 index 00000000000..4ff75482137 --- /dev/null +++ b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-line/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -20, + 0 + ], + [ + 20, + 0 + ] + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "icon-rotation-alignment": "viewport", + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-point/expected.png b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-point/expected.png new file mode 100644 index 00000000000..d14c291ff06 Binary files /dev/null and b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-point/expected.png differ diff --git a/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-point/style.json b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-point/style.json new file mode 100644 index 00000000000..3567ca88d81 --- /dev/null +++ b/test/integration/render-tests/icon-rotation-alignment/viewport-symbol-placement-point/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-rotation-alignment": "viewport", + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-size/default/expected.png b/test/integration/render-tests/icon-size/default/expected.png new file mode 100644 index 00000000000..b557018d6ca Binary files /dev/null and b/test/integration/render-tests/icon-size/default/expected.png differ diff --git a/test/integration/render-tests/icon-size/default/style.json b/test/integration/render-tests/icon-size/default/style.json new file mode 100644 index 00000000000..6db45c7b36b --- /dev/null +++ b/test/integration/render-tests/icon-size/default/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-default", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "generic_icon" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-size/function/expected.png b/test/integration/render-tests/icon-size/function/expected.png new file mode 100644 index 00000000000..772999d7e4e Binary files /dev/null and b/test/integration/render-tests/icon-size/function/expected.png differ diff --git a/test/integration/render-tests/icon-size/function/style.json b/test/integration/render-tests/icon-size/function/style.json new file mode 100644 index 00000000000..6b466edbba7 --- /dev/null +++ b/test/integration/render-tests/icon-size/function/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-function", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "generic_icon", + "icon-size": { + "stops": [ + [ + 16, + 4 + ], + [ + 17, + 5 + ] + ] + } + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-size/literal/expected.png b/test/integration/render-tests/icon-size/literal/expected.png new file mode 100644 index 00000000000..8bea7dffc6e Binary files /dev/null and b/test/integration/render-tests/icon-size/literal/expected.png differ diff --git a/test/integration/render-tests/icon-size/literal/style.json b/test/integration/render-tests/icon-size/literal/style.json new file mode 100644 index 00000000000..b0c24854bf1 --- /dev/null +++ b/test/integration/render-tests/icon-size/literal/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "generic_icon", + "icon-size": 2 + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/both-padding/expected.png b/test/integration/render-tests/icon-text-fit/both-padding/expected.png new file mode 100644 index 00000000000..8a34b0be422 Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/both-padding/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/both-padding/style.json b/test/integration/render-tests/icon-text-fit/both-padding/style.json new file mode 100644 index 00000000000..896e63faf7a --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/both-padding/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/5602" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "both", + "icon-text-fit-padding": [ + 5, + 10, + 5, + 10 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/both/expected.png b/test/integration/render-tests/icon-text-fit/both/expected.png new file mode 100644 index 00000000000..924f5a2fbe1 Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/both/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/both/style.json b/test/integration/render-tests/icon-text-fit/both/style.json new file mode 100644 index 00000000000..c8bf5685d82 --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/both/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/5602" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "both" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/height-padding/expected.png b/test/integration/render-tests/icon-text-fit/height-padding/expected.png new file mode 100644 index 00000000000..e1caf058d9c Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/height-padding/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/height-padding/style.json b/test/integration/render-tests/icon-text-fit/height-padding/style.json new file mode 100644 index 00000000000..fe1d98bf618 --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/height-padding/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "height", + "icon-text-fit-padding": [ + 5, + 10, + 5, + 10 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/height/expected.png b/test/integration/render-tests/icon-text-fit/height/expected.png new file mode 100644 index 00000000000..09f7a9f6b62 Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/height/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/height/style.json b/test/integration/render-tests/icon-text-fit/height/style.json new file mode 100644 index 00000000000..a18f4318747 --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/height/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/5602" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "height" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/none/expected.png b/test/integration/render-tests/icon-text-fit/none/expected.png new file mode 100644 index 00000000000..ff25d6e65df Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/none/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/none/style.json b/test/integration/render-tests/icon-text-fit/none/style.json new file mode 100644 index 00000000000..fa87941aaa4 --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/none/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "none" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/placement-line/expected.png b/test/integration/render-tests/icon-text-fit/placement-line/expected.png new file mode 100644 index 00000000000..970898a2ab0 Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/placement-line/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/placement-line/style.json b/test/integration/render-tests/icon-text-fit/placement-line/style.json new file mode 100644 index 00000000000..a0349275aba --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/placement-line/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "allowed": 0.0005 + } + }, + "center": [ + 13.417, + 52.502 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "text-field": "{name}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "label", + "icon-text-fit": "both", + "icon-text-fit-padding": [ + 5, + 10, + 5, + 10 + ] + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/icon-text-fit/width-padding/expected.png b/test/integration/render-tests/icon-text-fit/width-padding/expected.png new file mode 100644 index 00000000000..9e44b50ef4b Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/width-padding/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/width-padding/style.json b/test/integration/render-tests/icon-text-fit/width-padding/style.json new file mode 100644 index 00000000000..1b369a216e4 --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/width-padding/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/5602" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "width", + "icon-text-fit-padding": [ + 5, + 10, + 5, + 10 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-text-fit/width/expected.png b/test/integration/render-tests/icon-text-fit/width/expected.png new file mode 100644 index 00000000000..9817ec2c77b Binary files /dev/null and b/test/integration/render-tests/icon-text-fit/width/expected.png differ diff --git a/test/integration/render-tests/icon-text-fit/width/style.json b/test/integration/render-tests/icon-text-fit/width/style.json new file mode 100644 index 00000000000..e3f1d995cec --- /dev/null +++ b/test/integration/render-tests/icon-text-fit/width/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/5602" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/icon-text-fit", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "icon-image": "label", + "icon-text-fit": "width" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-translate-anchor/map/expected.png b/test/integration/render-tests/icon-translate-anchor/map/expected.png new file mode 100644 index 00000000000..77ceb1201ba Binary files /dev/null and b/test/integration/render-tests/icon-translate-anchor/map/expected.png differ diff --git a/test/integration/render-tests/icon-translate-anchor/map/style.json b/test/integration/render-tests/icon-translate-anchor/map/style.json new file mode 100644 index 00000000000..d9283b19a38 --- /dev/null +++ b/test/integration/render-tests/icon-translate-anchor/map/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12" + }, + "paint": { + "icon-translate": [ + 10, + 10 + ], + "icon-translate-anchor": "map" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-translate-anchor/viewport/expected.png b/test/integration/render-tests/icon-translate-anchor/viewport/expected.png new file mode 100644 index 00000000000..1b0e9ee1693 Binary files /dev/null and b/test/integration/render-tests/icon-translate-anchor/viewport/expected.png differ diff --git a/test/integration/render-tests/icon-translate-anchor/viewport/style.json b/test/integration/render-tests/icon-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..f9da241318b --- /dev/null +++ b/test/integration/render-tests/icon-translate-anchor/viewport/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12" + }, + "paint": { + "icon-translate": [ + 10, + 10 + ], + "icon-translate-anchor": "viewport" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-translate/default/expected.png b/test/integration/render-tests/icon-translate/default/expected.png new file mode 100644 index 00000000000..b139993bb80 Binary files /dev/null and b/test/integration/render-tests/icon-translate/default/expected.png differ diff --git a/test/integration/render-tests/icon-translate/default/style.json b/test/integration/render-tests/icon-translate/default/style.json new file mode 100644 index 00000000000..1ca89d38d3d --- /dev/null +++ b/test/integration/render-tests/icon-translate/default/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12" + }, + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-translate/function/expected.png b/test/integration/render-tests/icon-translate/function/expected.png new file mode 100644 index 00000000000..33caab63fa4 Binary files /dev/null and b/test/integration/render-tests/icon-translate/function/expected.png differ diff --git a/test/integration/render-tests/icon-translate/function/style.json b/test/integration/render-tests/icon-translate/function/style.json new file mode 100644 index 00000000000..11400b04561 --- /dev/null +++ b/test/integration/render-tests/icon-translate/function/style.json @@ -0,0 +1,69 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12" + }, + "paint": { + "icon-translate": { + "stops": [ + [ + 16, + [ + 15, + 15 + ] + ], + [ + 17, + [ + 20, + 20 + ] + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-translate/literal/expected.png b/test/integration/render-tests/icon-translate/literal/expected.png new file mode 100644 index 00000000000..6c24c98d442 Binary files /dev/null and b/test/integration/render-tests/icon-translate/literal/expected.png differ diff --git a/test/integration/render-tests/icon-translate/literal/style.json b/test/integration/render-tests/icon-translate/literal/style.json new file mode 100644 index 00000000000..b1f6c9f3e07 --- /dev/null +++ b/test/integration/render-tests/icon-translate/literal/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12" + }, + "paint": { + "icon-translate": [ + 5, + 5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-visibility/none/expected.png b/test/integration/render-tests/icon-visibility/none/expected.png new file mode 100644 index 00000000000..5308b74aacb Binary files /dev/null and b/test/integration/render-tests/icon-visibility/none/expected.png differ diff --git a/test/integration/render-tests/icon-visibility/none/style.json b/test/integration/render-tests/icon-visibility/none/style.json new file mode 100644 index 00000000000..eb85058ecca --- /dev/null +++ b/test/integration/render-tests/icon-visibility/none/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-none", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-rotation-alignment": "viewport", + "visibility": "none" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/icon-visibility/visible/expected.png b/test/integration/render-tests/icon-visibility/visible/expected.png new file mode 100644 index 00000000000..b139993bb80 Binary files /dev/null and b/test/integration/render-tests/icon-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/icon-visibility/visible/style.json b/test/integration/render-tests/icon-visibility/visible/style.json new file mode 100644 index 00000000000..ebc898d4c60 --- /dev/null +++ b/test/integration/render-tests/icon-visibility/visible/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon-visible", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "{maki}-12", + "icon-rotation-alignment": "viewport", + "visibility": "visible" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/default/expected.png b/test/integration/render-tests/image/default/expected.png new file mode 100644 index 00000000000..66527ed23d8 Binary files /dev/null and b/test/integration/render-tests/image/default/expected.png differ diff --git a/test/integration/render-tests/image/default/style.json b/test/integration/render-tests/image/default/style.json new file mode 100644 index 00000000000..e66b8aa4dd5 --- /dev/null +++ b/test/integration/render-tests/image/default/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/raster-brightness/expected.png b/test/integration/render-tests/image/raster-brightness/expected.png new file mode 100644 index 00000000000..dc11255b6a2 Binary files /dev/null and b/test/integration/render-tests/image/raster-brightness/expected.png differ diff --git a/test/integration/render-tests/image/raster-brightness/style.json b/test/integration/render-tests/image/raster-brightness/style.json new file mode 100644 index 00000000000..3b690374a26 --- /dev/null +++ b/test/integration/render-tests/image/raster-brightness/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0, + "raster-brightness-min": 0.2, + "raster-brightness-max": 0.8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/raster-contrast/expected.png b/test/integration/render-tests/image/raster-contrast/expected.png new file mode 100644 index 00000000000..d38adafdb91 Binary files /dev/null and b/test/integration/render-tests/image/raster-contrast/expected.png differ diff --git a/test/integration/render-tests/image/raster-contrast/style.json b/test/integration/render-tests/image/raster-contrast/style.json new file mode 100644 index 00000000000..5bea9675398 --- /dev/null +++ b/test/integration/render-tests/image/raster-contrast/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0, + "raster-contrast": 0.2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/raster-hue-rotate/expected.png b/test/integration/render-tests/image/raster-hue-rotate/expected.png new file mode 100644 index 00000000000..4dec66238c9 Binary files /dev/null and b/test/integration/render-tests/image/raster-hue-rotate/expected.png differ diff --git a/test/integration/render-tests/image/raster-hue-rotate/style.json b/test/integration/render-tests/image/raster-hue-rotate/style.json new file mode 100644 index 00000000000..8b6ab96ae63 --- /dev/null +++ b/test/integration/render-tests/image/raster-hue-rotate/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0, + "raster-hue-rotate": 90 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/raster-opacity/expected.png b/test/integration/render-tests/image/raster-opacity/expected.png new file mode 100644 index 00000000000..ed4d03533c2 Binary files /dev/null and b/test/integration/render-tests/image/raster-opacity/expected.png differ diff --git a/test/integration/render-tests/image/raster-opacity/style.json b/test/integration/render-tests/image/raster-opacity/style.json new file mode 100644 index 00000000000..8ad2820021e --- /dev/null +++ b/test/integration/render-tests/image/raster-opacity/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0, + "raster-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/raster-saturation/expected.png b/test/integration/render-tests/image/raster-saturation/expected.png new file mode 100644 index 00000000000..de70b12e1f7 Binary files /dev/null and b/test/integration/render-tests/image/raster-saturation/expected.png differ diff --git a/test/integration/render-tests/image/raster-saturation/style.json b/test/integration/render-tests/image/raster-saturation/style.json new file mode 100644 index 00000000000..739330895ee --- /dev/null +++ b/test/integration/render-tests/image/raster-saturation/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0, + "raster-saturation": 0.2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/image/raster-visibility/expected.png b/test/integration/render-tests/image/raster-visibility/expected.png new file mode 100644 index 00000000000..66527ed23d8 Binary files /dev/null and b/test/integration/render-tests/image/raster-visibility/expected.png differ diff --git a/test/integration/render-tests/image/raster-visibility/style.json b/test/integration/render-tests/image/raster-visibility/style.json new file mode 100644 index 00000000000..e66b8aa4dd5 --- /dev/null +++ b/test/integration/render-tests/image/raster-visibility/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-blur/default/expected.png b/test/integration/render-tests/line-blur/default/expected.png new file mode 100644 index 00000000000..391600e5294 Binary files /dev/null and b/test/integration/render-tests/line-blur/default/expected.png differ diff --git a/test/integration/render-tests/line-blur/default/style.json b/test/integration/render-tests/line-blur/default/style.json new file mode 100644 index 00000000000..2909fedc77d --- /dev/null +++ b/test/integration/render-tests/line-blur/default/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-blur/function/expected.png b/test/integration/render-tests/line-blur/function/expected.png new file mode 100644 index 00000000000..aa7e7bc963d Binary files /dev/null and b/test/integration/render-tests/line-blur/function/expected.png differ diff --git a/test/integration/render-tests/line-blur/function/style.json b/test/integration/render-tests/line-blur/function/style.json new file mode 100644 index 00000000000..3047aafa026 --- /dev/null +++ b/test/integration/render-tests/line-blur/function/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-blur": { + "stops": [ + [ + 16, + 15 + ], + [ + 17, + 20 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-blur/literal/expected.png b/test/integration/render-tests/line-blur/literal/expected.png new file mode 100644 index 00000000000..8a8d8303509 Binary files /dev/null and b/test/integration/render-tests/line-blur/literal/expected.png differ diff --git a/test/integration/render-tests/line-blur/literal/style.json b/test/integration/render-tests/line-blur/literal/style.json new file mode 100644 index 00000000000..5aeeccd0576 --- /dev/null +++ b/test/integration/render-tests/line-blur/literal/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-blur": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-blur/property-function/expected.png b/test/integration/render-tests/line-blur/property-function/expected.png new file mode 100644 index 00000000000..94586807d3a Binary files /dev/null and b/test/integration/render-tests/line-blur/property-function/expected.png differ diff --git a/test/integration/render-tests/line-blur/property-function/style.json b/test/integration/render-tests/line-blur/property-function/style.json new file mode 100644 index 00000000000..f2e43a8fc87 --- /dev/null +++ b/test/integration/render-tests/line-blur/property-function/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored":{ + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10, + "line-blur": { + "property": "class", + "type": "categorical", + "stops": [ + [ + "path", + 0 + ], + [ + "driveway", + 2 + ], + [ + "service", + 4 + ], + [ + "street_limited", + 6 + ], + [ + "street", + 8 + ], + [ + "main", + 10 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/line-cap/butt/expected.png b/test/integration/render-tests/line-cap/butt/expected.png new file mode 100644 index 00000000000..3c487685182 Binary files /dev/null and b/test/integration/render-tests/line-cap/butt/expected.png differ diff --git a/test/integration/render-tests/line-cap/butt/style.json b/test/integration/render-tests/line-cap/butt/style.json new file mode 100644 index 00000000000..4c736cd3c73 --- /dev/null +++ b/test/integration/render-tests/line-cap/butt/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "butt", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": 10, + "line-color": "#000", + "line-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-cap/round/expected.png b/test/integration/render-tests/line-cap/round/expected.png new file mode 100644 index 00000000000..b39df432574 Binary files /dev/null and b/test/integration/render-tests/line-cap/round/expected.png differ diff --git a/test/integration/render-tests/line-cap/round/style.json b/test/integration/render-tests/line-cap/round/style.json new file mode 100644 index 00000000000..ae5786c53d6 --- /dev/null +++ b/test/integration/render-tests/line-cap/round/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "round", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": 10, + "line-color": "#000", + "line-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-cap/square/expected.png b/test/integration/render-tests/line-cap/square/expected.png new file mode 100644 index 00000000000..209e3c7ccab Binary files /dev/null and b/test/integration/render-tests/line-cap/square/expected.png differ diff --git a/test/integration/render-tests/line-cap/square/style.json b/test/integration/render-tests/line-cap/square/style.json new file mode 100644 index 00000000000..e353b9e4d46 --- /dev/null +++ b/test/integration/render-tests/line-cap/square/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "square", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "layout": { + "line-cap": "square" + }, + "paint": { + "line-width": 10, + "line-color": "#000", + "line-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-color/default/expected.png b/test/integration/render-tests/line-color/default/expected.png new file mode 100644 index 00000000000..3c487685182 Binary files /dev/null and b/test/integration/render-tests/line-color/default/expected.png differ diff --git a/test/integration/render-tests/line-color/default/style.json b/test/integration/render-tests/line-color/default/style.json new file mode 100644 index 00000000000..fa0b24a6bb2 --- /dev/null +++ b/test/integration/render-tests/line-color/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-color/function/expected.png b/test/integration/render-tests/line-color/function/expected.png new file mode 100644 index 00000000000..4676319aa21 Binary files /dev/null and b/test/integration/render-tests/line-color/function/expected.png differ diff --git a/test/integration/render-tests/line-color/function/style.json b/test/integration/render-tests/line-color/function/style.json new file mode 100644 index 00000000000..95fffe147b7 --- /dev/null +++ b/test/integration/render-tests/line-color/function/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10, + "line-color": { + "stops": [ + [ + 16, + "green" + ], + [ + 17, + "blue" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-color/literal/expected.png b/test/integration/render-tests/line-color/literal/expected.png new file mode 100644 index 00000000000..feaeb38a22e Binary files /dev/null and b/test/integration/render-tests/line-color/literal/expected.png differ diff --git a/test/integration/render-tests/line-color/literal/style.json b/test/integration/render-tests/line-color/literal/style.json new file mode 100644 index 00000000000..5f63f4ecd1a --- /dev/null +++ b/test/integration/render-tests/line-color/literal/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10, + "line-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-color/property-function-identity/expected.png b/test/integration/render-tests/line-color/property-function-identity/expected.png new file mode 100644 index 00000000000..e46f5cc553e Binary files /dev/null and b/test/integration/render-tests/line-color/property-function-identity/expected.png differ diff --git a/test/integration/render-tests/line-color/property-function-identity/style.json b/test/integration/render-tests/line-color/property-function-identity/style.json new file mode 100644 index 00000000000..9d07f43d0b0 --- /dev/null +++ b/test/integration/render-tests/line-color/property-function-identity/style.json @@ -0,0 +1,62 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": { + "color": "blue" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [-10, 10], + [10, 10], + [-10, -10], + [10, -10] + ] + } + }, { + "type": "Feature", + "properties": { + "color": "green" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [-10, 9], + [10, 9], + [-10, -9], + [10, -9] + ] + } + }] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [{ + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": { + "property": "color", + "type": "identity" + }, + "line-width": 2 + } + }] +} diff --git a/test/integration/render-tests/line-color/property-function/expected.png b/test/integration/render-tests/line-color/property-function/expected.png new file mode 100644 index 00000000000..e0d7535f056 Binary files /dev/null and b/test/integration/render-tests/line-color/property-function/expected.png differ diff --git a/test/integration/render-tests/line-color/property-function/style.json b/test/integration/render-tests/line-color/property-function/style.json new file mode 100644 index 00000000000..a61abda1aba --- /dev/null +++ b/test/integration/render-tests/line-color/property-function/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10, + "line-color": { + "property": "class", + "type": "categorical", + "stops": [ + [ + "path", + "red" + ], + [ + "driveway", + "orange" + ], + [ + "service", + "yellow" + ], + [ + "street_limited", + "green" + ], + [ + "street", + "blue" + ], + [ + "main", + "purple" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/line-dasharray/default/expected.png b/test/integration/render-tests/line-dasharray/default/expected.png new file mode 100644 index 00000000000..ce5c113ff9a Binary files /dev/null and b/test/integration/render-tests/line-dasharray/default/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/default/style.json b/test/integration/render-tests/line-dasharray/default/style.json new file mode 100644 index 00000000000..2909fedc77d --- /dev/null +++ b/test/integration/render-tests/line-dasharray/default/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-dasharray/fractional-zoom/expected.png b/test/integration/render-tests/line-dasharray/fractional-zoom/expected.png new file mode 100644 index 00000000000..672967c7937 Binary files /dev/null and b/test/integration/render-tests/line-dasharray/fractional-zoom/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/fractional-zoom/style.json b/test/integration/render-tests/line-dasharray/fractional-zoom/style.json new file mode 100644 index 00000000000..14b8b0f0e40 --- /dev/null +++ b/test/integration/render-tests/line-dasharray/fractional-zoom/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14.5, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-dasharray": [ + 2.5, + 2.5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-dasharray/function/expected.png b/test/integration/render-tests/line-dasharray/function/expected.png new file mode 100644 index 00000000000..f23ccf160ff Binary files /dev/null and b/test/integration/render-tests/line-dasharray/function/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/function/style.json b/test/integration/render-tests/line-dasharray/function/style.json new file mode 100644 index 00000000000..645efc57a60 --- /dev/null +++ b/test/integration/render-tests/line-dasharray/function/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-dasharray": { + "stops": [ + [ + 16, + [ + 7.5, + 7.5 + ] + ], + [ + 17, + [ + 10, + 10 + ] + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-dasharray/functional-line-width/expected.png b/test/integration/render-tests/line-dasharray/functional-line-width/expected.png new file mode 100644 index 00000000000..991ecc409ea Binary files /dev/null and b/test/integration/render-tests/line-dasharray/functional-line-width/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/functional-line-width/style.json b/test/integration/render-tests/line-dasharray/functional-line-width/style.json new file mode 100644 index 00000000000..59be0836515 --- /dev/null +++ b/test/integration/render-tests/line-dasharray/functional-line-width/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14.5, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 15, + 10 + ] + ] + }, + "line-color": "#000", + "line-dasharray": [ + 1, + 1 + ] + } + } + ] +} diff --git a/test/integration/render-tests/line-dasharray/literal/expected.png b/test/integration/render-tests/line-dasharray/literal/expected.png new file mode 100644 index 00000000000..34490386f9c Binary files /dev/null and b/test/integration/render-tests/line-dasharray/literal/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/literal/style.json b/test/integration/render-tests/line-dasharray/literal/style.json new file mode 100644 index 00000000000..dad7adf631a --- /dev/null +++ b/test/integration/render-tests/line-dasharray/literal/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-dasharray": [ + 2.5, + 2.5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-dasharray/long-segment/expected.png b/test/integration/render-tests/line-dasharray/long-segment/expected.png new file mode 100644 index 00000000000..e90d51306ea Binary files /dev/null and b/test/integration/render-tests/line-dasharray/long-segment/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/long-segment/style.json b/test/integration/render-tests/line-dasharray/long-segment/style.json new file mode 100644 index 00000000000..b87c5b628b4 --- /dev/null +++ b/test/integration/render-tests/line-dasharray/long-segment/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + -77.0305, + 38.9014 + ], + "zoom": 12.15, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -80, + 38.910203 + ], + [ + 80, + 38.910321 + ] + ] + }, + "properties": { + "name": "P Street Northwest - Massachusetts Avenue Northwest" + } + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#FFF" + } + }, + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#000", + "line-dasharray": [ + 1, + 1 + ], + "line-width": 50 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-dasharray/overscaled/expected.png b/test/integration/render-tests/line-dasharray/overscaled/expected.png new file mode 100644 index 00000000000..b99688e58a6 Binary files /dev/null and b/test/integration/render-tests/line-dasharray/overscaled/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/overscaled/style.json b/test/integration/render-tests/line-dasharray/overscaled/style.json new file mode 100644 index 00000000000..9fefc820e5e --- /dev/null +++ b/test/integration/render-tests/line-dasharray/overscaled/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-dasharray": [ + 2.5, + 2.5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-dasharray/slant/expected.png b/test/integration/render-tests/line-dasharray/slant/expected.png new file mode 100644 index 00000000000..f8bf725cf51 Binary files /dev/null and b/test/integration/render-tests/line-dasharray/slant/expected.png differ diff --git a/test/integration/render-tests/line-dasharray/slant/style.json b/test/integration/render-tests/line-dasharray/slant/style.json new file mode 100644 index 00000000000..f063b04d961 --- /dev/null +++ b/test/integration/render-tests/line-dasharray/slant/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.429056, + 52.498167 + ], + "zoom": 18, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "building", + "paint": { + "line-width": 4, + "line-color": "#000", + "line-dasharray": [ + 2.5, + 2.5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-gap-width/default/expected.png b/test/integration/render-tests/line-gap-width/default/expected.png new file mode 100644 index 00000000000..ef32e3b169d Binary files /dev/null and b/test/integration/render-tests/line-gap-width/default/expected.png differ diff --git a/test/integration/render-tests/line-gap-width/default/style.json b/test/integration/render-tests/line-gap-width/default/style.json new file mode 100644 index 00000000000..b34d1cfe8a5 --- /dev/null +++ b/test/integration/render-tests/line-gap-width/default/style.json @@ -0,0 +1,69 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-gap-width/function/expected.png b/test/integration/render-tests/line-gap-width/function/expected.png new file mode 100644 index 00000000000..126cb5a4c22 Binary files /dev/null and b/test/integration/render-tests/line-gap-width/function/expected.png differ diff --git a/test/integration/render-tests/line-gap-width/function/style.json b/test/integration/render-tests/line-gap-width/function/style.json new file mode 100644 index 00000000000..8e7e0709a42 --- /dev/null +++ b/test/integration/render-tests/line-gap-width/function/style.json @@ -0,0 +1,83 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-gap-width": { + "stops": [ + [ + 0, + 5 + ], + [ + 1, + 8 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-gap-width/literal/expected.png b/test/integration/render-tests/line-gap-width/literal/expected.png new file mode 100644 index 00000000000..92866c95e26 Binary files /dev/null and b/test/integration/render-tests/line-gap-width/literal/expected.png differ diff --git a/test/integration/render-tests/line-gap-width/literal/style.json b/test/integration/render-tests/line-gap-width/literal/style.json new file mode 100644 index 00000000000..d8e70e225ea --- /dev/null +++ b/test/integration/render-tests/line-gap-width/literal/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-gap-width": 3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-gap-width/property-function/expected.png b/test/integration/render-tests/line-gap-width/property-function/expected.png new file mode 100644 index 00000000000..d6650238ad3 Binary files /dev/null and b/test/integration/render-tests/line-gap-width/property-function/expected.png differ diff --git a/test/integration/render-tests/line-gap-width/property-function/style.json b/test/integration/render-tests/line-gap-width/property-function/style.json new file mode 100644 index 00000000000..bafbc29fe1d --- /dev/null +++ b/test/integration/render-tests/line-gap-width/property-function/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored":{ + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-gap-width": { + "property": "class", + "type": "categorical", + "stops": [ + [ + "path", + 1 + ], + [ + "driveway", + 2 + ], + [ + "service", + 3 + ], + [ + "street_limited", + 4 + ], + [ + "street", + 5 + ], + [ + "main", + 6 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/line-join/bevel-transparent/expected.png b/test/integration/render-tests/line-join/bevel-transparent/expected.png new file mode 100644 index 00000000000..0ae6100ae29 Binary files /dev/null and b/test/integration/render-tests/line-join/bevel-transparent/expected.png differ diff --git a/test/integration/render-tests/line-join/bevel-transparent/style.json b/test/integration/render-tests/line-join/bevel-transparent/style.json new file mode 100644 index 00000000000..03edc4fcce4 --- /dev/null +++ b/test/integration/render-tests/line-join/bevel-transparent/style.json @@ -0,0 +1,76 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "bevel" + }, + "paint": { + "line-width": 8, + "line-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-join/bevel/expected.png b/test/integration/render-tests/line-join/bevel/expected.png new file mode 100644 index 00000000000..26f41c832a4 Binary files /dev/null and b/test/integration/render-tests/line-join/bevel/expected.png differ diff --git a/test/integration/render-tests/line-join/bevel/style.json b/test/integration/render-tests/line-join/bevel/style.json new file mode 100644 index 00000000000..b06e54464d1 --- /dev/null +++ b/test/integration/render-tests/line-join/bevel/style.json @@ -0,0 +1,75 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "bevel" + }, + "paint": { + "line-width": 8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-join/default/expected.png b/test/integration/render-tests/line-join/default/expected.png new file mode 100644 index 00000000000..26f41c832a4 Binary files /dev/null and b/test/integration/render-tests/line-join/default/expected.png differ diff --git a/test/integration/render-tests/line-join/default/style.json b/test/integration/render-tests/line-join/default/style.json new file mode 100644 index 00000000000..75374737e64 --- /dev/null +++ b/test/integration/render-tests/line-join/default/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-width": 8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-join/miter-transparent/expected.png b/test/integration/render-tests/line-join/miter-transparent/expected.png new file mode 100644 index 00000000000..0ae6100ae29 Binary files /dev/null and b/test/integration/render-tests/line-join/miter-transparent/expected.png differ diff --git a/test/integration/render-tests/line-join/miter-transparent/style.json b/test/integration/render-tests/line-join/miter-transparent/style.json new file mode 100644 index 00000000000..898e903a7f9 --- /dev/null +++ b/test/integration/render-tests/line-join/miter-transparent/style.json @@ -0,0 +1,76 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "miter" + }, + "paint": { + "line-width": 8, + "line-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-join/miter/expected.png b/test/integration/render-tests/line-join/miter/expected.png new file mode 100644 index 00000000000..26f41c832a4 Binary files /dev/null and b/test/integration/render-tests/line-join/miter/expected.png differ diff --git a/test/integration/render-tests/line-join/miter/style.json b/test/integration/render-tests/line-join/miter/style.json new file mode 100644 index 00000000000..031c03f3b88 --- /dev/null +++ b/test/integration/render-tests/line-join/miter/style.json @@ -0,0 +1,75 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "miter" + }, + "paint": { + "line-width": 8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-join/round-transparent/expected.png b/test/integration/render-tests/line-join/round-transparent/expected.png new file mode 100644 index 00000000000..0f286c36508 Binary files /dev/null and b/test/integration/render-tests/line-join/round-transparent/expected.png differ diff --git a/test/integration/render-tests/line-join/round-transparent/style.json b/test/integration/render-tests/line-join/round-transparent/style.json new file mode 100644 index 00000000000..ca3ac1329b2 --- /dev/null +++ b/test/integration/render-tests/line-join/round-transparent/style.json @@ -0,0 +1,76 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "round" + }, + "paint": { + "line-width": 8, + "line-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-join/round/expected.png b/test/integration/render-tests/line-join/round/expected.png new file mode 100644 index 00000000000..cd02c0f92a7 Binary files /dev/null and b/test/integration/render-tests/line-join/round/expected.png differ diff --git a/test/integration/render-tests/line-join/round/style.json b/test/integration/render-tests/line-join/round/style.json new file mode 100644 index 00000000000..01e83d5d93a --- /dev/null +++ b/test/integration/render-tests/line-join/round/style.json @@ -0,0 +1,75 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "round" + }, + "paint": { + "line-width": 8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-offset/default/expected.png b/test/integration/render-tests/line-offset/default/expected.png new file mode 100644 index 00000000000..5ddf5bdbf30 Binary files /dev/null and b/test/integration/render-tests/line-offset/default/expected.png differ diff --git a/test/integration/render-tests/line-offset/default/style.json b/test/integration/render-tests/line-offset/default/style.json new file mode 100644 index 00000000000..42234103913 --- /dev/null +++ b/test/integration/render-tests/line-offset/default/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-offset": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-offset/function/expected.png b/test/integration/render-tests/line-offset/function/expected.png new file mode 100644 index 00000000000..1fc6e149be9 Binary files /dev/null and b/test/integration/render-tests/line-offset/function/expected.png differ diff --git a/test/integration/render-tests/line-offset/function/style.json b/test/integration/render-tests/line-offset/function/style.json new file mode 100644 index 00000000000..32fc629bbc4 --- /dev/null +++ b/test/integration/render-tests/line-offset/function/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-offset": { + "stops": [ + [ + 13, + 1 + ], + [ + 15, + 4 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-offset/literal-negative/expected.png b/test/integration/render-tests/line-offset/literal-negative/expected.png new file mode 100644 index 00000000000..8f32a4039b5 Binary files /dev/null and b/test/integration/render-tests/line-offset/literal-negative/expected.png differ diff --git a/test/integration/render-tests/line-offset/literal-negative/style.json b/test/integration/render-tests/line-offset/literal-negative/style.json new file mode 100644 index 00000000000..379e808a522 --- /dev/null +++ b/test/integration/render-tests/line-offset/literal-negative/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "diff": 0.0002 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-offset": -3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-offset/literal/expected.png b/test/integration/render-tests/line-offset/literal/expected.png new file mode 100644 index 00000000000..235a128523f Binary files /dev/null and b/test/integration/render-tests/line-offset/literal/expected.png differ diff --git a/test/integration/render-tests/line-offset/literal/style.json b/test/integration/render-tests/line-offset/literal/style.json new file mode 100644 index 00000000000..81ef815b789 --- /dev/null +++ b/test/integration/render-tests/line-offset/literal/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-offset": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-offset/property-function/expected.png b/test/integration/render-tests/line-offset/property-function/expected.png new file mode 100644 index 00000000000..85d0cc99158 Binary files /dev/null and b/test/integration/render-tests/line-offset/property-function/expected.png differ diff --git a/test/integration/render-tests/line-offset/property-function/style.json b/test/integration/render-tests/line-offset/property-function/style.json new file mode 100644 index 00000000000..b9a276be7f5 --- /dev/null +++ b/test/integration/render-tests/line-offset/property-function/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored":{ + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-offset": { + "property": "class", + "type": "categorical", + "stops": [ + [ + "path", + 1 + ], + [ + "driveway", + 2 + ], + [ + "service", + 3 + ], + [ + "street_limited", + 4 + ], + [ + "street", + 5 + ], + [ + "main", + 6 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/line-opacity/default/expected.png b/test/integration/render-tests/line-opacity/default/expected.png new file mode 100644 index 00000000000..26f41c832a4 Binary files /dev/null and b/test/integration/render-tests/line-opacity/default/expected.png differ diff --git a/test/integration/render-tests/line-opacity/default/style.json b/test/integration/render-tests/line-opacity/default/style.json new file mode 100644 index 00000000000..75374737e64 --- /dev/null +++ b/test/integration/render-tests/line-opacity/default/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-width": 8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-opacity/function/expected.png b/test/integration/render-tests/line-opacity/function/expected.png new file mode 100644 index 00000000000..0ae6100ae29 Binary files /dev/null and b/test/integration/render-tests/line-opacity/function/expected.png differ diff --git a/test/integration/render-tests/line-opacity/function/style.json b/test/integration/render-tests/line-opacity/function/style.json new file mode 100644 index 00000000000..a6de3e0f6ba --- /dev/null +++ b/test/integration/render-tests/line-opacity/function/style.json @@ -0,0 +1,84 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-width": 8, + "line-opacity": { + "stops": [ + [ + 0, + 0.5 + ], + [ + 1, + 0.6 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-opacity/literal/expected.png b/test/integration/render-tests/line-opacity/literal/expected.png new file mode 100644 index 00000000000..4e7831b2ce9 Binary files /dev/null and b/test/integration/render-tests/line-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/line-opacity/literal/style.json b/test/integration/render-tests/line-opacity/literal/style.json new file mode 100644 index 00000000000..742f9de1442 --- /dev/null +++ b/test/integration/render-tests/line-opacity/literal/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "diff": 0.00075 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + -14, + -16 + ], + [ + -14, + 0 + ], + [ + -14, + 16 + ] + ], + [ + [ + -3, + -16 + ], + [ + -3, + 0 + ], + [ + 0, + 16 + ] + ], + [ + [ + 8, + -16 + ], + [ + 12, + 16 + ], + [ + 16, + -16 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-width": 8, + "line-opacity": 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-opacity/property-function/expected.png b/test/integration/render-tests/line-opacity/property-function/expected.png new file mode 100644 index 00000000000..a4b0b7dda79 Binary files /dev/null and b/test/integration/render-tests/line-opacity/property-function/expected.png differ diff --git a/test/integration/render-tests/line-opacity/property-function/style.json b/test/integration/render-tests/line-opacity/property-function/style.json new file mode 100644 index 00000000000..239128c369a --- /dev/null +++ b/test/integration/render-tests/line-opacity/property-function/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored":{ + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10, + "line-opacity": { + "property": "class", + "type": "categorical", + "stops": [ + [ + "path", + 0 + ], + [ + "driveway", + 0.2 + ], + [ + "service", + 0.4 + ], + [ + "street_limited", + 0.6 + ], + [ + "street", + 0.8 + ], + [ + "main", + 1 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/line-pattern/@2x/expected.png b/test/integration/render-tests/line-pattern/@2x/expected.png new file mode 100644 index 00000000000..abd4a9397fe Binary files /dev/null and b/test/integration/render-tests/line-pattern/@2x/expected.png differ diff --git a/test/integration/render-tests/line-pattern/@2x/style.json b/test/integration/render-tests/line-pattern/@2x/style.json new file mode 100644 index 00000000000..96a632b9daa --- /dev/null +++ b/test/integration/render-tests/line-pattern/@2x/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "pixelRatio": 2 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 20, + "line-pattern": "generic_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pattern/literal/expected.png b/test/integration/render-tests/line-pattern/literal/expected.png new file mode 100644 index 00000000000..73c4ecf8987 Binary files /dev/null and b/test/integration/render-tests/line-pattern/literal/expected.png differ diff --git a/test/integration/render-tests/line-pattern/literal/style.json b/test/integration/render-tests/line-pattern/literal/style.json new file mode 100644 index 00000000000..a3c2ccaaaa7 --- /dev/null +++ b/test/integration/render-tests/line-pattern/literal/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "diff": 0.00035 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 20, + "line-pattern": "generic_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pattern/opacity/expected.png b/test/integration/render-tests/line-pattern/opacity/expected.png new file mode 100644 index 00000000000..35d5f9cf1e1 Binary files /dev/null and b/test/integration/render-tests/line-pattern/opacity/expected.png differ diff --git a/test/integration/render-tests/line-pattern/opacity/style.json b/test/integration/render-tests/line-pattern/opacity/style.json new file mode 100644 index 00000000000..a815b553ff7 --- /dev/null +++ b/test/integration/render-tests/line-pattern/opacity/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "diff": 0.0002 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 20, + "line-pattern": "generic_icon", + "line-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pattern/overscaled/expected.png b/test/integration/render-tests/line-pattern/overscaled/expected.png new file mode 100644 index 00000000000..cb4f56102c3 Binary files /dev/null and b/test/integration/render-tests/line-pattern/overscaled/expected.png differ diff --git a/test/integration/render-tests/line-pattern/overscaled/style.json b/test/integration/render-tests/line-pattern/overscaled/style.json new file mode 100644 index 00000000000..0e25f74c5b7 --- /dev/null +++ b/test/integration/render-tests/line-pattern/overscaled/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 20, + "line-pattern": "generic_icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pattern/pitch/expected.png b/test/integration/render-tests/line-pattern/pitch/expected.png new file mode 100644 index 00000000000..cfcde078e0d Binary files /dev/null and b/test/integration/render-tests/line-pattern/pitch/expected.png differ diff --git a/test/integration/render-tests/line-pattern/pitch/style.json b/test/integration/render-tests/line-pattern/pitch/style.json new file mode 100644 index 00000000000..62b997e7deb --- /dev/null +++ b/test/integration/render-tests/line-pattern/pitch/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "pitch": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 20, + "line-pattern": "generic_icon", + "line-opacity": 0.5 + } + } + ] +} diff --git a/test/integration/render-tests/line-pitch/default/expected.png b/test/integration/render-tests/line-pitch/default/expected.png new file mode 100644 index 00000000000..79753ffb696 Binary files /dev/null and b/test/integration/render-tests/line-pitch/default/expected.png differ diff --git a/test/integration/render-tests/line-pitch/default/style.json b/test/integration/render-tests/line-pitch/default/style.json new file mode 100644 index 00000000000..fa0b24a6bb2 --- /dev/null +++ b/test/integration/render-tests/line-pitch/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pitch/pitch0/expected.png b/test/integration/render-tests/line-pitch/pitch0/expected.png new file mode 100644 index 00000000000..79753ffb696 Binary files /dev/null and b/test/integration/render-tests/line-pitch/pitch0/expected.png differ diff --git a/test/integration/render-tests/line-pitch/pitch0/style.json b/test/integration/render-tests/line-pitch/pitch0/style.json new file mode 100644 index 00000000000..46def87bb27 --- /dev/null +++ b/test/integration/render-tests/line-pitch/pitch0/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "pitch": 0, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pitch/pitch15/expected.png b/test/integration/render-tests/line-pitch/pitch15/expected.png new file mode 100644 index 00000000000..746b996107e Binary files /dev/null and b/test/integration/render-tests/line-pitch/pitch15/expected.png differ diff --git a/test/integration/render-tests/line-pitch/pitch15/style.json b/test/integration/render-tests/line-pitch/pitch15/style.json new file mode 100644 index 00000000000..2a7d866c827 --- /dev/null +++ b/test/integration/render-tests/line-pitch/pitch15/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "pitch": 15, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pitch/pitch30/expected.png b/test/integration/render-tests/line-pitch/pitch30/expected.png new file mode 100644 index 00000000000..5b563a5e379 Binary files /dev/null and b/test/integration/render-tests/line-pitch/pitch30/expected.png differ diff --git a/test/integration/render-tests/line-pitch/pitch30/style.json b/test/integration/render-tests/line-pitch/pitch30/style.json new file mode 100644 index 00000000000..48c2b97ed33 --- /dev/null +++ b/test/integration/render-tests/line-pitch/pitch30/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-pitch/pitchAndBearing/expected.png b/test/integration/render-tests/line-pitch/pitchAndBearing/expected.png new file mode 100644 index 00000000000..5b5c09337da Binary files /dev/null and b/test/integration/render-tests/line-pitch/pitchAndBearing/expected.png differ diff --git a/test/integration/render-tests/line-pitch/pitchAndBearing/style.json b/test/integration/render-tests/line-pitch/pitchAndBearing/style.json new file mode 100644 index 00000000000..b686d447bbe --- /dev/null +++ b/test/integration/render-tests/line-pitch/pitchAndBearing/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 180, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 10 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-translate-anchor/map/expected.png b/test/integration/render-tests/line-translate-anchor/map/expected.png new file mode 100644 index 00000000000..6f69e6f1974 Binary files /dev/null and b/test/integration/render-tests/line-translate-anchor/map/expected.png differ diff --git a/test/integration/render-tests/line-translate-anchor/map/style.json b/test/integration/render-tests/line-translate-anchor/map/style.json new file mode 100644 index 00000000000..89aa1a23a67 --- /dev/null +++ b/test/integration/render-tests/line-translate-anchor/map/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-translate": [ + 10, + 10 + ], + "line-translate-anchor": "map" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-translate-anchor/viewport/expected.png b/test/integration/render-tests/line-translate-anchor/viewport/expected.png new file mode 100644 index 00000000000..e4d5265c3c0 Binary files /dev/null and b/test/integration/render-tests/line-translate-anchor/viewport/expected.png differ diff --git a/test/integration/render-tests/line-translate-anchor/viewport/style.json b/test/integration/render-tests/line-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..d52d898846f --- /dev/null +++ b/test/integration/render-tests/line-translate-anchor/viewport/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-translate": [ + 10, + 10 + ], + "line-translate-anchor": "viewport" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-translate/default/expected.png b/test/integration/render-tests/line-translate/default/expected.png new file mode 100644 index 00000000000..391600e5294 Binary files /dev/null and b/test/integration/render-tests/line-translate/default/expected.png differ diff --git a/test/integration/render-tests/line-translate/default/style.json b/test/integration/render-tests/line-translate/default/style.json new file mode 100644 index 00000000000..2909fedc77d --- /dev/null +++ b/test/integration/render-tests/line-translate/default/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-translate/function/expected.png b/test/integration/render-tests/line-translate/function/expected.png new file mode 100644 index 00000000000..a85c19448d4 Binary files /dev/null and b/test/integration/render-tests/line-translate/function/expected.png differ diff --git a/test/integration/render-tests/line-translate/function/style.json b/test/integration/render-tests/line-translate/function/style.json new file mode 100644 index 00000000000..39a939ad72a --- /dev/null +++ b/test/integration/render-tests/line-translate/function/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-translate": { + "stops": [ + [ + 16, + [ + 15, + 15 + ] + ], + [ + 17, + [ + 20, + 20 + ] + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-translate/literal/expected.png b/test/integration/render-tests/line-translate/literal/expected.png new file mode 100644 index 00000000000..9ab4be3ca2d Binary files /dev/null and b/test/integration/render-tests/line-translate/literal/expected.png differ diff --git a/test/integration/render-tests/line-translate/literal/style.json b/test/integration/render-tests/line-translate/literal/style.json new file mode 100644 index 00000000000..b8d68b8a380 --- /dev/null +++ b/test/integration/render-tests/line-translate/literal/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 2, + "line-color": "#000", + "line-translate": [ + 5, + 5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-triangulation/default/expected.png b/test/integration/render-tests/line-triangulation/default/expected.png new file mode 100644 index 00000000000..86b2bd5c8d3 Binary files /dev/null and b/test/integration/render-tests/line-triangulation/default/expected.png differ diff --git a/test/integration/render-tests/line-triangulation/default/style.json b/test/integration/render-tests/line-triangulation/default/style.json new file mode 100644 index 00000000000..c09adcbcdf9 --- /dev/null +++ b/test/integration/render-tests/line-triangulation/default/style.json @@ -0,0 +1,203 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -122.4393, + 37.706 + ], + "zoom": 14, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "id": 6730066, + "interval": 2 + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -122.437225, + 37.706797 + ], + [ + -122.442106, + 37.704101 + ], + [ + -122.434055, + 37.704745 + ], + [ + -122.432285, + 37.704409 + ], + [ + -122.428845, + 37.704965 + ], + [ + -122.428391, + 37.706397 + ], + [ + -122.431341, + 37.708231 + ], + [ + -122.433382, + 37.708232 + ], + [ + -122.433982, + 37.708132 + ], + [ + -122.435382, + 37.708132 + ], + [ + -122.440781, + 37.708304 + ], + [ + -122.442079, + 37.708231 + ], + [ + -122.441605, + 37.707348 + ], + [ + -122.441575, + 37.707264 + ], + [ + -122.440376, + 37.706495 + ], + [ + -122.440498, + 37.707529 + ], + [ + -122.437225, + 37.706797 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 6730069, + "interval": 1 + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -122.449238, + 37.703158 + ], + [ + -122.450546, + 37.70245 + ], + [ + -122.448257, + 37.7032 + ], + [ + -122.446617, + 37.702705 + ], + [ + -122.445848, + 37.702302 + ], + [ + -122.442218, + 37.701728 + ], + [ + -122.442106, + 37.704101 + ], + [ + -122.437225, + 37.706797 + ], + [ + -122.440498, + 37.707529 + ], + [ + -122.440376, + 37.706495 + ], + [ + -122.441575, + 37.707264 + ], + [ + -122.441661, + 37.707239 + ], + [ + -122.448078, + 37.705053 + ], + [ + -122.449959, + 37.70441 + ], + [ + -122.449238, + 37.703158 + ] + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#FFF" + } + }, + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-color": "#EC8D8D", + "line-opacity": 1, + "line-width": 8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-triangulation/round/expected.png b/test/integration/render-tests/line-triangulation/round/expected.png new file mode 100644 index 00000000000..2d8e1f5bc43 Binary files /dev/null and b/test/integration/render-tests/line-triangulation/round/expected.png differ diff --git a/test/integration/render-tests/line-triangulation/round/style.json b/test/integration/render-tests/line-triangulation/round/style.json new file mode 100644 index 00000000000..9045b405b57 --- /dev/null +++ b/test/integration/render-tests/line-triangulation/round/style.json @@ -0,0 +1,206 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512 + } + }, + "center": [ + -122.4393, + 37.706 + ], + "zoom": 14, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "id": 6730066, + "interval": 2 + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -122.437225, + 37.706797 + ], + [ + -122.442106, + 37.704101 + ], + [ + -122.434055, + 37.704745 + ], + [ + -122.432285, + 37.704409 + ], + [ + -122.428845, + 37.704965 + ], + [ + -122.428391, + 37.706397 + ], + [ + -122.431341, + 37.708231 + ], + [ + -122.433382, + 37.708232 + ], + [ + -122.433982, + 37.708132 + ], + [ + -122.435382, + 37.708132 + ], + [ + -122.440781, + 37.708304 + ], + [ + -122.442079, + 37.708231 + ], + [ + -122.441605, + 37.707348 + ], + [ + -122.441575, + 37.707264 + ], + [ + -122.440376, + 37.706495 + ], + [ + -122.440498, + 37.707529 + ], + [ + -122.437225, + 37.706797 + ] + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "id": 6730069, + "interval": 1 + }, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -122.449238, + 37.703158 + ], + [ + -122.450546, + 37.70245 + ], + [ + -122.448257, + 37.7032 + ], + [ + -122.446617, + 37.702705 + ], + [ + -122.445848, + 37.702302 + ], + [ + -122.442218, + 37.701728 + ], + [ + -122.442106, + 37.704101 + ], + [ + -122.437225, + 37.706797 + ], + [ + -122.440498, + 37.707529 + ], + [ + -122.440376, + 37.706495 + ], + [ + -122.441575, + 37.707264 + ], + [ + -122.441661, + 37.707239 + ], + [ + -122.448078, + 37.705053 + ], + [ + -122.449959, + 37.70441 + ], + [ + -122.449238, + 37.703158 + ] + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#FFF" + } + }, + { + "id": "line-round", + "type": "line", + "source": "geojson", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#EC8D8D", + "line-opacity": 0.5, + "line-width": 16 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-visibility/none/expected.png b/test/integration/render-tests/line-visibility/none/expected.png new file mode 100644 index 00000000000..5308b74aacb Binary files /dev/null and b/test/integration/render-tests/line-visibility/none/expected.png differ diff --git a/test/integration/render-tests/line-visibility/none/style.json b/test/integration/render-tests/line-visibility/none/style.json new file mode 100644 index 00000000000..06287532bf3 --- /dev/null +++ b/test/integration/render-tests/line-visibility/none/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line-none", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "layout": { + "visibility": "none" + }, + "paint": { + "line-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-visibility/visible/expected.png b/test/integration/render-tests/line-visibility/visible/expected.png new file mode 100644 index 00000000000..feab661a086 Binary files /dev/null and b/test/integration/render-tests/line-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/line-visibility/visible/style.json b/test/integration/render-tests/line-visibility/visible/style.json new file mode 100644 index 00000000000..11461f588b7 --- /dev/null +++ b/test/integration/render-tests/line-visibility/visible/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line-visible", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-width/default/expected.png b/test/integration/render-tests/line-width/default/expected.png new file mode 100644 index 00000000000..860f9171987 Binary files /dev/null and b/test/integration/render-tests/line-width/default/expected.png differ diff --git a/test/integration/render-tests/line-width/default/style.json b/test/integration/render-tests/line-width/default/style.json new file mode 100644 index 00000000000..a777a61801c --- /dev/null +++ b/test/integration/render-tests/line-width/default/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-width/function/expected.png b/test/integration/render-tests/line-width/function/expected.png new file mode 100644 index 00000000000..23ef60fb86b Binary files /dev/null and b/test/integration/render-tests/line-width/function/expected.png differ diff --git a/test/integration/render-tests/line-width/function/style.json b/test/integration/render-tests/line-width/function/style.json new file mode 100644 index 00000000000..9041621894b --- /dev/null +++ b/test/integration/render-tests/line-width/function/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": { + "stops": [ + [ + 16, + 15 + ], + [ + 17, + 20 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-width/literal/expected.png b/test/integration/render-tests/line-width/literal/expected.png new file mode 100644 index 00000000000..bc51959a69d Binary files /dev/null and b/test/integration/render-tests/line-width/literal/expected.png differ diff --git a/test/integration/render-tests/line-width/literal/style.json b/test/integration/render-tests/line-width/literal/style.json new file mode 100644 index 00000000000..3d374dce6d2 --- /dev/null +++ b/test/integration/render-tests/line-width/literal/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/line-width/property-function/expected.png b/test/integration/render-tests/line-width/property-function/expected.png new file mode 100644 index 00000000000..728b6e4ccc1 Binary files /dev/null and b/test/integration/render-tests/line-width/property-function/expected.png differ diff --git a/test/integration/render-tests/line-width/property-function/style.json b/test/integration/render-tests/line-width/property-function/style.json new file mode 100644 index 00000000000..e08b6d57424 --- /dev/null +++ b/test/integration/render-tests/line-width/property-function/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "ignored":{ + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860", + "js":"https://github.com/mapbox/mapbox-gl-js/issues/3682#issuecomment-264348200" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": { + "property": "class", + "type": "categorical", + "stops": [ + [ + "path", + 1 + ], + [ + "driveway", + 2 + ], + [ + "service", + 3 + ], + [ + "street_limited", + 4 + ], + [ + "street", + 5 + ], + [ + "main", + 6 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/line-width/very-overscaled/expected.png b/test/integration/render-tests/line-width/very-overscaled/expected.png new file mode 100644 index 00000000000..8c6e20a95ad Binary files /dev/null and b/test/integration/render-tests/line-width/very-overscaled/expected.png differ diff --git a/test/integration/render-tests/line-width/very-overscaled/style.json b/test/integration/render-tests/line-width/very-overscaled/style.json new file mode 100644 index 00000000000..2e38409a185 --- /dev/null +++ b/test/integration/render-tests/line-width/very-overscaled/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.417504, + 52.499167 + ], + "zoom": 21, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-width": 5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/linear-filter-opacity-edge/literal/expected.png b/test/integration/render-tests/linear-filter-opacity-edge/literal/expected.png new file mode 100644 index 00000000000..dd5d1f5065a Binary files /dev/null and b/test/integration/render-tests/linear-filter-opacity-edge/literal/expected.png differ diff --git a/test/integration/render-tests/linear-filter-opacity-edge/literal/style.json b/test/integration/render-tests/linear-filter-opacity-edge/literal/style.json new file mode 100644 index 00000000000..56cc0544462 --- /dev/null +++ b/test/integration/render-tests/linear-filter-opacity-edge/literal/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-size": 3, + "icon-image": "squares-18" + }, + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-alpha/default/expected.png b/test/integration/render-tests/raster-alpha/default/expected.png new file mode 100644 index 00000000000..74be57c4208 Binary files /dev/null and b/test/integration/render-tests/raster-alpha/default/expected.png differ diff --git a/test/integration/render-tests/raster-alpha/default/style.json b/test/integration/render-tests/raster-alpha/default/style.json new file mode 100644 index 00000000000..8d3ccbb5877 --- /dev/null +++ b/test/integration/render-tests/raster-alpha/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 52.499167, + 13.418056 + ], + "zoom": 16, + "sources": { + "source": { + "type": "raster", + "tiles": [ + "local://tiles/alpha.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "orange" + } + }, + { + "id": "raster", + "type": "raster", + "source": "source", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-brightness/default/expected.png b/test/integration/render-tests/raster-brightness/default/expected.png new file mode 100644 index 00000000000..fc52dff7059 Binary files /dev/null and b/test/integration/render-tests/raster-brightness/default/expected.png differ diff --git a/test/integration/render-tests/raster-brightness/default/style.json b/test/integration/render-tests/raster-brightness/default/style.json new file mode 100644 index 00000000000..a2db2f18d83 --- /dev/null +++ b/test/integration/render-tests/raster-brightness/default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-brightness/function/expected.png b/test/integration/render-tests/raster-brightness/function/expected.png new file mode 100644 index 00000000000..e5ddf5912d9 Binary files /dev/null and b/test/integration/render-tests/raster-brightness/function/expected.png differ diff --git a/test/integration/render-tests/raster-brightness/function/style.json b/test/integration/render-tests/raster-brightness/function/style.json new file mode 100644 index 00000000000..e2935e34074 --- /dev/null +++ b/test/integration/render-tests/raster-brightness/function/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-brightness-min": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 17, + 0.5 + ] + ] + }, + "raster-brightness-max": { + "stops": [ + [ + 16, + 0.6 + ], + [ + 17, + 0.4 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-brightness/literal/expected.png b/test/integration/render-tests/raster-brightness/literal/expected.png new file mode 100644 index 00000000000..3135277bd84 Binary files /dev/null and b/test/integration/render-tests/raster-brightness/literal/expected.png differ diff --git a/test/integration/render-tests/raster-brightness/literal/style.json b/test/integration/render-tests/raster-brightness/literal/style.json new file mode 100644 index 00000000000..4cb59b0fc8a --- /dev/null +++ b/test/integration/render-tests/raster-brightness/literal/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-brightness-min": 0.2, + "raster-brightness-max": 0.8 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-contrast/default/expected.png b/test/integration/render-tests/raster-contrast/default/expected.png new file mode 100644 index 00000000000..fc52dff7059 Binary files /dev/null and b/test/integration/render-tests/raster-contrast/default/expected.png differ diff --git a/test/integration/render-tests/raster-contrast/default/style.json b/test/integration/render-tests/raster-contrast/default/style.json new file mode 100644 index 00000000000..a2db2f18d83 --- /dev/null +++ b/test/integration/render-tests/raster-contrast/default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-contrast/function/expected.png b/test/integration/render-tests/raster-contrast/function/expected.png new file mode 100644 index 00000000000..0f41ab6b269 Binary files /dev/null and b/test/integration/render-tests/raster-contrast/function/expected.png differ diff --git a/test/integration/render-tests/raster-contrast/function/style.json b/test/integration/render-tests/raster-contrast/function/style.json new file mode 100644 index 00000000000..dcf22a3524f --- /dev/null +++ b/test/integration/render-tests/raster-contrast/function/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-contrast": { + "stops": [ + [ + 16, + 0.6 + ], + [ + 17, + 0.8 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-contrast/literal/expected.png b/test/integration/render-tests/raster-contrast/literal/expected.png new file mode 100644 index 00000000000..43404ff737a Binary files /dev/null and b/test/integration/render-tests/raster-contrast/literal/expected.png differ diff --git a/test/integration/render-tests/raster-contrast/literal/style.json b/test/integration/render-tests/raster-contrast/literal/style.json new file mode 100644 index 00000000000..25e131c1ad6 --- /dev/null +++ b/test/integration/render-tests/raster-contrast/literal/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-contrast": 0.2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-extent/maxzoom/expected.png b/test/integration/render-tests/raster-extent/maxzoom/expected.png new file mode 100644 index 00000000000..57cf3f091e4 Binary files /dev/null and b/test/integration/render-tests/raster-extent/maxzoom/expected.png differ diff --git a/test/integration/render-tests/raster-extent/maxzoom/style.json b/test/integration/render-tests/raster-extent/maxzoom/style.json new file mode 100644 index 00000000000..b3c147175cc --- /dev/null +++ b/test/integration/render-tests/raster-extent/maxzoom/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "green" + } + }, + { + "id": "raster-none", + "type": "raster", + "source": "satellite", + "maxzoom": 10, + "paint": { + "raster-fade-duration": 0 + } + } + ] +} diff --git a/test/integration/render-tests/raster-extent/minzoom/expected.png b/test/integration/render-tests/raster-extent/minzoom/expected.png new file mode 100644 index 00000000000..57cf3f091e4 Binary files /dev/null and b/test/integration/render-tests/raster-extent/minzoom/expected.png differ diff --git a/test/integration/render-tests/raster-extent/minzoom/style.json b/test/integration/render-tests/raster-extent/minzoom/style.json new file mode 100644 index 00000000000..14a53170836 --- /dev/null +++ b/test/integration/render-tests/raster-extent/minzoom/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 0, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "green" + } + }, + { + "id": "raster-none", + "type": "raster", + "source": "satellite", + "minzoom": 1, + "paint": { + "raster-fade-duration": 0 + } + } + ] +} diff --git a/test/integration/render-tests/raster-hue-rotate/default/expected.png b/test/integration/render-tests/raster-hue-rotate/default/expected.png new file mode 100644 index 00000000000..fc52dff7059 Binary files /dev/null and b/test/integration/render-tests/raster-hue-rotate/default/expected.png differ diff --git a/test/integration/render-tests/raster-hue-rotate/default/style.json b/test/integration/render-tests/raster-hue-rotate/default/style.json new file mode 100644 index 00000000000..a2db2f18d83 --- /dev/null +++ b/test/integration/render-tests/raster-hue-rotate/default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-hue-rotate/function/expected.png b/test/integration/render-tests/raster-hue-rotate/function/expected.png new file mode 100644 index 00000000000..5089dfd1aae Binary files /dev/null and b/test/integration/render-tests/raster-hue-rotate/function/expected.png differ diff --git a/test/integration/render-tests/raster-hue-rotate/function/style.json b/test/integration/render-tests/raster-hue-rotate/function/style.json new file mode 100644 index 00000000000..011c5c09923 --- /dev/null +++ b/test/integration/render-tests/raster-hue-rotate/function/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-hue-rotate": { + "stops": [ + [ + 16, + 270 + ], + [ + 17, + 365 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-hue-rotate/literal/expected.png b/test/integration/render-tests/raster-hue-rotate/literal/expected.png new file mode 100644 index 00000000000..903e24f444b Binary files /dev/null and b/test/integration/render-tests/raster-hue-rotate/literal/expected.png differ diff --git a/test/integration/render-tests/raster-hue-rotate/literal/style.json b/test/integration/render-tests/raster-hue-rotate/literal/style.json new file mode 100644 index 00000000000..14b3c376db5 --- /dev/null +++ b/test/integration/render-tests/raster-hue-rotate/literal/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-hue-rotate": 90 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-opacity/default/expected.png b/test/integration/render-tests/raster-opacity/default/expected.png new file mode 100644 index 00000000000..fc52dff7059 Binary files /dev/null and b/test/integration/render-tests/raster-opacity/default/expected.png differ diff --git a/test/integration/render-tests/raster-opacity/default/style.json b/test/integration/render-tests/raster-opacity/default/style.json new file mode 100644 index 00000000000..a2db2f18d83 --- /dev/null +++ b/test/integration/render-tests/raster-opacity/default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-opacity/function/expected.png b/test/integration/render-tests/raster-opacity/function/expected.png new file mode 100644 index 00000000000..e0436e48c54 Binary files /dev/null and b/test/integration/render-tests/raster-opacity/function/expected.png differ diff --git a/test/integration/render-tests/raster-opacity/function/style.json b/test/integration/render-tests/raster-opacity/function/style.json new file mode 100644 index 00000000000..ee238d41b8a --- /dev/null +++ b/test/integration/render-tests/raster-opacity/function/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-opacity": { + "stops": [ + [ + 16, + 0.6 + ], + [ + 17, + 0.8 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-opacity/literal/expected.png b/test/integration/render-tests/raster-opacity/literal/expected.png new file mode 100644 index 00000000000..58a5890d04b Binary files /dev/null and b/test/integration/render-tests/raster-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/raster-opacity/literal/style.json b/test/integration/render-tests/raster-opacity/literal/style.json new file mode 100644 index 00000000000..989097bf1dc --- /dev/null +++ b/test/integration/render-tests/raster-opacity/literal/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-opacity": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-saturation/default/expected.png b/test/integration/render-tests/raster-saturation/default/expected.png new file mode 100644 index 00000000000..fc52dff7059 Binary files /dev/null and b/test/integration/render-tests/raster-saturation/default/expected.png differ diff --git a/test/integration/render-tests/raster-saturation/default/style.json b/test/integration/render-tests/raster-saturation/default/style.json new file mode 100644 index 00000000000..a2db2f18d83 --- /dev/null +++ b/test/integration/render-tests/raster-saturation/default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-saturation/function/expected.png b/test/integration/render-tests/raster-saturation/function/expected.png new file mode 100644 index 00000000000..117239e9ccb Binary files /dev/null and b/test/integration/render-tests/raster-saturation/function/expected.png differ diff --git a/test/integration/render-tests/raster-saturation/function/style.json b/test/integration/render-tests/raster-saturation/function/style.json new file mode 100644 index 00000000000..aa0adda6b1d --- /dev/null +++ b/test/integration/render-tests/raster-saturation/function/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-saturation": { + "stops": [ + [ + 16, + 0.6 + ], + [ + 17, + 0.8 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-saturation/literal/expected.png b/test/integration/render-tests/raster-saturation/literal/expected.png new file mode 100644 index 00000000000..310230a601f Binary files /dev/null and b/test/integration/render-tests/raster-saturation/literal/expected.png differ diff --git a/test/integration/render-tests/raster-saturation/literal/style.json b/test/integration/render-tests/raster-saturation/literal/style.json new file mode 100644 index 00000000000..307b80829cd --- /dev/null +++ b/test/integration/render-tests/raster-saturation/literal/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0, + "raster-saturation": 0.2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-visibility/none/expected.png b/test/integration/render-tests/raster-visibility/none/expected.png new file mode 100644 index 00000000000..5308b74aacb Binary files /dev/null and b/test/integration/render-tests/raster-visibility/none/expected.png differ diff --git a/test/integration/render-tests/raster-visibility/none/style.json b/test/integration/render-tests/raster-visibility/none/style.json new file mode 100644 index 00000000000..1cfd1c686f9 --- /dev/null +++ b/test/integration/render-tests/raster-visibility/none/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "raster-visible", + "type": "raster", + "source": "satellite", + "layout": { + "visibility": "visible" + }, + "paint": { + "raster-opacity": 0, + "raster-fade-duration": 0 + } + }, + { + "id": "raster-none", + "type": "raster", + "source": "satellite", + "layout": { + "visibility": "none" + }, + "paint": { + "raster-opacity": 1, + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/raster-visibility/visible/expected.png b/test/integration/render-tests/raster-visibility/visible/expected.png new file mode 100644 index 00000000000..fc52dff7059 Binary files /dev/null and b/test/integration/render-tests/raster-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/raster-visibility/visible/style.json b/test/integration/render-tests/raster-visibility/visible/style.json new file mode 100644 index 00000000000..54e4718e36f --- /dev/null +++ b/test/integration/render-tests/raster-visibility/visible/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "raster-visible", + "type": "raster", + "source": "satellite", + "layout": { + "visibility": "visible" + }, + "paint": { + "raster-opacity": 1, + "raster-fade-duration": 0 + } + }, + { + "id": "raster-none", + "type": "raster", + "source": "satellite", + "layout": { + "visibility": "none" + }, + "paint": { + "raster-opacity": 0, + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2305/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2305/expected.png new file mode 100644 index 00000000000..df73fbcef8f Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2305/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2305/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2305/style.json new file mode 100644 index 00000000000..484b0bd0cdc --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2305/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6927" + } + } + }, + "zoom": 2, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "cemetery_icon" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2477/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2477/expected.png new file mode 100644 index 00000000000..239ba6376ed Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2477/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2477/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2477/style.json new file mode 100644 index 00000000000..306bac68662 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2477/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "operations": [ + ["addClass", "mapbox", {"transition": false}], + ["setPaintProperty", "land", "fill-pattern", "zoo_icon"], + ["wait"] + ] + } + }, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "#3bb2d0", + "fill-pattern": "monument_icon" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2523/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2523/expected.png new file mode 100644 index 00000000000..fabc282175b Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2523/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2523/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2523/style.json new file mode 100644 index 00000000000..10397868a9b --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2523/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "diff": 0.003 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "cemetery_icon" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2533/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2533/expected.png new file mode 100644 index 00000000000..239ba6376ed Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2533/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2533/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2533/style.json new file mode 100644 index 00000000000..1898599fbce --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2533/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "operations": [ + ["setPaintProperty", "land", "fill-pattern", "zoo_icon"], + ["wait"] + ] + } + }, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "#3bb2d0" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2534/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2534/expected.png new file mode 100644 index 00000000000..7c1c1a9647d Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2534/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2534/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2534/style.json new file mode 100644 index 00000000000..03e25a3c7a3 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2534/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "diff": 0.0003, + "operations": [ + ["setPaintProperty", "land", "fill-pattern", null], + ["wait"] + ] + } + }, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "#3bb2d0", + "fill-pattern": "zoo_icon" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2787/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2787/expected.png new file mode 100644 index 00000000000..da62bb0db1d Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2787/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2787/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2787/style.json new file mode 100644 index 00000000000..4eb359463bf --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2787/style.json @@ -0,0 +1,14 @@ +{ + "version": 8, + "metadata": { + "test": { + "operations": [ + ["addLayer", {"id": "mapbox", "type": "background"}], + ["removeLayer", "mapbox"], + ["wait"] + ] + } + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2846/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#2846/expected.png new file mode 100644 index 00000000000..a9ed2d1eed3 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#2846/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#2846/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#2846/style.json new file mode 100644 index 00000000000..cc1512f4188 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#2846/style.json @@ -0,0 +1,143 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "source": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 0 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -12, + -12 + ], + [ + -12, + 12 + ], + [ + -4, + 12 + ], + [ + -4, + -12 + ], + [ + -12, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 1 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -4, + -12 + ], + [ + -4, + 12 + ], + [ + 4, + 12 + ], + [ + 4, + -12 + ], + [ + -4, + -12 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + 4, + -12 + ], + [ + 4, + 12 + ], + [ + 12, + 12 + ], + [ + 12, + -12 + ], + [ + 4, + -12 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "source", + "paint": { + "fill-opacity": { + "property": "property", + "stops": [ + [ + 0, + 0 + ], + [ + 4, + 1 + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3010/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3010/expected.png new file mode 100644 index 00000000000..61995c23168 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3010/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3010/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3010/style.json new file mode 100644 index 00000000000..d2d29128a58 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3010/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.51309394836426, + 37.563391708549425 + ], + "zoom": 20, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3107/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3107/expected.png new file mode 100644 index 00000000000..da9142bf698 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3107/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3107/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3107/style.json new file mode 100644 index 00000000000..b9c9ccd284a --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3107/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-outline-color": "hsla(0, 0, 0, 0)", + "fill-color": "hsla(0, 0, 0, 0)", + "fill-pattern": "generic_icon" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3365/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3365/expected.png new file mode 100644 index 00000000000..93eedddbd5c Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3365/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3365/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3365/style.json new file mode 100644 index 00000000000..58f3897aa96 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3365/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128, + "operations": [ + [ + "wait" + ], + [ + "setBearing", + 90 + ], + [ + "wait" + ] + ] + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "GeometryCollection", + "geometries": [ + { + "type": "Point", + "coordinates": [ + 0, + 20 + ] + }, + { + "type": "Point", + "coordinates": [ + 0, + -20 + ] + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-field": "Long Label", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3394/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3394/expected.png new file mode 100644 index 00000000000..3e501e2ee5c Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3394/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3394/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3394/style.json new file mode 100644 index 00000000000..1c442038cef --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3394/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "1", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-field": "1", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + }, + { + "id": "0", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-field": "0", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3426/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3426/expected.png new file mode 100644 index 00000000000..204976c3fac Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3426/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3426/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3426/style.json new file mode 100644 index 00000000000..5e95679f1b6 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3426/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "wait" + ], + [ + "setPaintProperty", + "line", + "line-width", + 10 + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -180, + 0 + ], + [ + 180, + 0 + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-width": 1, + "line-dasharray": [1, 1] + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3548/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3548/expected.png new file mode 100644 index 00000000000..425371a30e7 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3548/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3548/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3548/style.json new file mode 100644 index 00000000000..a2465bdcb3e --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3548/style.json @@ -0,0 +1,190 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + }, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "sources": { + "rect": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0004, + -0.0004 + ], + [ + -0.0004, + 0 + ], + [ + 0.0004, + 0.0004 + ], + [ + 0.0004, + 0 + ], + [ + -0.0004, + -0.0004 + ] + ] + ] + } + } + ] + } + }, + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "property": 30 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0003, + -0.0003 + ], + [ + -0.0003, + 0.0003 + ], + [ + 0.0003, + 0.0003 + ], + [ + 0.0003, + -0.0003 + ], + [ + -0.0003, + -0.0003 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 20 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0002, + 0 + ], + [ + 0, + 0.0002 + ], + [ + 0.0002, + 0 + ], + [ + 0, + -0.0002 + ], + [ + -0.0002, + 0 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "property": 10 + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -0.0001, + -0.0001 + ], + [ + -0.0001, + 0.0001 + ], + [ + 0.0001, + 0.0001 + ], + [ + 0.0001, + -0.0001 + ], + [ + -0.0001, + -0.0001 + ] + ] + ] + } + } + ] + } + } + }, + "pitch": 80, + "zoom": 18, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "blue" + } + }, + { + "id": "rect", + "type": "fill", + "source": "rect", + "paint": { + "fill-color": "rgba(0,255,255,1)" + } + }, + { + "id": "extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10, + "fill-extrusion-color": "black" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3612/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3612/expected.png new file mode 100644 index 00000000000..97ffa6ea4aa Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3612/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3612/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3612/style.json new file mode 100644 index 00000000000..dd100894e50 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3612/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.413, + 52.498 + ], + "zoom": 15, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-pattern": "cemetery_icon" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + }, + { + "id": "translucent", + "type": "fill", + "source": "mapbox", + "source-layer": "landuse", + "filter": ["==", "class", "park"], + "paint": { + "fill-color": "rgba(0,0,0,0.8)", + "fill-antialias": false + } + }, + { + "id": "opaque", + "type": "fill", + "source": "mapbox", + "source-layer": "landuse", + "filter": ["==", "class", "pitch"], + "paint": { + "fill-color": "red" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3614/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3614/expected.png new file mode 100644 index 00000000000..b0f1bd27b77 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3614/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3614/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3614/style.json new file mode 100644 index 00000000000..1cc10611ffd --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3614/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "wait" + ], + [ + "setBearing", + 10 + ], + [ + "wait" + ] + ] + } + }, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "satellite", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3623/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3623/expected.png new file mode 100644 index 00000000000..93eedddbd5c Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3623/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3623/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3623/style.json new file mode 100644 index 00000000000..94bdbaf7c09 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3623/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128, + "operations": [ + [ + "wait" + ], + [ + "setZoom", + 1 + ], + [ + "wait" + ], + [ + "setBearing", + 90 + ], + [ + "wait" + ], + [ + "setZoom", + 0 + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "GeometryCollection", + "geometries": [ + { + "type": "Point", + "coordinates": [ + 0, + 20 + ] + }, + { + "type": "Point", + "coordinates": [ + 0, + -20 + ] + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-field": "Long Label", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3633/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3633/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3633/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3633/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3633/style.json new file mode 100644 index 00000000000..f2d865dc993 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3633/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ "removeLayer", "circle" ], + [ + "addLayer", + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [{ + "id": "circle", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-color": "red" + } + }] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3682/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3682/expected.png new file mode 100644 index 00000000000..f5be29d3660 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3682/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3682/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3682/style.json new file mode 100644 index 00000000000..d54a8cabcfb --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3682/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3682", + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "width": 5 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 0, + -20 + ], + [ + 0, + 20 + ] + ] + } + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-dasharray": [ + 1, + 1 + ], + "line-width": { + "type": "identity", + "property": "width" + } + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3723/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3723/expected.png new file mode 100644 index 00000000000..fc7b137712a Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3723/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json new file mode 100644 index 00000000000..5481ce5592e --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3723/style.json @@ -0,0 +1,29 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/alpha.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0, + "raster-brightness-min": 0.5 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3819/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3819/expected.png new file mode 100644 index 00000000000..3a2d7006298 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3819/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json new file mode 100644 index 00000000000..14adeb2c265 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3819/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [] + } + } + }, + "layers": [ + { + "id": "red", + "type": "background", + "paint": { + "background-color": "rgb(255, 0, 0)", + "background-opacity": 1 + } + }, + { + "id": "green", + "type": "background", + "paint": { + "background-color": "rgb(0, 255, 0)", + "background-opacity": 0 + } + }, + { + "id": "other", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3903/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#3903/expected.png new file mode 100644 index 00000000000..7b8ae763ee7 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-js#3903/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json new file mode 100644 index 00000000000..57acc74aeb2 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#3903/style.json @@ -0,0 +1,32 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 1, + "height": 1, + "operations": [ + [ + "removeLayer", + "background" + ], + [ + "addLayer", + { + "id": "background", + "type": "background" + } + ], + [ + "wait" + ] + ] + } + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#3292/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#3292/expected.png new file mode 100644 index 00000000000..55cfceeb319 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#3292/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#3292/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#3292/style.json new file mode 100644 index 00000000000..92dc8da5de7 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#3292/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "blue", + "fill-antialias": false + } + }, + { + "id": "background", + "type": "background", + "paint": { + "background-color": "rgba(0,0,0,0.7)" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#5648/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#5648/expected.png new file mode 100644 index 00000000000..0497ef600c9 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#5648/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#5648/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#5648/style.json new file mode 100644 index 00000000000..6eea41aed62 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#5648/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "diff": 0.0003 + } + }, + "center": [ + -170, + 0 + ], + "zoom": 0.99, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "#3bb2d0" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#5701/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#5701/expected.png new file mode 100644 index 00000000000..58f91cc82a6 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#5701/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#5701/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#5701/style.json new file mode 100644 index 00000000000..8e668e0bc5d --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#5701/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "wait" + ], + [ + "setLayoutProperty", + "symbol", + "icon-image", + "circle-12" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#5754/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#5754/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#5754/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#5754/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#5754/style.json new file mode 100644 index 00000000000..4efb2abe0ba --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#5754/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + [ + "==", + "property", + 2 + ] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": 2 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6063/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#6063/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#6063/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6063/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#6063/style.json new file mode 100644 index 00000000000..ae2b0163cde --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#6063/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "wait" + ], + [ + "setFilter", + "symbol", + [ + "==", + "property", + "b" + ] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6233/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#6233/expected.png new file mode 100644 index 00000000000..6af662bba55 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#6233/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6233/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#6233/style.json new file mode 100644 index 00000000000..f5e3bd41232 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#6233/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "wait" + ], + [ + "setLayoutProperty", + "line", + "visibility", + "visible" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [ + { + "id": "placeholder - forces the source to load", + "type": "line", + "source": "geojson", + "filter": ["==", "$id", "nonesuch"] + }, + { + "id": "line", + "type": "line", + "source": "geojson", + "layout": { + "visibility": "none" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6820/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#6820/expected.png new file mode 100644 index 00000000000..44c8081cef9 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#6820/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6820/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#6820/style.json new file mode 100644 index 00000000000..b79d4bae66c --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#6820/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 64, + "width": 64, + "operations": [ + [ + "wait" + ], + [ + "setLayoutProperty", + "symbol", + "text-field", + "ā" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "A", + "text-font": [ + "NotoCJK" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6903/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#6903/expected.png new file mode 100644 index 00000000000..ec5b0f2832a Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#6903/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#6903/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#6903/style.json new file mode 100644 index 00000000000..2e9f0abcca2 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#6903/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 64, + "width": 64, + "operations": [ + [ + "wait" + ], + [ + "setLayoutProperty", + "symbol", + "icon-size", + 2 + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-size": 1, + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "generic_icon" + } + } + ] +} + diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7241/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#7241/expected.png new file mode 100644 index 00000000000..7b072c4dbae Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#7241/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7241/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#7241/style.json new file mode 100644 index 00000000000..db40942cdf0 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#7241/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "wait" + ], + [ + "setLayoutProperty", + "layer", + "visibility", + "none" + ], + [ + "wait" + ], + [ + "setLayoutProperty", + "layer", + "visibility", + "visible" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [0, 0] + } + } + }, + "layers": [ + { + "id": "layer", + "type": "circle", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7357/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#7357/expected.png new file mode 100644 index 00000000000..1d1f1e1edb4 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#7357/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7357/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#7357/style.json new file mode 100644 index 00000000000..8f756a00d4c --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#7357/style.json @@ -0,0 +1,84 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/7357" + } + } + }, + "zoom": 1, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + 1 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + 1 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 1, + -1 + ] + } + }, + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + -1, + -1 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-color": "#fff", + "circle-radius": 3, + "circle-stroke-width": 3, + "circle-stroke-color": "blue" + } + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7572/expected.png b/test/integration/render-tests/regressions/mapbox-gl-native#7572/expected.png new file mode 100644 index 00000000000..766127938f7 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-native#7572/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-native#7572/style.json b/test/integration/render-tests/regressions/mapbox-gl-native#7572/style.json new file mode 100644 index 00000000000..86e5cc3e7e4 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-native#7572/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "b", + "icon-offset", + [0, 10] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [0, 0] + } + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "a", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "generic_icon", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-offset": [0, 0] + } + }, + { + "id": "b", + "ref": "a" + } + ] +} diff --git a/test/integration/render-tests/regressions/mapbox-gl-shaders#37/expected.png b/test/integration/render-tests/regressions/mapbox-gl-shaders#37/expected.png new file mode 100644 index 00000000000..a265ee8a844 Binary files /dev/null and b/test/integration/render-tests/regressions/mapbox-gl-shaders#37/expected.png differ diff --git a/test/integration/render-tests/regressions/mapbox-gl-shaders#37/style.json b/test/integration/render-tests/regressions/mapbox-gl-shaders#37/style.json new file mode 100644 index 00000000000..1f73db93c21 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-shaders#37/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860" + } + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "opacity": 0.6 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -10, + -20 + ], + [ + -10, + 20 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "opacity": 0.9 + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 10, + -20 + ], + [ + 10, + 20 + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson", + "paint": { + "line-width": 5, + "line-dasharray": [ + 1, + 1 + ], + "line-opacity": { + "type": "identity", + "property": "opacity" + } + } + } + ] +} diff --git a/test/integration/render-tests/results.html.tmpl b/test/integration/render-tests/results.html.tmpl new file mode 100644 index 00000000000..e426f1b3f47 --- /dev/null +++ b/test/integration/render-tests/results.html.tmpl @@ -0,0 +1,45 @@ + + + + + + + + +{{#each results}} + + + + + +{{/each}} +
Actual / ExpectedDiffInfo
+

{{group}}/{{test}}

+
    +
  • diff: {{difference}}
  • + {{#if zoom}}
  • zoom: {{zoom}}
  • {{/if}} + {{#if center}}
  • center: {{center}}
  • {{/if}} + {{#if bearing}}
  • bearing: {{bearing}}
  • {{/if}} + {{#if pitch}}
  • pitch: {{pitch}}
  • {{/if}} +
  • width: {{width}}
  • +
  • height: {{height}}
  • +
+
diff --git a/test/integration/render-tests/retina-raster/default/expected.png b/test/integration/render-tests/retina-raster/default/expected.png new file mode 100644 index 00000000000..561f9d06f1c Binary files /dev/null and b/test/integration/render-tests/retina-raster/default/expected.png differ diff --git a/test/integration/render-tests/retina-raster/default/style.json b/test/integration/render-tests/retina-raster/default/style.json new file mode 100644 index 00000000000..e834a122879 --- /dev/null +++ b/test/integration/render-tests/retina-raster/default/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 256, + "height": 128, + "pixelRatio": 2 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/filter-default-to-false/expected.png b/test/integration/render-tests/runtime-styling/filter-default-to-false/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/filter-default-to-false/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/filter-default-to-false/style.json b/test/integration/render-tests/runtime-styling/filter-default-to-false/style.json new file mode 100644 index 00000000000..2614d30e840 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/filter-default-to-false/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + [ + "==", + "property", + "b" + ] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/filter-default-to-true/expected.png b/test/integration/render-tests/runtime-styling/filter-default-to-true/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/filter-default-to-true/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/filter-default-to-true/style.json b/test/integration/render-tests/runtime-styling/filter-default-to-true/style.json new file mode 100644 index 00000000000..bd12f6558a2 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/filter-default-to-true/style.json @@ -0,0 +1,55 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + [ + "==", + "property", + "a" + ] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/filter-false-to-default/expected.png b/test/integration/render-tests/runtime-styling/filter-false-to-default/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/filter-false-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/filter-false-to-default/style.json b/test/integration/render-tests/runtime-styling/filter-false-to-default/style.json new file mode 100644 index 00000000000..8544bfb3e0e --- /dev/null +++ b/test/integration/render-tests/runtime-styling/filter-false-to-default/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + false + ] + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/filter-false-to-true/expected.png b/test/integration/render-tests/runtime-styling/filter-false-to-true/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/filter-false-to-true/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/filter-false-to-true/style.json b/test/integration/render-tests/runtime-styling/filter-false-to-true/style.json new file mode 100644 index 00000000000..0570d091073 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/filter-false-to-true/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + [ + "==", + "property", + "a" + ] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + false + ] + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/filter-true-to-default/expected.png b/test/integration/render-tests/runtime-styling/filter-true-to-default/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/filter-true-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/filter-true-to-default/style.json b/test/integration/render-tests/runtime-styling/filter-true-to-default/style.json new file mode 100644 index 00000000000..d1d9f9787b4 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/filter-true-to-default/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + true + ] + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/filter-true-to-false/expected.png b/test/integration/render-tests/runtime-styling/filter-true-to-false/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/filter-true-to-false/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/filter-true-to-false/style.json b/test/integration/render-tests/runtime-styling/filter-true-to-false/style.json new file mode 100644 index 00000000000..efb71facfe2 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/filter-true-to-false/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setFilter", + "symbol", + [ + "==", + "property", + "b" + ] + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + true + ] + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/image-add/expected.png b/test/integration/render-tests/runtime-styling/image-add/expected.png new file mode 100644 index 00000000000..a88d85daa6f Binary files /dev/null and b/test/integration/render-tests/runtime-styling/image-add/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/image-add/style.json b/test/integration/render-tests/runtime-styling/image-add/style.json new file mode 100644 index 00000000000..7fe8859ac17 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/image-add/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/2059" + }, + "skipped": { + "js": true + }, + "operations": [ + [ + "addImage", + "marker", + "./image/marker.png" + ], + [ + "addLayer", + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "marker" + } + } + ], + [ + "wait" + ] + ] + } + }, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [0, 0] + } + } + }, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-add-background/expected.png b/test/integration/render-tests/runtime-styling/layer-add-background/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-add-background/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-add-background/style.json b/test/integration/render-tests/runtime-styling/layer-add-background/style.json new file mode 100644 index 00000000000..e50fbeb0024 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-add-background/style.json @@ -0,0 +1,26 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addLayer", + { + "id": "background", + "type": "background" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-add-circle/expected.png b/test/integration/render-tests/runtime-styling/layer-add-circle/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-add-circle/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-add-circle/style.json b/test/integration/render-tests/runtime-styling/layer-add-circle/style.json new file mode 100644 index 00000000000..5f758bc094c --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-add-circle/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addLayer", + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-add-fill/expected.png b/test/integration/render-tests/runtime-styling/layer-add-fill/expected.png new file mode 100644 index 00000000000..cfe5d638d22 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-add-fill/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-add-fill/style.json b/test/integration/render-tests/runtime-styling/layer-add-fill/style.json new file mode 100644 index 00000000000..6c812388307 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-add-fill/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addLayer", + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-add-line/expected.png b/test/integration/render-tests/runtime-styling/layer-add-line/expected.png new file mode 100644 index 00000000000..6af662bba55 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-add-line/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-add-line/style.json b/test/integration/render-tests/runtime-styling/layer-add-line/style.json new file mode 100644 index 00000000000..cafb9172780 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-add-line/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addLayer", + { + "id": "line", + "type": "line", + "source": "geojson" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-add-raster/expected.png b/test/integration/render-tests/runtime-styling/layer-add-raster/expected.png new file mode 100644 index 00000000000..1c1ef5d4c64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-add-raster/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-add-raster/style.json b/test/integration/render-tests/runtime-styling/layer-add-raster/style.json new file mode 100644 index 00000000000..dc3671d8c5a --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-add-raster/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addLayer", + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-add-symbol/expected.png b/test/integration/render-tests/runtime-styling/layer-add-symbol/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-add-symbol/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-add-symbol/style.json b/test/integration/render-tests/runtime-styling/layer-add-symbol/style.json new file mode 100644 index 00000000000..62eb54f07d6 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-add-symbol/style.json @@ -0,0 +1,42 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addLayer", + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/layer-remove-background/expected.png b/test/integration/render-tests/runtime-styling/layer-remove-background/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-remove-background/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-remove-background/style.json b/test/integration/render-tests/runtime-styling/layer-remove-background/style.json new file mode 100644 index 00000000000..68533286791 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-remove-background/style.json @@ -0,0 +1,28 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "removeLayer", + "background" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layer-remove-circle/expected.png b/test/integration/render-tests/runtime-styling/layer-remove-circle/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-remove-circle/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-remove-circle/style.json b/test/integration/render-tests/runtime-styling/layer-remove-circle/style.json new file mode 100644 index 00000000000..26ba0fe7197 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-remove-circle/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "removeLayer", + "circle" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layer-remove-fill/expected.png b/test/integration/render-tests/runtime-styling/layer-remove-fill/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-remove-fill/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-remove-fill/style.json b/test/integration/render-tests/runtime-styling/layer-remove-fill/style.json new file mode 100644 index 00000000000..8ecf42103b2 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-remove-fill/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "removeLayer", + "fill" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layer-remove-line/expected.png b/test/integration/render-tests/runtime-styling/layer-remove-line/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-remove-line/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-remove-line/style.json b/test/integration/render-tests/runtime-styling/layer-remove-line/style.json new file mode 100644 index 00000000000..9b0ddcdf11c --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-remove-line/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "removeLayer", + "line" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layer-remove-raster/expected.png b/test/integration/render-tests/runtime-styling/layer-remove-raster/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-remove-raster/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-remove-raster/style.json b/test/integration/render-tests/runtime-styling/layer-remove-raster/style.json new file mode 100644 index 00000000000..1cbca0b3542 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-remove-raster/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "removeLayer", + "raster" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layer-remove-symbol/expected.png b/test/integration/render-tests/runtime-styling/layer-remove-symbol/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layer-remove-symbol/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layer-remove-symbol/style.json b/test/integration/render-tests/runtime-styling/layer-remove-symbol/style.json new file mode 100644 index 00000000000..29f0d9320db --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layer-remove-symbol/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "removeLayer", + "symbol" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layout-property-default-to-literal/expected.png b/test/integration/render-tests/runtime-styling/layout-property-default-to-literal/expected.png new file mode 100644 index 00000000000..5cb7d2dff19 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-default-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-default-to-literal/style.json b/test/integration/render-tests/runtime-styling/layout-property-default-to-literal/style.json new file mode 100644 index 00000000000..bb2c62b5a8d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-default-to-literal/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-image", + "triangle-12" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layout-property-default-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/layout-property-default-to-property-function/expected.png new file mode 100644 index 00000000000..15bf5bf3b64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-default-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-default-to-property-function/style.json b/test/integration/render-tests/runtime-styling/layout-property-default-to-property-function/style.json new file mode 100644 index 00000000000..1cf51b85153 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-default-to-property-function/style.json @@ -0,0 +1,79 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-rotate", + { + "type": "identity", + "property": "rotate" + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/layout-property-default-to-zoom-function/expected.png b/test/integration/render-tests/runtime-styling/layout-property-default-to-zoom-function/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-default-to-zoom-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-default-to-zoom-function/style.json b/test/integration/render-tests/runtime-styling/layout-property-default-to-zoom-function/style.json new file mode 100644 index 00000000000..b3f8aa143b5 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-default-to-zoom-function/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-image", + { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layout-property-literal-to-default/expected.png b/test/integration/render-tests/runtime-styling/layout-property-literal-to-default/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-literal-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-literal-to-default/style.json b/test/integration/render-tests/runtime-styling/layout-property-literal-to-default/style.json new file mode 100644 index 00000000000..4e1e1bc37b7 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-literal-to-default/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-image", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layout-property-literal-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/layout-property-literal-to-property-function/expected.png new file mode 100644 index 00000000000..15bf5bf3b64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-literal-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-literal-to-property-function/style.json b/test/integration/render-tests/runtime-styling/layout-property-literal-to-property-function/style.json new file mode 100644 index 00000000000..b7b94cc6e2b --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-literal-to-property-function/style.json @@ -0,0 +1,80 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-rotate", + { + "type": "identity", + "property": "rotate" + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": 90 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/layout-property-literal-to-zoom-function/expected.png b/test/integration/render-tests/runtime-styling/layout-property-literal-to-zoom-function/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-literal-to-zoom-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-literal-to-zoom-function/style.json b/test/integration/render-tests/runtime-styling/layout-property-literal-to-zoom-function/style.json new file mode 100644 index 00000000000..e371c01ed09 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-literal-to-zoom-function/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-image", + { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layout-property-property-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-default/expected.png new file mode 100644 index 00000000000..76bb48439e1 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-property-function-to-default/style.json b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-default/style.json new file mode 100644 index 00000000000..1f952ce260d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-default/style.json @@ -0,0 +1,80 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-rotate", + null + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": { + "type": "identity", + "property": "rotate" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/layout-property-property-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-literal/expected.png new file mode 100644 index 00000000000..ed1c592fe8d Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-property-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-literal/style.json new file mode 100644 index 00000000000..f49b38e5b34 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-property-function-to-literal/style.json @@ -0,0 +1,80 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-rotate", + 90 + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": { + "type": "identity", + "property": "rotate" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-default/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-default/style.json b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-default/style.json new file mode 100644 index 00000000000..80c03f2673f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-default/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-image", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-literal/expected.png new file mode 100644 index 00000000000..5cb7d2dff19 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-literal/style.json new file mode 100644 index 00000000000..d53711a19d6 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/layout-property-zoom-function-to-literal/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "symbol", + "icon-image", + "triangle-12" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/paint-property-default-to-literal/expected.png b/test/integration/render-tests/runtime-styling/paint-property-default-to-literal/expected.png new file mode 100644 index 00000000000..3a2d7006298 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-default-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-default-to-literal/style.json b/test/integration/render-tests/runtime-styling/paint-property-default-to-literal/style.json new file mode 100644 index 00000000000..3ad9302bc67 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-default-to-literal/style.json @@ -0,0 +1,30 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setPaintProperty", + "background", + "background-color", + "red" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/paint-property-default-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/paint-property-default-to-property-function/expected.png new file mode 100644 index 00000000000..b62d1b2ece7 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-default-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-default-to-property-function/style.json b/test/integration/render-tests/runtime-styling/paint-property-default-to-property-function/style.json new file mode 100644 index 00000000000..072a4a7cae2 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-default-to-property-function/style.json @@ -0,0 +1,75 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setPaintProperty", + "circle", + "circle-radius", + { + "type": "identity", + "property": "radius" + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/paint-property-default-to-zoom-function/expected.png b/test/integration/render-tests/runtime-styling/paint-property-default-to-zoom-function/expected.png new file mode 100644 index 00000000000..cc46431ca9e Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-default-to-zoom-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-default-to-zoom-function/style.json b/test/integration/render-tests/runtime-styling/paint-property-default-to-zoom-function/style.json new file mode 100644 index 00000000000..be2c0bf2074 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-default-to-zoom-function/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setPaintProperty", + "background", + "background-color", + { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/paint-property-fill-flat-to-extrude/expected.png b/test/integration/render-tests/runtime-styling/paint-property-fill-flat-to-extrude/expected.png new file mode 100644 index 00000000000..8f17810f559 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-fill-flat-to-extrude/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-fill-flat-to-extrude/style.json b/test/integration/render-tests/runtime-styling/paint-property-fill-flat-to-extrude/style.json new file mode 100644 index 00000000000..00ec8608baa --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-fill-flat-to-extrude/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/6745" + }, + "operations": [ + [ + "wait" + ], + [ + "setPaintProperty", + "fill-extrusion", + "fill-extrusion-height", + 10 + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill-extrusion", + "type": "fill-extrusion", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/paint-property-literal-to-default/expected.png b/test/integration/render-tests/runtime-styling/paint-property-literal-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-literal-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-literal-to-default/style.json b/test/integration/render-tests/runtime-styling/paint-property-literal-to-default/style.json new file mode 100644 index 00000000000..a26c4b69c4d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-literal-to-default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setPaintProperty", + "background", + "background-color", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/paint-property-literal-to-function/expected.png b/test/integration/render-tests/runtime-styling/paint-property-literal-to-function/expected.png new file mode 100644 index 00000000000..cc46431ca9e Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-literal-to-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-literal-to-function/style.json b/test/integration/render-tests/runtime-styling/paint-property-literal-to-function/style.json new file mode 100644 index 00000000000..15ddafa042e --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-literal-to-function/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setPaintProperty", + "background", + "background-color", + { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/paint-property-literal-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/paint-property-literal-to-property-function/expected.png new file mode 100644 index 00000000000..b62d1b2ece7 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-literal-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-literal-to-property-function/style.json b/test/integration/render-tests/runtime-styling/paint-property-literal-to-property-function/style.json new file mode 100644 index 00000000000..a397db1ec6d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-literal-to-property-function/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setPaintProperty", + "circle", + "circle-radius", + { + "type": "identity", + "property": "radius" + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/paint-property-property-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-default/expected.png new file mode 100644 index 00000000000..62c8dbcada2 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-property-function-to-default/style.json b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-default/style.json new file mode 100644 index 00000000000..8561860ae06 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-default/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setPaintProperty", + "circle", + "circle-radius", + null + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/paint-property-property-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-literal/expected.png new file mode 100644 index 00000000000..b48c32b3e5f Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-property-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-literal/style.json new file mode 100644 index 00000000000..868217ccc7e --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-property-function-to-literal/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/4860 https://github.com/mapbox/mapbox-gl-native/issues/6518" + }, + "operations": [ + [ + "setPaintProperty", + "circle", + "circle-radius", + 1 + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-default/style.json b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-default/style.json new file mode 100644 index 00000000000..1ab47c3bcef --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-default/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setPaintProperty", + "background", + "background-color", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-literal/expected.png new file mode 100644 index 00000000000..3a2d7006298 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-literal/style.json new file mode 100644 index 00000000000..803444db3c9 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/paint-property-zoom-function-to-literal/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setPaintProperty", + "background", + "background-color", + "red" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-default-to-false/expected.png b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-false/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-false/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-default-to-false/style.json b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-false/style.json new file mode 100644 index 00000000000..4d93461620d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-false/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + "b" + ] + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-default-to-true/expected.png b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-true/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-true/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-default-to-true/style.json b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-true/style.json new file mode 100644 index 00000000000..eb3002c3097 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-filter-default-to-true/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + "a" + ] + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-false-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-default/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-false-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-default/style.json new file mode 100644 index 00000000000..7c2c0d3f82d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-default/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + false + ] + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-false-to-true/expected.png b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-true/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-true/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-false-to-true/style.json b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-true/style.json new file mode 100644 index 00000000000..2adba3b1e5d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-filter-false-to-true/style.json @@ -0,0 +1,97 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + "a" + ] + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + false + ] + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-true-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-default/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-true-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-default/style.json new file mode 100644 index 00000000000..0d227001d3f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-default/style.json @@ -0,0 +1,92 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + true + ] + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-true-to-false/expected.png b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-false/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-false/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-filter-true-to-false/style.json b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-false/style.json new file mode 100644 index 00000000000..00117ca7312 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-filter-true-to-false/style.json @@ -0,0 +1,97 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + "b" + ] + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": { + "property": "a" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + }, + "filter": [ + "==", + "property", + true + ] + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-glyphs/expected.png b/test/integration/render-tests/runtime-styling/set-style-glyphs/expected.png new file mode 100644 index 00000000000..08a12b4dd74 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-glyphs/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-glyphs/style.json b/test/integration/render-tests/runtime-styling/set-style-glyphs/style.json new file mode 100644 index 00000000000..1f7e1e84671 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-glyphs/style.json @@ -0,0 +1,93 @@ +{ + "version": 8, + "metadata": { + "test": { + "skipped": { + "native": "needs issue" + }, + "width": 512, + "height": 512, + "allowed": 0.0003, + "operations": [ + [ + "setStyle", + { + "version": 8, + "center": [ + -70.751953125, + 43.38904828677382 + ], + "zoom": 11, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/chinese.geojson" + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/NotoCJK/{range}.pbf?ignore={fontstack}&hat_tip=jfirebaugh", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "{name}", + "text-font": [ + "NotoCJK" + ], + "symbol-placement": "point" + } + } + ] + } + ], + [ + "wait" + ] + ] + } + }, + "center": [ + -70.751953125, + 43.38904828677382 + ], + "zoom": 11, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/chinese.geojson" + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "HELLO", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-background/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-add-background/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-add-background/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-background/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-add-background/style.json new file mode 100644 index 00000000000..cf600b93f4c --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-add-background/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-circle/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-add-circle/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-add-circle/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-circle/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-add-circle/style.json new file mode 100644 index 00000000000..a316b317347 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-add-circle/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-fill/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-add-fill/expected.png new file mode 100644 index 00000000000..cfe5d638d22 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-add-fill/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-fill/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-add-fill/style.json new file mode 100644 index 00000000000..49a671bfd2e --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-add-fill/style.json @@ -0,0 +1,101 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-line/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-add-line/expected.png new file mode 100644 index 00000000000..6af662bba55 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-add-line/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-line/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-add-line/style.json new file mode 100644 index 00000000000..d3d09b42ef3 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-add-line/style.json @@ -0,0 +1,89 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-raster/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-add-raster/expected.png new file mode 100644 index 00000000000..1c1ef5d4c64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-add-raster/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-raster/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-add-raster/style.json new file mode 100644 index 00000000000..2572f60018f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-add-raster/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-symbol/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-add-symbol/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-add-symbol/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-add-symbol/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-add-symbol/style.json new file mode 100644 index 00000000000..de99a490958 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-add-symbol/style.json @@ -0,0 +1,66 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-change-source-layer/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-layer/expected.png new file mode 100644 index 00000000000..0c6a942c0a1 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-layer/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-change-source-layer/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-layer/style.json new file mode 100644 index 00000000000..f35273a8bd8 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-layer/style.json @@ -0,0 +1,66 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "vector": { + "type": "vector", + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "vector", + "source-layer": "building" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "transition": { + "duration": 0 + }, + "sources": { + "vector": { + "type": "vector", + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "vector", + "source-layer": "landuse" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-change-source-type/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-type/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-type/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-change-source-type/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-type/style.json new file mode 100644 index 00000000000..d0b16f9f356 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-change-source-type/style.json @@ -0,0 +1,75 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "circle", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dot.sdf" + }, + "paint": { + "icon-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-change-source/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-change-source/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-change-source/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-change-source/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-change-source/style.json new file mode 100644 index 00000000000..4bd28f1f3a8 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-change-source/style.json @@ -0,0 +1,87 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + "wrong-geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 5, + 5 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + }, + "wrong-geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 5, + 5 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "wrong-geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-background/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-remove-background/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-remove-background/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-background/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-remove-background/style.json new file mode 100644 index 00000000000..12199bd8522 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-remove-background/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-circle/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-remove-circle/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-remove-circle/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-circle/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-remove-circle/style.json new file mode 100644 index 00000000000..9a4b9f3980f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-remove-circle/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-fill/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-remove-fill/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-remove-fill/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-fill/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-remove-fill/style.json new file mode 100644 index 00000000000..853b8495718 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-remove-fill/style.json @@ -0,0 +1,101 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-line/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-remove-line/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-remove-line/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-line/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-remove-line/style.json new file mode 100644 index 00000000000..b07dfe38014 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-remove-line/style.json @@ -0,0 +1,89 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + -10, + -10 + ], + [ + 10, + -10 + ] + ] + } + } + }, + "layers": [ + { + "id": "line", + "type": "line", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-raster/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-remove-raster/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-remove-raster/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-raster/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-remove-raster/style.json new file mode 100644 index 00000000000..26e52ce20ae --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-remove-raster/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-symbol/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-remove-symbol/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-remove-symbol/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-remove-symbol/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-remove-symbol/style.json new file mode 100644 index 00000000000..a6e89e03f2d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-remove-symbol/style.json @@ -0,0 +1,66 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "circle-12" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-reorder/expected.png b/test/integration/render-tests/runtime-styling/set-style-layer-reorder/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layer-reorder/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layer-reorder/style.json b/test/integration/render-tests/runtime-styling/set-style-layer-reorder/style.json new file mode 100644 index 00000000000..8556bee591a --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layer-reorder/style.json @@ -0,0 +1,85 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle-2", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 2, + "circle-color": "red" + } + }, + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + }, + { + "id": "circle-2", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 2, + "circle-color": "red" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-literal/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-literal/expected.png new file mode 100644 index 00000000000..5cb7d2dff19 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-literal/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-literal/style.json new file mode 100644 index 00000000000..29a98338ff2 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-literal/style.json @@ -0,0 +1,72 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-property-function/expected.png new file mode 100644 index 00000000000..15bf5bf3b64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-property-function/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-property-function/style.json new file mode 100644 index 00000000000..4e66bd782cf --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-property-function/style.json @@ -0,0 +1,127 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": { + "type": "identity", + "property": "rotate" + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-zoom-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-zoom-function/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-zoom-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-zoom-function/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-zoom-function/style.json new file mode 100644 index 00000000000..f3aa75cb44c --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-default-to-zoom-function/style.json @@ -0,0 +1,83 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-default/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-default/style.json new file mode 100644 index 00000000000..46e00abc81f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-default/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-property-function/expected.png new file mode 100644 index 00000000000..15bf5bf3b64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-property-function/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-property-function/style.json new file mode 100644 index 00000000000..26ef3bd2c2f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-property-function/style.json @@ -0,0 +1,128 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": { + "type": "identity", + "property": "rotate" + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": 90 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-zoom-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-zoom-function/expected.png new file mode 100644 index 00000000000..5d4566d63a9 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-zoom-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-zoom-function/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-zoom-function/style.json new file mode 100644 index 00000000000..6c4c64ea1da --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-literal-to-zoom-function/style.json @@ -0,0 +1,86 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-default/expected.png new file mode 100644 index 00000000000..76bb48439e1 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-default/style.json new file mode 100644 index 00000000000..2ef7e3eb28d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-default/style.json @@ -0,0 +1,127 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": { + "type": "identity", + "property": "rotate" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-literal/expected.png new file mode 100644 index 00000000000..ed1c592fe8d Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-literal/style.json new file mode 100644 index 00000000000..f95623f289f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-property-function-to-literal/style.json @@ -0,0 +1,128 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": 90 + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "rotate": -45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "rotate": 45 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "oneway", + "icon-rotate": { + "type": "identity", + "property": "rotate" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-default/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-default/style.json new file mode 100644 index 00000000000..a1cd4994de4 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-default/style.json @@ -0,0 +1,84 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-literal/expected.png new file mode 100644 index 00000000000..5cb7d2dff19 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-literal/style.json new file mode 100644 index 00000000000..9a0cd334b80 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-layout-property-zoom-function-to-literal/style.json @@ -0,0 +1,86 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "triangle-12" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": { + "stops": [ + [ + 0, + "circle-12" + ], + [ + 10, + "triangle-12" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-literal/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-literal/expected.png new file mode 100644 index 00000000000..3a2d7006298 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-literal/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-literal/style.json new file mode 100644 index 00000000000..ab4a1d95cd9 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-literal/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-property-function/expected.png new file mode 100644 index 00000000000..b62d1b2ece7 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-property-function/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-property-function/style.json new file mode 100644 index 00000000000..1867ec99328 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-property-function/style.json @@ -0,0 +1,121 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-zoom-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-zoom-function/expected.png new file mode 100644 index 00000000000..cc46431ca9e Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-zoom-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-zoom-function/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-zoom-function/style.json new file mode 100644 index 00000000000..edab8be76f0 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-default-to-zoom-function/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-fill-flat-to-extrude/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-fill-flat-to-extrude/expected.png new file mode 100644 index 00000000000..8f17810f559 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-fill-flat-to-extrude/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-fill-flat-to-extrude/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-fill-flat-to-extrude/style.json new file mode 100644 index 00000000000..a03a16f4047 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-fill-flat-to-extrude/style.json @@ -0,0 +1,110 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill-extrusion", + "type": "fill-extrusion", + "source": "geojson", + "paint": { + "fill-extrusion-height": 10 + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Polygon", + "coordinates": [ + [ + [ + -10, + -10 + ], + [ + -10, + 10 + ], + [ + 10, + 10 + ], + [ + 10, + -10 + ], + [ + -10, + -10 + ] + ] + ] + } + } + }, + "layers": [ + { + "id": "fill-extrusion", + "type": "fill-extrusion", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-default/style.json new file mode 100644 index 00000000000..da0ee58e972 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-default/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-function/expected.png new file mode 100644 index 00000000000..cc46431ca9e Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-function/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-function/style.json new file mode 100644 index 00000000000..30de6ec400d --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-function/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-property-function/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-property-function/expected.png new file mode 100644 index 00000000000..b62d1b2ece7 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-property-function/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-property-function/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-property-function/style.json new file mode 100644 index 00000000000..11687d5fa77 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-literal-to-property-function/style.json @@ -0,0 +1,124 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-default/expected.png new file mode 100644 index 00000000000..62c8dbcada2 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-default/style.json new file mode 100644 index 00000000000..b26bd9ae077 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-default/style.json @@ -0,0 +1,122 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-literal/expected.png new file mode 100644 index 00000000000..b48c32b3e5f Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-literal/style.json new file mode 100644 index 00000000000..4d82533cbda --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-property-function-to-literal/style.json @@ -0,0 +1,124 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 1 + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "radius": 10 + }, + "geometry": { + "type": "Point", + "coordinates": [ + -10, + 0 + ] + } + }, + { + "type": "Feature", + "properties": { + "radius": 15 + }, + "geometry": { + "type": "Point", + "coordinates": [ + 10, + 0 + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": { + "type": "identity", + "property": "radius" + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-default/style.json new file mode 100644 index 00000000000..ffa977cd8dd --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-default/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-literal/expected.png b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-literal/expected.png new file mode 100644 index 00000000000..3a2d7006298 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-literal/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-literal/style.json b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-literal/style.json new file mode 100644 index 00000000000..a2228b5fc0a --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-paint-property-zoom-function-to-literal/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "red" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": { + "stops": [ + [ + 0, + "blue" + ], + [ + 10, + "white" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-inline/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-inline/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-inline/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-inline/style.json b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-inline/style.json new file mode 100644 index 00000000000..ad53ffaa22c --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-inline/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-url/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-url/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-url/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-url/style.json b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-url/style.json new file mode 100644 index 00000000000..780c4cef666 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-add-geojson-url/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://geojson/point.json" + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-raster-inline/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-inline/expected.png new file mode 100644 index 00000000000..1c1ef5d4c64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-inline/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-raster-inline/style.json b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-inline/style.json new file mode 100644 index 00000000000..b4ed00fb629 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-inline/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-raster-url/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-url/expected.png new file mode 100644 index 00000000000..1c1ef5d4c64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-url/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-raster-url/style.json b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-url/style.json new file mode 100644 index 00000000000..2c5a1a2ecd4 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-add-raster-url/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "raster": { + "type": "raster", + "url": "local://tilesets/raster.json", + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-vector-inline/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-inline/expected.png new file mode 100644 index 00000000000..8490f79653a Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-inline/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-vector-inline/style.json b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-inline/style.json new file mode 100644 index 00000000000..07c6a789752 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-inline/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "vector": { + "type": "vector", + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "vector", + "source-layer": "water" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-vector-url/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-url/expected.png new file mode 100644 index 00000000000..8490f79653a Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-url/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-add-vector-url/style.json b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-url/style.json new file mode 100644 index 00000000000..aa56b7f131f --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-add-vector-url/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "vector": { + "type": "vector", + "url": "local://tilesets/vector.json" + } + }, + "layers": [ + { + "id": "fill", + "type": "fill", + "source": "vector", + "source-layer": "water" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-source-update/expected.png b/test/integration/render-tests/runtime-styling/set-style-source-update/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-source-update/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-source-update/style.json b/test/integration/render-tests/runtime-styling/set-style-source-update/style.json new file mode 100644 index 00000000000..61720f6b0fe --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-source-update/style.json @@ -0,0 +1,67 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 10, + 10 + ] + } + } + }, + "layers": [ + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-sprite/expected.png b/test/integration/render-tests/runtime-styling/set-style-sprite/expected.png new file mode 100644 index 00000000000..21812ce379a Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-sprite/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-sprite/style.json b/test/integration/render-tests/runtime-styling/set-style-sprite/style.json new file mode 100644 index 00000000000..a45717400cd --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-sprite/style.json @@ -0,0 +1,110 @@ +{ + "version": 8, + "metadata": { + "test": { + "skipped": { + "native": "needs issue" + }, + "height": 256, + "operations": [ + [ + "setStyle", + { + "version": 8, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "restaurant-12" + }, + "paint": { + "icon-opacity": 1 + } + } + ] + } + ], + [ + "wait" + ] + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/emerald", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "generic_icon" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-none/expected.png b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-none/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-none/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-none/style.json b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-none/style.json new file mode 100644 index 00000000000..95a3a5befb1 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-none/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-visible/expected.png b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-visible/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-visible/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-visible/style.json b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-visible/style.json new file mode 100644 index 00000000000..c34089e7d8e --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-visibility-default-to-visible/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-default/style.json new file mode 100644 index 00000000000..23e7354d5d0 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-default/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-visible/expected.png b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-visible/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-visible/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-visible/style.json b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-visible/style.json new file mode 100644 index 00000000000..ece46ea2406 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-visibility-none-to-visible/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-default/expected.png b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-default/style.json b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-default/style.json new file mode 100644 index 00000000000..071ba455173 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-default/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": {} + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-none/expected.png b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-none/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-none/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-none/style.json b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-none/style.json new file mode 100644 index 00000000000..bee42efca19 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/set-style-visibility-visible-to-none/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setStyle", + { + "version": 8, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/source-add-geojson-inline/expected.png b/test/integration/render-tests/runtime-styling/source-add-geojson-inline/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/source-add-geojson-inline/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/source-add-geojson-inline/style.json b/test/integration/render-tests/runtime-styling/source-add-geojson-inline/style.json new file mode 100644 index 00000000000..84d46602ae7 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/source-add-geojson-inline/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addSource", + "geojson", + { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + ], + [ + "addLayer", + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ], + [ + "wait" + ] + ], + "skipped": { + "native": "needs issue" + } + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} \ No newline at end of file diff --git a/test/integration/render-tests/runtime-styling/source-add-geojson-url/expected.png b/test/integration/render-tests/runtime-styling/source-add-geojson-url/expected.png new file mode 100644 index 00000000000..4cb77303dde Binary files /dev/null and b/test/integration/render-tests/runtime-styling/source-add-geojson-url/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/source-add-geojson-url/style.json b/test/integration/render-tests/runtime-styling/source-add-geojson-url/style.json new file mode 100644 index 00000000000..f7e6b9669dd --- /dev/null +++ b/test/integration/render-tests/runtime-styling/source-add-geojson-url/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addSource", + "geojson", + { + "type": "geojson", + "data": "local://geojson/point.json" + } + ], + [ + "addLayer", + { + "id": "circle", + "type": "circle", + "source": "geojson" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/source-add-raster-inline/expected.png b/test/integration/render-tests/runtime-styling/source-add-raster-inline/expected.png new file mode 100644 index 00000000000..1c1ef5d4c64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/source-add-raster-inline/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/source-add-raster-inline/style.json b/test/integration/render-tests/runtime-styling/source-add-raster-inline/style.json new file mode 100644 index 00000000000..c1b01514982 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/source-add-raster-inline/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addSource", + "raster", + { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 + } + ], + [ + "addLayer", + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/source-add-raster-url/expected.png b/test/integration/render-tests/runtime-styling/source-add-raster-url/expected.png new file mode 100644 index 00000000000..1c1ef5d4c64 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/source-add-raster-url/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/source-add-raster-url/style.json b/test/integration/render-tests/runtime-styling/source-add-raster-url/style.json new file mode 100644 index 00000000000..3e644a61527 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/source-add-raster-url/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addSource", + "raster", + { + "type": "raster", + "url": "local://tilesets/raster.json", + "tileSize": 256 + } + ], + [ + "addLayer", + { + "id": "raster", + "type": "raster", + "source": "raster", + "paint": { + "raster-fade-duration": 0 + } + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/source-add-vector-inline/expected.png b/test/integration/render-tests/runtime-styling/source-add-vector-inline/expected.png new file mode 100644 index 00000000000..8490f79653a Binary files /dev/null and b/test/integration/render-tests/runtime-styling/source-add-vector-inline/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/source-add-vector-inline/style.json b/test/integration/render-tests/runtime-styling/source-add-vector-inline/style.json new file mode 100644 index 00000000000..a6393d5b2a4 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/source-add-vector-inline/style.json @@ -0,0 +1,38 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addSource", + "vector", + { + "type": "vector", + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + ], + [ + "addLayer", + { + "id": "fill", + "type": "fill", + "source": "vector", + "source-layer": "water" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/source-add-vector-url/expected.png b/test/integration/render-tests/runtime-styling/source-add-vector-url/expected.png new file mode 100644 index 00000000000..8490f79653a Binary files /dev/null and b/test/integration/render-tests/runtime-styling/source-add-vector-url/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/source-add-vector-url/style.json b/test/integration/render-tests/runtime-styling/source-add-vector-url/style.json new file mode 100644 index 00000000000..ccaef8ffdc7 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/source-add-vector-url/style.json @@ -0,0 +1,36 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "addSource", + "vector", + { + "type": "vector", + "url": "local://tilesets/vector.json" + } + ], + [ + "addLayer", + { + "id": "fill", + "type": "fill", + "source": "vector", + "source-layer": "water" + } + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [] +} diff --git a/test/integration/render-tests/runtime-styling/visibility-default-to-none/expected.png b/test/integration/render-tests/runtime-styling/visibility-default-to-none/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/visibility-default-to-none/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/visibility-default-to-none/style.json b/test/integration/render-tests/runtime-styling/visibility-default-to-none/style.json new file mode 100644 index 00000000000..33c666b133b --- /dev/null +++ b/test/integration/render-tests/runtime-styling/visibility-default-to-none/style.json @@ -0,0 +1,30 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "background", + "visibility", + "none" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/visibility-default-to-visible/expected.png b/test/integration/render-tests/runtime-styling/visibility-default-to-visible/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/visibility-default-to-visible/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/visibility-default-to-visible/style.json b/test/integration/render-tests/runtime-styling/visibility-default-to-visible/style.json new file mode 100644 index 00000000000..95675ff0d29 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/visibility-default-to-visible/style.json @@ -0,0 +1,30 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "background", + "visibility", + "visible" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background" + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/visibility-none-to-default/expected.png b/test/integration/render-tests/runtime-styling/visibility-none-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/visibility-none-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/visibility-none-to-default/style.json b/test/integration/render-tests/runtime-styling/visibility-none-to-default/style.json new file mode 100644 index 00000000000..c97f4c9f6c8 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/visibility-none-to-default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "background", + "visibility", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/visibility-none-to-visible/expected.png b/test/integration/render-tests/runtime-styling/visibility-none-to-visible/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/visibility-none-to-visible/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/visibility-none-to-visible/style.json b/test/integration/render-tests/runtime-styling/visibility-none-to-visible/style.json new file mode 100644 index 00000000000..dc09874c881 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/visibility-none-to-visible/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "background", + "visibility", + "visible" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "none" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/visibility-visible-to-default/expected.png b/test/integration/render-tests/runtime-styling/visibility-visible-to-default/expected.png new file mode 100644 index 00000000000..d58554e96e6 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/visibility-visible-to-default/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/visibility-visible-to-default/style.json b/test/integration/render-tests/runtime-styling/visibility-visible-to-default/style.json new file mode 100644 index 00000000000..413ecac89c7 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/visibility-visible-to-default/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "background", + "visibility", + null + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] +} diff --git a/test/integration/render-tests/runtime-styling/visibility-visible-to-none/expected.png b/test/integration/render-tests/runtime-styling/visibility-visible-to-none/expected.png new file mode 100644 index 00000000000..724d17cd7d3 Binary files /dev/null and b/test/integration/render-tests/runtime-styling/visibility-visible-to-none/expected.png differ diff --git a/test/integration/render-tests/runtime-styling/visibility-visible-to-none/style.json b/test/integration/render-tests/runtime-styling/visibility-visible-to-none/style.json new file mode 100644 index 00000000000..59b74db4268 --- /dev/null +++ b/test/integration/render-tests/runtime-styling/visibility-visible-to-none/style.json @@ -0,0 +1,33 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64, + "operations": [ + [ + "setLayoutProperty", + "background", + "visibility", + "none" + ], + [ + "wait" + ] + ] + } + }, + "transition": { + "duration": 0 + }, + "sources": {}, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + } + } + ] +} diff --git a/test/integration/render-tests/sprites/1x-screen-1x-icon/expected.png b/test/integration/render-tests/sprites/1x-screen-1x-icon/expected.png new file mode 100644 index 00000000000..8f57eb569c2 Binary files /dev/null and b/test/integration/render-tests/sprites/1x-screen-1x-icon/expected.png differ diff --git a/test/integration/render-tests/sprites/1x-screen-1x-icon/style.json b/test/integration/render-tests/sprites/1x-screen-1x-icon/style.json new file mode 100644 index 00000000000..2439b5aceb2 --- /dev/null +++ b/test/integration/render-tests/sprites/1x-screen-1x-icon/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 1, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/1x", + "layers": [ + { + "id": "default", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-image": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/1x-screen-1x-pattern/expected.png b/test/integration/render-tests/sprites/1x-screen-1x-pattern/expected.png new file mode 100644 index 00000000000..55a1bf873fa Binary files /dev/null and b/test/integration/render-tests/sprites/1x-screen-1x-pattern/expected.png differ diff --git a/test/integration/render-tests/sprites/1x-screen-1x-pattern/style.json b/test/integration/render-tests/sprites/1x-screen-1x-pattern/style.json new file mode 100644 index 00000000000..7eed042e3e2 --- /dev/null +++ b/test/integration/render-tests/sprites/1x-screen-1x-pattern/style.json @@ -0,0 +1,26 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 1, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": {}, + "sprite": "local://sprites/1x", + "layers": [ + { + "id": "default", + "type": "background", + "paint": { + "background-pattern": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/1x-screen-2x-icon/expected.png b/test/integration/render-tests/sprites/1x-screen-2x-icon/expected.png new file mode 100644 index 00000000000..3be50e4ff30 Binary files /dev/null and b/test/integration/render-tests/sprites/1x-screen-2x-icon/expected.png differ diff --git a/test/integration/render-tests/sprites/1x-screen-2x-icon/style.json b/test/integration/render-tests/sprites/1x-screen-2x-icon/style.json new file mode 100644 index 00000000000..f0c4d7986ad --- /dev/null +++ b/test/integration/render-tests/sprites/1x-screen-2x-icon/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 1, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/2x", + "layers": [ + { + "id": "default", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-image": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/1x-screen-2x-pattern/expected.png b/test/integration/render-tests/sprites/1x-screen-2x-pattern/expected.png new file mode 100644 index 00000000000..28b3a0dba36 Binary files /dev/null and b/test/integration/render-tests/sprites/1x-screen-2x-pattern/expected.png differ diff --git a/test/integration/render-tests/sprites/1x-screen-2x-pattern/style.json b/test/integration/render-tests/sprites/1x-screen-2x-pattern/style.json new file mode 100644 index 00000000000..1baa5415791 --- /dev/null +++ b/test/integration/render-tests/sprites/1x-screen-2x-pattern/style.json @@ -0,0 +1,26 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 1, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": {}, + "sprite": "local://sprites/2x", + "layers": [ + { + "id": "default", + "type": "background", + "paint": { + "background-pattern": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/2x-screen-1x-icon/expected.png b/test/integration/render-tests/sprites/2x-screen-1x-icon/expected.png new file mode 100644 index 00000000000..0d8ff67c8ce Binary files /dev/null and b/test/integration/render-tests/sprites/2x-screen-1x-icon/expected.png differ diff --git a/test/integration/render-tests/sprites/2x-screen-1x-icon/style.json b/test/integration/render-tests/sprites/2x-screen-1x-icon/style.json new file mode 100644 index 00000000000..278807f2cf4 --- /dev/null +++ b/test/integration/render-tests/sprites/2x-screen-1x-icon/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 2, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/1x", + "layers": [ + { + "id": "default", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-image": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/2x-screen-1x-pattern/expected.png b/test/integration/render-tests/sprites/2x-screen-1x-pattern/expected.png new file mode 100644 index 00000000000..c16cf561402 Binary files /dev/null and b/test/integration/render-tests/sprites/2x-screen-1x-pattern/expected.png differ diff --git a/test/integration/render-tests/sprites/2x-screen-1x-pattern/style.json b/test/integration/render-tests/sprites/2x-screen-1x-pattern/style.json new file mode 100644 index 00000000000..3f15d1aade3 --- /dev/null +++ b/test/integration/render-tests/sprites/2x-screen-1x-pattern/style.json @@ -0,0 +1,26 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 2, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": {}, + "sprite": "local://sprites/1x", + "layers": [ + { + "id": "default", + "type": "background", + "paint": { + "background-pattern": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/2x-screen-2x-icon/expected.png b/test/integration/render-tests/sprites/2x-screen-2x-icon/expected.png new file mode 100644 index 00000000000..d0455e1c98b Binary files /dev/null and b/test/integration/render-tests/sprites/2x-screen-2x-icon/expected.png differ diff --git a/test/integration/render-tests/sprites/2x-screen-2x-icon/style.json b/test/integration/render-tests/sprites/2x-screen-2x-icon/style.json new file mode 100644 index 00000000000..156be0b7337 --- /dev/null +++ b/test/integration/render-tests/sprites/2x-screen-2x-icon/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 2, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + } + }, + "sprite": "local://sprites/2x", + "layers": [ + { + "id": "default", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "icon-image": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/sprites/2x-screen-2x-pattern/expected.png b/test/integration/render-tests/sprites/2x-screen-2x-pattern/expected.png new file mode 100644 index 00000000000..9455f1de7da Binary files /dev/null and b/test/integration/render-tests/sprites/2x-screen-2x-pattern/expected.png differ diff --git a/test/integration/render-tests/sprites/2x-screen-2x-pattern/style.json b/test/integration/render-tests/sprites/2x-screen-2x-pattern/style.json new file mode 100644 index 00000000000..7d7aaf231cc --- /dev/null +++ b/test/integration/render-tests/sprites/2x-screen-2x-pattern/style.json @@ -0,0 +1,26 @@ +{ + "version": 8, + "metadata": { + "test": { + "pixelRatio": 2, + "width": 64, + "height": 64 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "sources": {}, + "sprite": "local://sprites/2x", + "layers": [ + { + "id": "default", + "type": "background", + "paint": { + "background-pattern": "icon" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-avoid-edges/default/expected.png b/test/integration/render-tests/symbol-avoid-edges/default/expected.png new file mode 100644 index 00000000000..9a5fb0b2d34 Binary files /dev/null and b/test/integration/render-tests/symbol-avoid-edges/default/expected.png differ diff --git a/test/integration/render-tests/symbol-avoid-edges/default/style.json b/test/integration/render-tests/symbol-avoid-edges/default/style.json new file mode 100644 index 00000000000..0a568bfe33c --- /dev/null +++ b/test/integration/render-tests/symbol-avoid-edges/default/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "map-line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-placement": "line", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "restaurant-12", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-avoid-edges/rotated-false/expected.png b/test/integration/render-tests/symbol-avoid-edges/rotated-false/expected.png new file mode 100644 index 00000000000..839d2d949ee Binary files /dev/null and b/test/integration/render-tests/symbol-avoid-edges/rotated-false/expected.png differ diff --git a/test/integration/render-tests/symbol-avoid-edges/rotated-false/style.json b/test/integration/render-tests/symbol-avoid-edges/rotated-false/style.json new file mode 100644 index 00000000000..44e0f05060c --- /dev/null +++ b/test/integration/render-tests/symbol-avoid-edges/rotated-false/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "diff": 0.0002, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 45, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "map-line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-placement": "line", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "restaurant-12", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-avoid-edges/rotated/expected.png b/test/integration/render-tests/symbol-avoid-edges/rotated/expected.png new file mode 100644 index 00000000000..ce9a5d4eaf8 Binary files /dev/null and b/test/integration/render-tests/symbol-avoid-edges/rotated/expected.png differ diff --git a/test/integration/render-tests/symbol-avoid-edges/rotated/style.json b/test/integration/render-tests/symbol-avoid-edges/rotated/style.json new file mode 100644 index 00000000000..17aafd8f693 --- /dev/null +++ b/test/integration/render-tests/symbol-avoid-edges/rotated/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 45, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "map-line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-avoid-edges": true, + "symbol-placement": "line", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "restaurant-12", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-avoid-edges/true/expected.png b/test/integration/render-tests/symbol-avoid-edges/true/expected.png new file mode 100644 index 00000000000..29fcf50d088 Binary files /dev/null and b/test/integration/render-tests/symbol-avoid-edges/true/expected.png differ diff --git a/test/integration/render-tests/symbol-avoid-edges/true/style.json b/test/integration/render-tests/symbol-avoid-edges/true/style.json new file mode 100644 index 00000000000..bf0c971d2d5 --- /dev/null +++ b/test/integration/render-tests/symbol-avoid-edges/true/style.json @@ -0,0 +1,49 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "map-line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-avoid-edges": true, + "symbol-placement": "line", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "restaurant-12", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-geometry/linestring/expected.png b/test/integration/render-tests/symbol-geometry/linestring/expected.png new file mode 100644 index 00000000000..70df4412d05 Binary files /dev/null and b/test/integration/render-tests/symbol-geometry/linestring/expected.png differ diff --git a/test/integration/render-tests/symbol-geometry/linestring/style.json b/test/integration/render-tests/symbol-geometry/linestring/style.json new file mode 100644 index 00000000000..a431033b056 --- /dev/null +++ b/test/integration/render-tests/symbol-geometry/linestring/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 0, + -25 + ], + [ + 0, + 25 + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "rocket-12", + "text-field": "Mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-offset": [0, 1] + } + } + ] +} diff --git a/test/integration/render-tests/symbol-geometry/multilinestring/expected.png b/test/integration/render-tests/symbol-geometry/multilinestring/expected.png new file mode 100644 index 00000000000..018eef27923 Binary files /dev/null and b/test/integration/render-tests/symbol-geometry/multilinestring/expected.png differ diff --git a/test/integration/render-tests/symbol-geometry/multilinestring/style.json b/test/integration/render-tests/symbol-geometry/multilinestring/style.json new file mode 100644 index 00000000000..c936ea058c4 --- /dev/null +++ b/test/integration/render-tests/symbol-geometry/multilinestring/style.json @@ -0,0 +1,76 @@ +{ + "version": 8, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiLineString", + "coordinates": [ + [ + [ + 25, + -25 + ], + [ + 25, + 25 + ] + ], + [ + [ + -25, + -25 + ], + [ + -25, + 25 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "rocket-12", + "text-field": "Mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-offset": [0, 1] + } + } + ] +} diff --git a/test/integration/render-tests/symbol-geometry/multipoint/expected.png b/test/integration/render-tests/symbol-geometry/multipoint/expected.png new file mode 100644 index 00000000000..61d65041bf4 Binary files /dev/null and b/test/integration/render-tests/symbol-geometry/multipoint/expected.png differ diff --git a/test/integration/render-tests/symbol-geometry/multipoint/style.json b/test/integration/render-tests/symbol-geometry/multipoint/style.json new file mode 100644 index 00000000000..f484f1255a4 --- /dev/null +++ b/test/integration/render-tests/symbol-geometry/multipoint/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [ [50.0, 0.0], [-50.0, 0.0] ] + } + }] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "rocket-12", + "text-field": "Mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-offset": [0, 1] + } + } + ] +} diff --git a/test/integration/render-tests/symbol-geometry/multipolygon/expected.png b/test/integration/render-tests/symbol-geometry/multipolygon/expected.png new file mode 100644 index 00000000000..61d65041bf4 Binary files /dev/null and b/test/integration/render-tests/symbol-geometry/multipolygon/expected.png differ diff --git a/test/integration/render-tests/symbol-geometry/multipolygon/style.json b/test/integration/render-tests/symbol-geometry/multipolygon/style.json new file mode 100644 index 00000000000..0e3b29c6d20 --- /dev/null +++ b/test/integration/render-tests/symbol-geometry/multipolygon/style.json @@ -0,0 +1,104 @@ +{ + "version": 8, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -25, + -25 + ], + [ + -25, + 25 + ], + [ + -75, + 25 + ], + [ + -75, + -25 + ], + [ + -25, + -25 + ] + ] + ], + [ + [ + [ + 25, + -25 + ], + [ + 25, + 25 + ], + [ + 75, + 25 + ], + [ + 75, + -25 + ], + [ + 25, + -25 + ] + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "rocket-12", + "text-field": "Mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-offset": [0, 1] + } + } + ] +} diff --git a/test/integration/render-tests/symbol-geometry/point/expected.png b/test/integration/render-tests/symbol-geometry/point/expected.png new file mode 100644 index 00000000000..c5067ec9364 Binary files /dev/null and b/test/integration/render-tests/symbol-geometry/point/expected.png differ diff --git a/test/integration/render-tests/symbol-geometry/point/style.json b/test/integration/render-tests/symbol-geometry/point/style.json new file mode 100644 index 00000000000..7ff4d872e90 --- /dev/null +++ b/test/integration/render-tests/symbol-geometry/point/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [0, 0] + } + }] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "rocket-12", + "text-field": "Mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-offset": [0, 1] + } + } + ] +} diff --git a/test/integration/render-tests/symbol-geometry/polygon/expected.png b/test/integration/render-tests/symbol-geometry/polygon/expected.png new file mode 100644 index 00000000000..c5067ec9364 Binary files /dev/null and b/test/integration/render-tests/symbol-geometry/polygon/expected.png differ diff --git a/test/integration/render-tests/symbol-geometry/polygon/style.json b/test/integration/render-tests/symbol-geometry/polygon/style.json new file mode 100644 index 00000000000..593a2bb881d --- /dev/null +++ b/test/integration/render-tests/symbol-geometry/polygon/style.json @@ -0,0 +1,78 @@ +{ + "version": 8, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "metadata": { + "test": { + "height": 256 + } + }, + "center": [0, 0], + "zoom": 0, + "sources": { + "geometry": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -25, + -25 + ], + [ + -25, + 25 + ], + [ + 25, + 25 + ], + [ + 25, + -25 + ], + [ + -25, + -25 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "geometry", + "type": "symbol", + "source": "geometry", + "layout": { + "icon-image": "rocket-12", + "text-field": "Mapbox", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-offset": [0, 1] + } + } + ] +} diff --git a/test/integration/render-tests/symbol-placement/line-overscaled/expected.png b/test/integration/render-tests/symbol-placement/line-overscaled/expected.png new file mode 100644 index 00000000000..de7ef0c77b0 Binary files /dev/null and b/test/integration/render-tests/symbol-placement/line-overscaled/expected.png differ diff --git a/test/integration/render-tests/symbol-placement/line-overscaled/style.json b/test/integration/render-tests/symbol-placement/line-overscaled/style.json new file mode 100644 index 00000000000..dd37488f8e7 --- /dev/null +++ b/test/integration/render-tests/symbol-placement/line-overscaled/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "icon-image": "triangle-stroked-12", + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + }, + { + "id": "point", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "symbol-placement": "point" + }, + "paint": { + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-placement/line/expected.png b/test/integration/render-tests/symbol-placement/line/expected.png new file mode 100644 index 00000000000..902671a731a Binary files /dev/null and b/test/integration/render-tests/symbol-placement/line/expected.png differ diff --git a/test/integration/render-tests/symbol-placement/line/style.json b/test/integration/render-tests/symbol-placement/line/style.json new file mode 100644 index 00000000000..8164b74491b --- /dev/null +++ b/test/integration/render-tests/symbol-placement/line/style.json @@ -0,0 +1,67 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "needs issue" + }, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "icon-image": "triangle-stroked-12", + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + }, + { + "id": "point", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "symbol-placement": "point" + }, + "paint": { + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-placement/point-polygon/expected.png b/test/integration/render-tests/symbol-placement/point-polygon/expected.png new file mode 100644 index 00000000000..11926866553 Binary files /dev/null and b/test/integration/render-tests/symbol-placement/point-polygon/expected.png differ diff --git a/test/integration/render-tests/symbol-placement/point-polygon/style.json b/test/integration/render-tests/symbol-placement/point-polygon/style.json new file mode 100644 index 00000000000..8e70f0f1909 --- /dev/null +++ b/test/integration/render-tests/symbol-placement/point-polygon/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.420466, + 52.4988 + ], + "zoom": 18, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "lines_pole_of_inaccessibility", + "type": "line", + "source": "mapbox", + "source-layer": "building" + }, + { + "id": "pole_of_inaccessibility", + "type": "symbol", + "source": "mapbox", + "source-layer": "building", + "layout": { + "symbol-placement": "point", + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 10 + } + } + ] +} diff --git a/test/integration/render-tests/symbol-placement/point/expected.png b/test/integration/render-tests/symbol-placement/point/expected.png new file mode 100644 index 00000000000..de16456d76f Binary files /dev/null and b/test/integration/render-tests/symbol-placement/point/expected.png differ diff --git a/test/integration/render-tests/symbol-placement/point/style.json b/test/integration/render-tests/symbol-placement/point/style.json new file mode 100644 index 00000000000..6d7394b9fe8 --- /dev/null +++ b/test/integration/render-tests/symbol-placement/point/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "icon-image": "triangle-stroked-12", + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "point", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "symbol-placement": "point" + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-spacing/line-close/expected.png b/test/integration/render-tests/symbol-spacing/line-close/expected.png new file mode 100644 index 00000000000..26e569804a2 Binary files /dev/null and b/test/integration/render-tests/symbol-spacing/line-close/expected.png differ diff --git a/test/integration/render-tests/symbol-spacing/line-close/style.json b/test/integration/render-tests/symbol-spacing/line-close/style.json new file mode 100644 index 00000000000..25e4aae7799 --- /dev/null +++ b/test/integration/render-tests/symbol-spacing/line-close/style.json @@ -0,0 +1,106 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "point-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + }, + { + "id": "line-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-spacing/line-far/expected.png b/test/integration/render-tests/symbol-spacing/line-far/expected.png new file mode 100644 index 00000000000..4ad171c587f Binary files /dev/null and b/test/integration/render-tests/symbol-spacing/line-far/expected.png differ diff --git a/test/integration/render-tests/symbol-spacing/line-far/style.json b/test/integration/render-tests/symbol-spacing/line-far/style.json new file mode 100644 index 00000000000..cce1cf6cb30 --- /dev/null +++ b/test/integration/render-tests/symbol-spacing/line-far/style.json @@ -0,0 +1,106 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "point-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-spacing/line-overscaled/expected.png b/test/integration/render-tests/symbol-spacing/line-overscaled/expected.png new file mode 100644 index 00000000000..c03be10dd71 Binary files /dev/null and b/test/integration/render-tests/symbol-spacing/line-overscaled/expected.png differ diff --git a/test/integration/render-tests/symbol-spacing/line-overscaled/style.json b/test/integration/render-tests/symbol-spacing/line-overscaled/style.json new file mode 100644 index 00000000000..bfbdd2f8c3b --- /dev/null +++ b/test/integration/render-tests/symbol-spacing/line-overscaled/style.json @@ -0,0 +1,106 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "point-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + }, + { + "id": "line-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-spacing/point-close/expected.png b/test/integration/render-tests/symbol-spacing/point-close/expected.png new file mode 100644 index 00000000000..21812ce379a Binary files /dev/null and b/test/integration/render-tests/symbol-spacing/point-close/expected.png differ diff --git a/test/integration/render-tests/symbol-spacing/point-close/style.json b/test/integration/render-tests/symbol-spacing/point-close/style.json new file mode 100644 index 00000000000..40fafaad184 --- /dev/null +++ b/test/integration/render-tests/symbol-spacing/point-close/style.json @@ -0,0 +1,106 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 1 + } + }, + { + "id": "point-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-spacing/point-far/expected.png b/test/integration/render-tests/symbol-spacing/point-far/expected.png new file mode 100644 index 00000000000..21812ce379a Binary files /dev/null and b/test/integration/render-tests/symbol-spacing/point-far/expected.png differ diff --git a/test/integration/render-tests/symbol-spacing/point-far/style.json b/test/integration/render-tests/symbol-spacing/point-far/style.json new file mode 100644 index 00000000000..35a47964343 --- /dev/null +++ b/test/integration/render-tests/symbol-spacing/point-far/style.json @@ -0,0 +1,106 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "point-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "icon-image": "{maki}-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "point", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 1 + } + }, + { + "id": "line-close", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 20 + }, + "paint": { + "icon-opacity": 0 + } + }, + { + "id": "line-far", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "icon-image": "triangle-stroked-12", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "symbol-placement": "line", + "symbol-spacing": 50 + }, + "paint": { + "icon-opacity": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/symbol-visibility/none/expected.png b/test/integration/render-tests/symbol-visibility/none/expected.png new file mode 100644 index 00000000000..5308b74aacb Binary files /dev/null and b/test/integration/render-tests/symbol-visibility/none/expected.png differ diff --git a/test/integration/render-tests/symbol-visibility/none/style.json b/test/integration/render-tests/symbol-visibility/none/style.json new file mode 100644 index 00000000000..c1676dd7c6c --- /dev/null +++ b/test/integration/render-tests/symbol-visibility/none/style.json @@ -0,0 +1,44 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": ["has", "maki"], + "layout": { + "icon-image": "{maki}-12", + "symbol-placement": "point", + "visibility": "none" + } + } + ] +} diff --git a/test/integration/render-tests/symbol-visibility/visible/expected.png b/test/integration/render-tests/symbol-visibility/visible/expected.png new file mode 100644 index 00000000000..5014fa57ed6 Binary files /dev/null and b/test/integration/render-tests/symbol-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/symbol-visibility/visible/style.json b/test/integration/render-tests/symbol-visibility/visible/style.json new file mode 100644 index 00000000000..4cbee730187 --- /dev/null +++ b/test/integration/render-tests/symbol-visibility/visible/style.json @@ -0,0 +1,43 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": ["has", "maki"], + "layout": { + "icon-image": "{maki}-12", + "symbol-placement": "point" + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/bottom-left/expected.png b/test/integration/render-tests/text-anchor/bottom-left/expected.png new file mode 100644 index 00000000000..8f38f76da67 Binary files /dev/null and b/test/integration/render-tests/text-anchor/bottom-left/expected.png differ diff --git a/test/integration/render-tests/text-anchor/bottom-left/style.json b/test/integration/render-tests/text-anchor/bottom-left/style.json new file mode 100644 index 00000000000..95382741667 --- /dev/null +++ b/test/integration/render-tests/text-anchor/bottom-left/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "bottom-left", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "bottom-left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/bottom-right/expected.png b/test/integration/render-tests/text-anchor/bottom-right/expected.png new file mode 100644 index 00000000000..0064f3b24a8 Binary files /dev/null and b/test/integration/render-tests/text-anchor/bottom-right/expected.png differ diff --git a/test/integration/render-tests/text-anchor/bottom-right/style.json b/test/integration/render-tests/text-anchor/bottom-right/style.json new file mode 100644 index 00000000000..651bd45bfd8 --- /dev/null +++ b/test/integration/render-tests/text-anchor/bottom-right/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "bottom-right", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "bottom-right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/bottom/expected.png b/test/integration/render-tests/text-anchor/bottom/expected.png new file mode 100644 index 00000000000..6296ac8ef85 Binary files /dev/null and b/test/integration/render-tests/text-anchor/bottom/expected.png differ diff --git a/test/integration/render-tests/text-anchor/bottom/style.json b/test/integration/render-tests/text-anchor/bottom/style.json new file mode 100644 index 00000000000..6d34a8addf8 --- /dev/null +++ b/test/integration/render-tests/text-anchor/bottom/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "bottom", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "bottom" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-anchor/center/expected.png b/test/integration/render-tests/text-anchor/center/expected.png new file mode 100644 index 00000000000..558481c2a07 Binary files /dev/null and b/test/integration/render-tests/text-anchor/center/expected.png differ diff --git a/test/integration/render-tests/text-anchor/center/style.json b/test/integration/render-tests/text-anchor/center/style.json new file mode 100644 index 00000000000..2d444a4ad29 --- /dev/null +++ b/test/integration/render-tests/text-anchor/center/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "center", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-anchor/left/expected.png b/test/integration/render-tests/text-anchor/left/expected.png new file mode 100644 index 00000000000..979dc6dbe3c Binary files /dev/null and b/test/integration/render-tests/text-anchor/left/expected.png differ diff --git a/test/integration/render-tests/text-anchor/left/style.json b/test/integration/render-tests/text-anchor/left/style.json new file mode 100644 index 00000000000..78d52d9c67a --- /dev/null +++ b/test/integration/render-tests/text-anchor/left/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "left", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/right/expected.png b/test/integration/render-tests/text-anchor/right/expected.png new file mode 100644 index 00000000000..c182a77eff0 Binary files /dev/null and b/test/integration/render-tests/text-anchor/right/expected.png differ diff --git a/test/integration/render-tests/text-anchor/right/style.json b/test/integration/render-tests/text-anchor/right/style.json new file mode 100644 index 00000000000..bef465ebcb1 --- /dev/null +++ b/test/integration/render-tests/text-anchor/right/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "right", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/top-left/expected.png b/test/integration/render-tests/text-anchor/top-left/expected.png new file mode 100644 index 00000000000..32b92f1d972 Binary files /dev/null and b/test/integration/render-tests/text-anchor/top-left/expected.png differ diff --git a/test/integration/render-tests/text-anchor/top-left/style.json b/test/integration/render-tests/text-anchor/top-left/style.json new file mode 100644 index 00000000000..118e9aad9b6 --- /dev/null +++ b/test/integration/render-tests/text-anchor/top-left/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "top-left", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "top-left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/top-right/expected.png b/test/integration/render-tests/text-anchor/top-right/expected.png new file mode 100644 index 00000000000..e340094433a Binary files /dev/null and b/test/integration/render-tests/text-anchor/top-right/expected.png differ diff --git a/test/integration/render-tests/text-anchor/top-right/style.json b/test/integration/render-tests/text-anchor/top-right/style.json new file mode 100644 index 00000000000..8a0797f8172 --- /dev/null +++ b/test/integration/render-tests/text-anchor/top-right/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "top-right", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "top-right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-anchor/top/expected.png b/test/integration/render-tests/text-anchor/top/expected.png new file mode 100644 index 00000000000..18d29ba37cb Binary files /dev/null and b/test/integration/render-tests/text-anchor/top/expected.png differ diff --git a/test/integration/render-tests/text-anchor/top/style.json b/test/integration/render-tests/text-anchor/top/style.json new file mode 100644 index 00000000000..88cc8c17bbe --- /dev/null +++ b/test/integration/render-tests/text-anchor/top/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "top", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-anchor": "top" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-arabic/line-break-mixed/expected.png b/test/integration/render-tests/text-arabic/line-break-mixed/expected.png new file mode 100644 index 00000000000..5ab9493826f Binary files /dev/null and b/test/integration/render-tests/text-arabic/line-break-mixed/expected.png differ diff --git a/test/integration/render-tests/text-arabic/line-break-mixed/style.json b/test/integration/render-tests/text-arabic/line-break-mixed/style.json new file mode 100644 index 00000000000..6c4a4cda581 --- /dev/null +++ b/test/integration/render-tests/text-arabic/line-break-mixed/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3708" + }, + "width": 256, + "height": 256 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": + [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "auto", + "text-max-width": 5, + "text-field": "مكتبة الإسكندرية‎‎ Maktabat al-Iskandarīyah", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-arabic/line-break/expected.png b/test/integration/render-tests/text-arabic/line-break/expected.png new file mode 100644 index 00000000000..e7a66418d70 Binary files /dev/null and b/test/integration/render-tests/text-arabic/line-break/expected.png differ diff --git a/test/integration/render-tests/text-arabic/line-break/style.json b/test/integration/render-tests/text-arabic/line-break/style.json new file mode 100644 index 00000000000..314b210d9df --- /dev/null +++ b/test/integration/render-tests/text-arabic/line-break/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3707" + }, + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": + [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "auto", + "text-max-width": 5, + "text-field": "مجتمع آپارتمانهای مرتفع", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-arabic/mixed-numeric/expected.png b/test/integration/render-tests/text-arabic/mixed-numeric/expected.png new file mode 100644 index 00000000000..100f1ca4ef8 Binary files /dev/null and b/test/integration/render-tests/text-arabic/mixed-numeric/expected.png differ diff --git a/test/integration/render-tests/text-arabic/mixed-numeric/style.json b/test/integration/render-tests/text-arabic/mixed-numeric/style.json new file mode 100644 index 00000000000..72be5018036 --- /dev/null +++ b/test/integration/render-tests/text-arabic/mixed-numeric/style.json @@ -0,0 +1,50 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3708" + }, + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -40, + 0 + ], + [ + 40, + 0 + ] + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "auto", + "text-field": "سلام۳۹", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-arabic/multi-paragraph/expected.png b/test/integration/render-tests/text-arabic/multi-paragraph/expected.png new file mode 100644 index 00000000000..4b613557d95 Binary files /dev/null and b/test/integration/render-tests/text-arabic/multi-paragraph/expected.png differ diff --git a/test/integration/render-tests/text-arabic/multi-paragraph/style.json b/test/integration/render-tests/text-arabic/multi-paragraph/style.json new file mode 100644 index 00000000000..bbb2427a6eb --- /dev/null +++ b/test/integration/render-tests/text-arabic/multi-paragraph/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "js": "https://github.com/mapbox/mapbox-gl-js/issues/3707" + }, + "width": 256, + "height": 256 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": + [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "auto", + "text-max-width": 5, + "text-field": "مكتبة الإسكندرية‎‎ Maktabat\u001c al-Iskandarīyah\n\nSome\nnew\nمكتبة lines", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-color/default/expected.png b/test/integration/render-tests/text-color/default/expected.png new file mode 100644 index 00000000000..745108663f0 Binary files /dev/null and b/test/integration/render-tests/text-color/default/expected.png differ diff --git a/test/integration/render-tests/text-color/default/style.json b/test/integration/render-tests/text-color/default/style.json new file mode 100644 index 00000000000..a63ad2856f5 --- /dev/null +++ b/test/integration/render-tests/text-color/default/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-color/function/expected.png b/test/integration/render-tests/text-color/function/expected.png new file mode 100644 index 00000000000..adecf74ab36 Binary files /dev/null and b/test/integration/render-tests/text-color/function/expected.png differ diff --git a/test/integration/render-tests/text-color/function/style.json b/test/integration/render-tests/text-color/function/style.json new file mode 100644 index 00000000000..3ec1f6fb646 --- /dev/null +++ b/test/integration/render-tests/text-color/function/style.json @@ -0,0 +1,67 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-color": { + "stops": [ + [ + 16, + "red" + ], + [ + 17, + "blue" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-color/literal/expected.png b/test/integration/render-tests/text-color/literal/expected.png new file mode 100644 index 00000000000..f46789fe2ab Binary files /dev/null and b/test/integration/render-tests/text-color/literal/expected.png differ diff --git a/test/integration/render-tests/text-color/literal/style.json b/test/integration/render-tests/text-color/literal/style.json new file mode 100644 index 00000000000..506e16854e6 --- /dev/null +++ b/test/integration/render-tests/text-color/literal/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-font/chinese/expected.png b/test/integration/render-tests/text-font/chinese/expected.png new file mode 100644 index 00000000000..ccc87e42f26 Binary files /dev/null and b/test/integration/render-tests/text-font/chinese/expected.png differ diff --git a/test/integration/render-tests/text-font/chinese/style.json b/test/integration/render-tests/text-font/chinese/style.json new file mode 100644 index 00000000000..c99b48a1641 --- /dev/null +++ b/test/integration/render-tests/text-font/chinese/style.json @@ -0,0 +1,45 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 512, + "allowed": 0.0003 + } + }, + "center": [ + -70.751953125, + 43.38904828677382 + ], + "zoom": 11, + "sources": { + "geojson": { + "type": "geojson", + "data": "local://data/chinese.geojson" + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "geojson", + "layout": { + "icon-image": "dog-park-12", + "text-field": "{name}", + "text-font": [ + "NotoCJK" + ], + "symbol-placement": "point" + } + } + ] +} diff --git a/test/integration/render-tests/text-font/literal/expected.png b/test/integration/render-tests/text-font/literal/expected.png new file mode 100644 index 00000000000..745108663f0 Binary files /dev/null and b/test/integration/render-tests/text-font/literal/expected.png differ diff --git a/test/integration/render-tests/text-font/literal/style.json b/test/integration/render-tests/text-font/literal/style.json new file mode 100644 index 00000000000..288bc40ed05 --- /dev/null +++ b/test/integration/render-tests/text-font/literal/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-blur/default/expected.png b/test/integration/render-tests/text-halo-blur/default/expected.png new file mode 100644 index 00000000000..2e73264f090 Binary files /dev/null and b/test/integration/render-tests/text-halo-blur/default/expected.png differ diff --git a/test/integration/render-tests/text-halo-blur/default/style.json b/test/integration/render-tests/text-halo-blur/default/style.json new file mode 100644 index 00000000000..36d958b7dc0 --- /dev/null +++ b/test/integration/render-tests/text-halo-blur/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-color": "red", + "text-halo-width": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-blur/function/expected.png b/test/integration/render-tests/text-halo-blur/function/expected.png new file mode 100644 index 00000000000..4eb47807f8c Binary files /dev/null and b/test/integration/render-tests/text-halo-blur/function/expected.png differ diff --git a/test/integration/render-tests/text-halo-blur/function/style.json b/test/integration/render-tests/text-halo-blur/function/style.json new file mode 100644 index 00000000000..cd6895344ac --- /dev/null +++ b/test/integration/render-tests/text-halo-blur/function/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-color": "red", + "text-halo-width": 2, + "text-halo-blur": { + "stops": [ + [ + 16, + 4 + ], + [ + 17, + 5 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-blur/literal/expected.png b/test/integration/render-tests/text-halo-blur/literal/expected.png new file mode 100644 index 00000000000..1f1feddc8b0 Binary files /dev/null and b/test/integration/render-tests/text-halo-blur/literal/expected.png differ diff --git a/test/integration/render-tests/text-halo-blur/literal/style.json b/test/integration/render-tests/text-halo-blur/literal/style.json new file mode 100644 index 00000000000..941e89e8e3d --- /dev/null +++ b/test/integration/render-tests/text-halo-blur/literal/style.json @@ -0,0 +1,41 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-color": "red", + "text-halo-width": 2, + "text-halo-blur": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-color/default/expected.png b/test/integration/render-tests/text-halo-color/default/expected.png new file mode 100644 index 00000000000..c1edcff68a7 Binary files /dev/null and b/test/integration/render-tests/text-halo-color/default/expected.png differ diff --git a/test/integration/render-tests/text-halo-color/default/style.json b/test/integration/render-tests/text-halo-color/default/style.json new file mode 100644 index 00000000000..dbd677e2002 --- /dev/null +++ b/test/integration/render-tests/text-halo-color/default/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-width": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-color/function/expected.png b/test/integration/render-tests/text-halo-color/function/expected.png new file mode 100644 index 00000000000..2e73264f090 Binary files /dev/null and b/test/integration/render-tests/text-halo-color/function/expected.png differ diff --git a/test/integration/render-tests/text-halo-color/function/style.json b/test/integration/render-tests/text-halo-color/function/style.json new file mode 100644 index 00000000000..1418f1be1a5 --- /dev/null +++ b/test/integration/render-tests/text-halo-color/function/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-width": 2, + "text-halo-color": { + "stops": [ + [ + 16, + "red" + ], + [ + 17, + "blue" + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-color/literal/expected.png b/test/integration/render-tests/text-halo-color/literal/expected.png new file mode 100644 index 00000000000..b8dc9dfd9a9 Binary files /dev/null and b/test/integration/render-tests/text-halo-color/literal/expected.png differ diff --git a/test/integration/render-tests/text-halo-color/literal/style.json b/test/integration/render-tests/text-halo-color/literal/style.json new file mode 100644 index 00000000000..91afd869ce3 --- /dev/null +++ b/test/integration/render-tests/text-halo-color/literal/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-width": 2, + "text-halo-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-width/default/expected.png b/test/integration/render-tests/text-halo-width/default/expected.png new file mode 100644 index 00000000000..c1edcff68a7 Binary files /dev/null and b/test/integration/render-tests/text-halo-width/default/expected.png differ diff --git a/test/integration/render-tests/text-halo-width/default/style.json b/test/integration/render-tests/text-halo-width/default/style.json new file mode 100644 index 00000000000..0e60589a3bb --- /dev/null +++ b/test/integration/render-tests/text-halo-width/default/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-color": "red" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-width/function/expected.png b/test/integration/render-tests/text-halo-width/function/expected.png new file mode 100644 index 00000000000..d4affc12710 Binary files /dev/null and b/test/integration/render-tests/text-halo-width/function/expected.png differ diff --git a/test/integration/render-tests/text-halo-width/function/style.json b/test/integration/render-tests/text-halo-width/function/style.json new file mode 100644 index 00000000000..cb39f85d95b --- /dev/null +++ b/test/integration/render-tests/text-halo-width/function/style.json @@ -0,0 +1,51 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-color": "red", + "text-halo-width": { + "stops": [ + [ + 16, + 4 + ], + [ + 17, + 5 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-halo-width/literal/expected.png b/test/integration/render-tests/text-halo-width/literal/expected.png new file mode 100644 index 00000000000..2e73264f090 Binary files /dev/null and b/test/integration/render-tests/text-halo-width/literal/expected.png differ diff --git a/test/integration/render-tests/text-halo-width/literal/style.json b/test/integration/render-tests/text-halo-width/literal/style.json new file mode 100644 index 00000000000..36d958b7dc0 --- /dev/null +++ b/test/integration/render-tests/text-halo-width/literal/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 64, + "height": 64 + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "text-field": "ABC", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-halo-color": "red", + "text-halo-width": 2 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-justify/left/expected.png b/test/integration/render-tests/text-justify/left/expected.png new file mode 100644 index 00000000000..a888d454003 Binary files /dev/null and b/test/integration/render-tests/text-justify/left/expected.png differ diff --git a/test/integration/render-tests/text-justify/left/style.json b/test/integration/render-tests/text-justify/left/style.json new file mode 100644 index 00000000000..4ddf91ccab6 --- /dev/null +++ b/test/integration/render-tests/text-justify/left/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "left", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-justify": "left" + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-justify/right/expected.png b/test/integration/render-tests/text-justify/right/expected.png new file mode 100644 index 00000000000..13fcf96e3ff Binary files /dev/null and b/test/integration/render-tests/text-justify/right/expected.png differ diff --git a/test/integration/render-tests/text-justify/right/style.json b/test/integration/render-tests/text-justify/right/style.json new file mode 100644 index 00000000000..264779b3170 --- /dev/null +++ b/test/integration/render-tests/text-justify/right/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "right", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-justify": "right" + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-keep-upright/line-placement-false/expected.png b/test/integration/render-tests/text-keep-upright/line-placement-false/expected.png new file mode 100644 index 00000000000..ece1593af51 Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/line-placement-false/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/line-placement-false/style.json b/test/integration/render-tests/text-keep-upright/line-placement-false/style.json new file mode 100644 index 00000000000..a9801770b65 --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/line-placement-false/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line-placement-false", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-placement": "line", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "{class} {class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-keep-upright": false + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-keep-upright/line-placement-true-rotated/expected.png b/test/integration/render-tests/text-keep-upright/line-placement-true-rotated/expected.png new file mode 100644 index 00000000000..353c933fe0a Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/line-placement-true-rotated/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/line-placement-true-rotated/style.json b/test/integration/render-tests/text-keep-upright/line-placement-true-rotated/style.json new file mode 100644 index 00000000000..195384220f7 --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/line-placement-true-rotated/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "operations": [ + [ "setBearing", 180 ], + [ "wait" ] + ] + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line-placement-true", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-placement": "line", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "{class} {class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-keep-upright": true + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-keep-upright/line-placement-true/expected.png b/test/integration/render-tests/text-keep-upright/line-placement-true/expected.png new file mode 100644 index 00000000000..bc5787184bf Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/line-placement-true/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/line-placement-true/style.json b/test/integration/render-tests/text-keep-upright/line-placement-true/style.json new file mode 100644 index 00000000000..e5f8a4be803 --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/line-placement-true/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "line-placement-true", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-placement": "line", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "{class} {class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-keep-upright": true + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-map-false/expected.png b/test/integration/render-tests/text-keep-upright/point-placement-align-map-false/expected.png new file mode 100644 index 00000000000..d158d7a5134 Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/point-placement-align-map-false/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-map-false/style.json b/test/integration/render-tests/text-keep-upright/point-placement-align-map-false/style.json new file mode 100644 index 00000000000..d7a1d004a51 --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/point-placement-align-map-false/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 180, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-placement-align-map-false", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-field": "point point point", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotation-alignment": "map", + "text-keep-upright": false + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-map-true/expected.png b/test/integration/render-tests/text-keep-upright/point-placement-align-map-true/expected.png new file mode 100644 index 00000000000..7ca66ca7bc0 Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/point-placement-align-map-true/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-map-true/style.json b/test/integration/render-tests/text-keep-upright/point-placement-align-map-true/style.json new file mode 100644 index 00000000000..334c6c39aec --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/point-placement-align-map-true/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 180, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-placement-align-map-true", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-field": "point point point", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotation-alignment": "map", + "text-keep-upright": true + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-false/expected.png b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-false/expected.png new file mode 100644 index 00000000000..f9362be47c0 Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-false/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-false/style.json b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-false/style.json new file mode 100644 index 00000000000..265b05e07c2 --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-false/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-placement-align-viewport-false", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-field": "point point point", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotation-alignment": "viewport", + "text-keep-upright": false, + "text-rotate": 180 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-true/expected.png b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-true/expected.png new file mode 100644 index 00000000000..f9362be47c0 Binary files /dev/null and b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-true/expected.png differ diff --git a/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-true/style.json b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-true/style.json new file mode 100644 index 00000000000..d0a470a975a --- /dev/null +++ b/test/integration/render-tests/text-keep-upright/point-placement-align-viewport-true/style.json @@ -0,0 +1,53 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "point-placement-align-viewport-true", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-field": "point point point", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotation-alignment": "viewport", + "text-keep-upright": true, + "text-rotate": 180 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-letter-spacing/function-close/expected.png b/test/integration/render-tests/text-letter-spacing/function-close/expected.png new file mode 100644 index 00000000000..cd53f2c474f Binary files /dev/null and b/test/integration/render-tests/text-letter-spacing/function-close/expected.png differ diff --git a/test/integration/render-tests/text-letter-spacing/function-close/style.json b/test/integration/render-tests/text-letter-spacing/function-close/style.json new file mode 100644 index 00000000000..785aff8bfc5 --- /dev/null +++ b/test/integration/render-tests/text-letter-spacing/function-close/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "functions", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-letter-spacing": { + "stops": [ + [ + 14, + -4 + ], + [ + 15, + 4 + ] + ] + } + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-letter-spacing/function-far/expected.png b/test/integration/render-tests/text-letter-spacing/function-far/expected.png new file mode 100644 index 00000000000..cd53f2c474f Binary files /dev/null and b/test/integration/render-tests/text-letter-spacing/function-far/expected.png differ diff --git a/test/integration/render-tests/text-letter-spacing/function-far/style.json b/test/integration/render-tests/text-letter-spacing/function-far/style.json new file mode 100644 index 00000000000..785aff8bfc5 --- /dev/null +++ b/test/integration/render-tests/text-letter-spacing/function-far/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "functions", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-letter-spacing": { + "stops": [ + [ + 14, + -4 + ], + [ + 15, + 4 + ] + ] + } + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-letter-spacing/literal/expected.png b/test/integration/render-tests/text-letter-spacing/literal/expected.png new file mode 100644 index 00000000000..dbe338b1329 Binary files /dev/null and b/test/integration/render-tests/text-letter-spacing/literal/expected.png differ diff --git a/test/integration/render-tests/text-letter-spacing/literal/style.json b/test/integration/render-tests/text-letter-spacing/literal/style.json new file mode 100644 index 00000000000..8c7d2f38c6a --- /dev/null +++ b/test/integration/render-tests/text-letter-spacing/literal/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-letter-spacing": 0.3 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-line-height/literal/expected.png b/test/integration/render-tests/text-line-height/literal/expected.png new file mode 100644 index 00000000000..abb8f2b3c68 Binary files /dev/null and b/test/integration/render-tests/text-line-height/literal/expected.png differ diff --git a/test/integration/render-tests/text-line-height/literal/style.json b/test/integration/render-tests/text-line-height/literal/style.json new file mode 100644 index 00000000000..b3d31465a47 --- /dev/null +++ b/test/integration/render-tests/text-line-height/literal/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-line-height": 1.3 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-max-angle/literal/expected.png b/test/integration/render-tests/text-max-angle/literal/expected.png new file mode 100644 index 00000000000..3ea8192c5e9 Binary files /dev/null and b/test/integration/render-tests/text-max-angle/literal/expected.png differ diff --git a/test/integration/render-tests/text-max-angle/literal/style.json b/test/integration/render-tests/text-max-angle/literal/style.json new file mode 100644 index 00000000000..0490353d805 --- /dev/null +++ b/test/integration/render-tests/text-max-angle/literal/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "road", + "layout": { + "symbol-placement": "line", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "{class} {class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-angle": 60 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-max-width/force-double-newline/expected.png b/test/integration/render-tests/text-max-width/force-double-newline/expected.png new file mode 100644 index 00000000000..da309c88f7d Binary files /dev/null and b/test/integration/render-tests/text-max-width/force-double-newline/expected.png differ diff --git a/test/integration/render-tests/text-max-width/force-double-newline/style.json b/test/integration/render-tests/text-max-width/force-double-newline/style.json new file mode 100644 index 00000000000..6ec69c8ee15 --- /dev/null +++ b/test/integration/render-tests/text-max-width/force-double-newline/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "abcde\n\nabcde", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 50 + } + } + ] +} diff --git a/test/integration/render-tests/text-max-width/force-newline/expected.png b/test/integration/render-tests/text-max-width/force-newline/expected.png new file mode 100644 index 00000000000..b8463b53c84 Binary files /dev/null and b/test/integration/render-tests/text-max-width/force-newline/expected.png differ diff --git a/test/integration/render-tests/text-max-width/force-newline/style.json b/test/integration/render-tests/text-max-width/force-newline/style.json new file mode 100644 index 00000000000..3d04fb8c38e --- /dev/null +++ b/test/integration/render-tests/text-max-width/force-newline/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "abcde\nabcde", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 50 + } + } + ] +} diff --git a/test/integration/render-tests/text-max-width/ideographic-breaking/expected.png b/test/integration/render-tests/text-max-width/ideographic-breaking/expected.png new file mode 100644 index 00000000000..954b7cb8e6d Binary files /dev/null and b/test/integration/render-tests/text-max-width/ideographic-breaking/expected.png differ diff --git a/test/integration/render-tests/text-max-width/ideographic-breaking/style.json b/test/integration/render-tests/text-max-width/ideographic-breaking/style.json new file mode 100644 index 00000000000..e412c016f14 --- /dev/null +++ b/test/integration/render-tests/text-max-width/ideographic-breaking/style.json @@ -0,0 +1,157 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512 + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人觀觀人之之易" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -1.0546875, + 30.14512718337613 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人觀觀人之之" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -5.625, + 71.85622888185527 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人觀觀人之" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 1.40625, + -40.44694705960048 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人觀觀人" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -106.5234375, + 72.18180355624855 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人觀觀" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -113.5546875, + 32.54681317351514 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人觀" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -114.60937499999999, + -43.83452678223682 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式灣文人" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 92.8125, + 72.39570570653261 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "Jingleheimerschmidt" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 94.21875, + 34.30714385628804 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "mixed 技指計代式灣文人觀觀" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 97.03125, + -44.087585028245165 + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "{name}", + "text-font": [ + "NotoCJK" + ], + "text-max-width": 5 + } + } + ] +} diff --git a/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/expected.png b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/expected.png new file mode 100644 index 00000000000..52d6fe46a65 Binary files /dev/null and b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/expected.png differ diff --git a/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json new file mode 100644 index 00000000000..156f657605a --- /dev/null +++ b/test/integration/render-tests/text-max-width/ideographic-punctuation-breaking/style.json @@ -0,0 +1,157 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512 + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "技指計代‧式灣文人觀觀人之之易" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -1.0546875, + 30.14512718337613 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "黄岩岛\n(民主礁)" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -5.625, + 71.85622888185527 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代(式灣文人)觀觀人之" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 1.40625, + -40.44694705960048 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "(技指計)代式灣‧文人觀觀人" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -106.5234375, + 72.18180355624855 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指‧計代式灣文;人觀觀" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -113.5546875, + 32.54681317351514 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計 代式灣灣灣文人-觀" + }, + "geometry": { + "type": "Point", + "coordinates": [ + -114.60937499999999, + -43.83452678223682 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "技指計代式‧灣文人" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 92.8125, + 72.39570570653261 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "Jingleheimer‧schmidt" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 94.21875, + 34.30714385628804 + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "mixed 技指計‧代式灣文人觀觀" + }, + "geometry": { + "type": "Point", + "coordinates": [ + 97.03125, + -44.087585028245165 + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "{name}", + "text-font": [ + "NotoCJK" + ], + "text-max-width": 5 + } + } + ] +} diff --git a/test/integration/render-tests/text-max-width/literal/expected.png b/test/integration/render-tests/text-max-width/literal/expected.png new file mode 100644 index 00000000000..8a1250b3ec5 Binary files /dev/null and b/test/integration/render-tests/text-max-width/literal/expected.png differ diff --git a/test/integration/render-tests/text-max-width/literal/style.json b/test/integration/render-tests/text-max-width/literal/style.json new file mode 100644 index 00000000000..df6305eafde --- /dev/null +++ b/test/integration/render-tests/text-max-width/literal/style.json @@ -0,0 +1,52 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "For every fact there is an infinity of hypotheses.", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 7 + } + } + ] +} diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetnegative/expected.png new file mode 100644 index 00000000000..10627cf9f56 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetnegative/style.json new file mode 100644 index 00000000000..81a7b831111 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "center", + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetpositive/expected.png new file mode 100644 index 00000000000..4856d865fde Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetpositive/style.json new file mode 100644 index 00000000000..7ddf09f4b5c --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifycenter-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "center", + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetnegative/expected.png new file mode 100644 index 00000000000..c2b8d1b7eb6 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetnegative/style.json new file mode 100644 index 00000000000..4de2a836220 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "left", + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetpositive/expected.png new file mode 100644 index 00000000000..cff10dce82c Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetpositive/style.json new file mode 100644 index 00000000000..6120e3dbc00 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyleft-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "left", + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetnegative/expected.png new file mode 100644 index 00000000000..fc06ff8c410 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetnegative/style.json new file mode 100644 index 00000000000..287b6bf7e4a --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "right", + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetpositive/expected.png new file mode 100644 index 00000000000..d6c23b20de7 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetpositive/style.json new file mode 100644 index 00000000000..53623d54170 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorcenter-justifyright-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "right", + "text-anchor": "center" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetnegative/expected.png new file mode 100644 index 00000000000..8c66a280c2d Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetnegative/style.json new file mode 100644 index 00000000000..69063706741 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "center", + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetpositive/expected.png new file mode 100644 index 00000000000..6099c4aaef1 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetpositive/style.json new file mode 100644 index 00000000000..94081605b5e --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifycenter-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "center", + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetnegative/expected.png new file mode 100644 index 00000000000..59c7f7272b7 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetnegative/style.json new file mode 100644 index 00000000000..ac4edc4356b --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "left", + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetpositive/expected.png new file mode 100644 index 00000000000..8a00648d0e3 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetpositive/style.json new file mode 100644 index 00000000000..b574c298ccc --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyleft-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "left", + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetnegative/expected.png new file mode 100644 index 00000000000..87fd9910286 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetnegative/style.json new file mode 100644 index 00000000000..f6d168ce778 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "right", + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetpositive/expected.png new file mode 100644 index 00000000000..e1ed896f1ef Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetpositive/style.json new file mode 100644 index 00000000000..92e9399dd29 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorleft-justifyright-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "right", + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetnegative/expected.png new file mode 100644 index 00000000000..1f4a62a71d5 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetnegative/style.json new file mode 100644 index 00000000000..ff112efd6fc --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "center", + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetpositive/expected.png new file mode 100644 index 00000000000..832db5f18cb Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetpositive/style.json new file mode 100644 index 00000000000..4e7cd52baa9 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifycenter-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "center", + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetnegative/expected.png new file mode 100644 index 00000000000..e121887490d Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetnegative/style.json new file mode 100644 index 00000000000..b94bed2a388 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "left", + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetpositive/expected.png new file mode 100644 index 00000000000..b5adb5a519b Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetpositive/style.json new file mode 100644 index 00000000000..2794f9801e8 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyleft-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "left", + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetnegative/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetnegative/expected.png new file mode 100644 index 00000000000..70a59e5c219 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetnegative/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetnegative/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetnegative/style.json new file mode 100644 index 00000000000..59645ffb92d --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetnegative/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + -3, + 0 + ], + "text-justify": "right", + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetpositive/expected.png b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetpositive/expected.png new file mode 100644 index 00000000000..85eda02f43e Binary files /dev/null and b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetpositive/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetpositive/style.json b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetpositive/style.json new file mode 100644 index 00000000000..fa6b298cefe --- /dev/null +++ b/test/integration/render-tests/text-offset/literal-multiline-anchorright-justifyright-offsetpositive/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test multiline", + "text-max-width": 5, + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 3, + 0 + ], + "text-justify": "right", + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-offset/literal/expected.png b/test/integration/render-tests/text-offset/literal/expected.png new file mode 100644 index 00000000000..ca36a30c4a6 Binary files /dev/null and b/test/integration/render-tests/text-offset/literal/expected.png differ diff --git a/test/integration/render-tests/text-offset/literal/style.json b/test/integration/render-tests/text-offset/literal/style.json new file mode 100644 index 00000000000..c3132299298 --- /dev/null +++ b/test/integration/render-tests/text-offset/literal/style.json @@ -0,0 +1,60 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-offset": [ + 1, + 1 + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-opacity/default/expected.png b/test/integration/render-tests/text-opacity/default/expected.png new file mode 100644 index 00000000000..745108663f0 Binary files /dev/null and b/test/integration/render-tests/text-opacity/default/expected.png differ diff --git a/test/integration/render-tests/text-opacity/default/style.json b/test/integration/render-tests/text-opacity/default/style.json new file mode 100644 index 00000000000..a63ad2856f5 --- /dev/null +++ b/test/integration/render-tests/text-opacity/default/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-opacity/function/expected.png b/test/integration/render-tests/text-opacity/function/expected.png new file mode 100644 index 00000000000..9282f865fe6 Binary files /dev/null and b/test/integration/render-tests/text-opacity/function/expected.png differ diff --git a/test/integration/render-tests/text-opacity/function/style.json b/test/integration/render-tests/text-opacity/function/style.json new file mode 100644 index 00000000000..d9cb6ae3509 --- /dev/null +++ b/test/integration/render-tests/text-opacity/function/style.json @@ -0,0 +1,67 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 17, + 0.6 + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-opacity/literal/expected.png b/test/integration/render-tests/text-opacity/literal/expected.png new file mode 100644 index 00000000000..53828e57201 Binary files /dev/null and b/test/integration/render-tests/text-opacity/literal/expected.png differ diff --git a/test/integration/render-tests/text-opacity/literal/style.json b/test/integration/render-tests/text-opacity/literal/style.json new file mode 100644 index 00000000000..9835cacb4dc --- /dev/null +++ b/test/integration/render-tests/text-opacity/literal/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 0.3 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-map/expected.png b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-map/expected.png new file mode 100644 index 00000000000..1c9aa911b32 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-map/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-map/style.json b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-map/style.json new file mode 100644 index 00000000000..ba2f96cf3a7 --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-map/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "allowed": 0.005, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "#888", + "line-width": 1 + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "map", + "text-pitch-alignment": "auto", + "text-field": "{class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-viewport/expected.png b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-viewport/expected.png new file mode 100644 index 00000000000..889ad937366 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-viewport/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-viewport/style.json b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-viewport/style.json new file mode 100644 index 00000000000..7ae7fd2bb6b --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/auto-text-rotation-alignment-viewport/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "allowed": 0.005, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "#888", + "line-width": 1 + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "viewport", + "text-pitch-alignment": "auto", + "text-field": "{class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/map-text-depthtest/expected.png b/test/integration/render-tests/text-pitch-alignment/map-text-depthtest/expected.png new file mode 100644 index 00000000000..a94f80ea4ee Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/map-text-depthtest/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/map-text-depthtest/style.json b/test/integration/render-tests/text-pitch-alignment/map-text-depthtest/style.json new file mode 100644 index 00000000000..a317fa01faf --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/map-text-depthtest/style.json @@ -0,0 +1,165 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "diff": 0.00025 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "pitch": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "text": "Hello World" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 0, + -40 + ], + [ + 0, + 20 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "order": "below" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -180, + -60 + ], + [ + -180, + 60 + ], + [ + 180, + 60 + ], + [ + 180, + -60 + ], + [ + -180, + -60 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "order": "above" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -180, + -60 + ], + [ + 170, + 60 + ], + [ + 180, + 60 + ], + [ + -170, + -60 + ], + [ + -180, + -60 + ] + ] + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poly-below-text", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "#888" + }, + "filter": [ + "==", + "order", + "below" + ] + }, + { + "id": "text", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "map", + "text-pitch-alignment": "map", + "text-field": "{text}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + }, + { + "id": "poly-above-text", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "#f00" + }, + "filter": [ + "==", + "order", + "above" + ] + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-map/expected.png b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-map/expected.png new file mode 100644 index 00000000000..1c9aa911b32 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-map/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-map/style.json b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-map/style.json new file mode 100644 index 00000000000..d39e03385c0 --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-map/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "allowed": 0.005, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "#888", + "line-width": 1 + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "map", + "text-pitch-alignment": "map", + "text-field": "{class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-viewport/expected.png b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-viewport/expected.png new file mode 100644 index 00000000000..cf227a43931 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-viewport/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-viewport/style.json b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-viewport/style.json new file mode 100644 index 00000000000..6d5bcacf327 --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/map-text-rotation-alignment-viewport/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "allowed": 0.005, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "#888", + "line-width": 1 + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "viewport", + "text-pitch-alignment": "map", + "text-field": "{class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/viewport-text-depthtest/expected.png b/test/integration/render-tests/text-pitch-alignment/viewport-text-depthtest/expected.png new file mode 100644 index 00000000000..ba0f95502f5 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/viewport-text-depthtest/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/viewport-text-depthtest/style.json b/test/integration/render-tests/text-pitch-alignment/viewport-text-depthtest/style.json new file mode 100644 index 00000000000..5532c4b142e --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/viewport-text-depthtest/style.json @@ -0,0 +1,165 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256, + "diff": 0.00025 + } + }, + "center": [ + 0, + 0 + ], + "zoom": 0, + "pitch": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "text": "Hello World" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -20, + -40 + ], + [ + 20, + 20 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "order": "below" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -180, + -60 + ], + [ + -180, + 60 + ], + [ + 180, + 60 + ], + [ + 180, + -60 + ], + [ + -180, + -60 + ] + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "order": "above" + }, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -180, + -60 + ], + [ + 170, + 60 + ], + [ + 180, + 60 + ], + [ + -170, + -60 + ], + [ + -180, + -60 + ] + ] + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "poly-below-text", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "#888" + }, + "filter": [ + "==", + "order", + "below" + ] + }, + { + "id": "text", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": "{text}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + }, + { + "id": "poly-above-text", + "type": "fill", + "source": "geojson", + "paint": { + "fill-color": "#f00" + }, + "filter": [ + "==", + "order", + "above" + ] + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-map/expected.png b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-map/expected.png new file mode 100644 index 00000000000..ad0e97600e3 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-map/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-map/style.json b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-map/style.json new file mode 100644 index 00000000000..a4e1cf964b6 --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-map/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "allowed": 0.005, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "#888", + "line-width": 1 + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": "{class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-viewport/expected.png b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-viewport/expected.png new file mode 100644 index 00000000000..889ad937366 Binary files /dev/null and b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-viewport/expected.png differ diff --git a/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-viewport/style.json b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-viewport/style.json new file mode 100644 index 00000000000..89c221b5882 --- /dev/null +++ b/test/integration/render-tests/text-pitch-alignment/viewport-text-rotation-alignment-viewport/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "allowed": 0.005, + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "pitch": 30, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "road", + "type": "line", + "source": "mapbox", + "source-layer": "road", + "paint": { + "line-color": "#888", + "line-width": 1 + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "road_label", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 60, + "text-rotation-alignment": "viewport", + "text-pitch-alignment": "viewport", + "text-field": "{class}", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} diff --git a/test/integration/render-tests/text-rotate/anchor-bottom/expected.png b/test/integration/render-tests/text-rotate/anchor-bottom/expected.png new file mode 100644 index 00000000000..8983eea5909 Binary files /dev/null and b/test/integration/render-tests/text-rotate/anchor-bottom/expected.png differ diff --git a/test/integration/render-tests/text-rotate/anchor-bottom/style.json b/test/integration/render-tests/text-rotate/anchor-bottom/style.json new file mode 100644 index 00000000000..24d806c1136 --- /dev/null +++ b/test/integration/render-tests/text-rotate/anchor-bottom/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "anchor-bottom", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotate": 45, + "text-anchor": "bottom" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotate/anchor-left/expected.png b/test/integration/render-tests/text-rotate/anchor-left/expected.png new file mode 100644 index 00000000000..50dafab1b92 Binary files /dev/null and b/test/integration/render-tests/text-rotate/anchor-left/expected.png differ diff --git a/test/integration/render-tests/text-rotate/anchor-left/style.json b/test/integration/render-tests/text-rotate/anchor-left/style.json new file mode 100644 index 00000000000..02329807ae8 --- /dev/null +++ b/test/integration/render-tests/text-rotate/anchor-left/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "anchor-left", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotate": 45, + "text-anchor": "left" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotate/anchor-right/expected.png b/test/integration/render-tests/text-rotate/anchor-right/expected.png new file mode 100644 index 00000000000..21186537561 Binary files /dev/null and b/test/integration/render-tests/text-rotate/anchor-right/expected.png differ diff --git a/test/integration/render-tests/text-rotate/anchor-right/style.json b/test/integration/render-tests/text-rotate/anchor-right/style.json new file mode 100644 index 00000000000..27a2cb95d23 --- /dev/null +++ b/test/integration/render-tests/text-rotate/anchor-right/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "anchor-right", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotate": 45, + "text-anchor": "right" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotate/anchor-top/expected.png b/test/integration/render-tests/text-rotate/anchor-top/expected.png new file mode 100644 index 00000000000..e5e0192eff4 Binary files /dev/null and b/test/integration/render-tests/text-rotate/anchor-top/expected.png differ diff --git a/test/integration/render-tests/text-rotate/anchor-top/style.json b/test/integration/render-tests/text-rotate/anchor-top/style.json new file mode 100644 index 00000000000..cb2132ab94a --- /dev/null +++ b/test/integration/render-tests/text-rotate/anchor-top/style.json @@ -0,0 +1,63 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "anchor-top", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotate": 45, + "text-anchor": "top" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotate/function/expected.png b/test/integration/render-tests/text-rotate/function/expected.png new file mode 100644 index 00000000000..475ac52c703 Binary files /dev/null and b/test/integration/render-tests/text-rotate/function/expected.png differ diff --git a/test/integration/render-tests/text-rotate/function/style.json b/test/integration/render-tests/text-rotate/function/style.json new file mode 100644 index 00000000000..e8ac1fb940e --- /dev/null +++ b/test/integration/render-tests/text-rotate/function/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "function", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotate": { + "stops": [ + [ + 10, + 0 + ], + [ + 16, + 270 + ] + ] + } + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotate/literal/expected.png b/test/integration/render-tests/text-rotate/literal/expected.png new file mode 100644 index 00000000000..9d34b856c80 Binary files /dev/null and b/test/integration/render-tests/text-rotate/literal/expected.png differ diff --git a/test/integration/render-tests/text-rotate/literal/style.json b/test/integration/render-tests/text-rotate/literal/style.json new file mode 100644 index 00000000000..1be8aa091b7 --- /dev/null +++ b/test/integration/render-tests/text-rotate/literal/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-rotate": 25 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-line/expected.png b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-line/expected.png new file mode 100644 index 00000000000..3ab84333e30 Binary files /dev/null and b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-line/expected.png differ diff --git a/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-line/style.json b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-line/style.json new file mode 100644 index 00000000000..6625763b8c2 --- /dev/null +++ b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-line/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -40, + 0 + ], + [ + 40, + 0 + ] + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "auto", + "text-field": "-->", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} diff --git a/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-point/expected.png b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-point/expected.png new file mode 100644 index 00000000000..7907c88acf3 Binary files /dev/null and b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-point/expected.png differ diff --git a/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-point/style.json b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-point/style.json new file mode 100644 index 00000000000..eff2d74155d --- /dev/null +++ b/test/integration/render-tests/text-rotation-alignment/auto-symbol-placement-point/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-rotation-alignment": "auto", + "text-field": "-->", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-line/expected.png b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-line/expected.png new file mode 100644 index 00000000000..3ab84333e30 Binary files /dev/null and b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-line/expected.png differ diff --git a/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-line/style.json b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-line/style.json new file mode 100644 index 00000000000..4ce56e1af0b --- /dev/null +++ b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-line/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -40, + 0 + ], + [ + 40, + 0 + ] + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "map", + "text-field": "-->", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-point/expected.png b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-point/expected.png new file mode 100644 index 00000000000..c46b2022390 Binary files /dev/null and b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-point/expected.png differ diff --git a/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-point/style.json b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-point/style.json new file mode 100644 index 00000000000..84e2e3e6d25 --- /dev/null +++ b/test/integration/render-tests/text-rotation-alignment/map-symbol-placement-point/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-rotation-alignment": "map", + "text-field": "-->", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-line/expected.png b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-line/expected.png new file mode 100644 index 00000000000..379c5b168ce Binary files /dev/null and b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-line/expected.png differ diff --git a/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-line/style.json b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-line/style.json new file mode 100644 index 00000000000..da4bd1a9237 --- /dev/null +++ b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-line/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "LineString", + "coordinates": [ + [ + -40, + 0 + ], + [ + 40, + 0 + ] + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "line", + "symbol-spacing": 20, + "text-allow-overlap": true, + "text-rotation-alignment": "viewport", + "text-field": "-->", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-point/expected.png b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-point/expected.png new file mode 100644 index 00000000000..7907c88acf3 Binary files /dev/null and b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-point/expected.png differ diff --git a/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-point/style.json b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-point/style.json new file mode 100644 index 00000000000..5953001fd21 --- /dev/null +++ b/test/integration/render-tests/text-rotation-alignment/viewport-symbol-placement-point/style.json @@ -0,0 +1,39 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 128, + "height": 128 + } + }, + "bearing": 45, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "Point", + "coordinates": [ + 0, + 0 + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "symbol", + "type": "symbol", + "source": "geojson", + "layout": { + "symbol-placement": "point", + "text-rotation-alignment": "viewport", + "text-field": "-->", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-size/default/expected.png b/test/integration/render-tests/text-size/default/expected.png new file mode 100644 index 00000000000..745108663f0 Binary files /dev/null and b/test/integration/render-tests/text-size/default/expected.png differ diff --git a/test/integration/render-tests/text-size/default/style.json b/test/integration/render-tests/text-size/default/style.json new file mode 100644 index 00000000000..a760364a32f --- /dev/null +++ b/test/integration/render-tests/text-size/default/style.json @@ -0,0 +1,56 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-size/function/expected.png b/test/integration/render-tests/text-size/function/expected.png new file mode 100644 index 00000000000..91e61ed911e Binary files /dev/null and b/test/integration/render-tests/text-size/function/expected.png differ diff --git a/test/integration/render-tests/text-size/function/style.json b/test/integration/render-tests/text-size/function/style.json new file mode 100644 index 00000000000..4d9ef12f54f --- /dev/null +++ b/test/integration/render-tests/text-size/function/style.json @@ -0,0 +1,68 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text-function", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": { + "stops": [ + [ + 16, + 14 + ], + [ + 17, + 16 + ] + ] + } + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-size/literal/expected.png b/test/integration/render-tests/text-size/literal/expected.png new file mode 100644 index 00000000000..5c85a3df2b9 Binary files /dev/null and b/test/integration/render-tests/text-size/literal/expected.png differ diff --git a/test/integration/render-tests/text-size/literal/style.json b/test/integration/render-tests/text-size/literal/style.json new file mode 100644 index 00000000000..586705cf53e --- /dev/null +++ b/test/integration/render-tests/text-size/literal/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text-literal", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 10 + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-tile-edge-clipping/default/expected.png b/test/integration/render-tests/text-tile-edge-clipping/default/expected.png new file mode 100644 index 00000000000..fbc8dde283b Binary files /dev/null and b/test/integration/render-tests/text-tile-edge-clipping/default/expected.png differ diff --git a/test/integration/render-tests/text-tile-edge-clipping/default/style.json b/test/integration/render-tests/text-tile-edge-clipping/default/style.json new file mode 100644 index 00000000000..f9d19188faa --- /dev/null +++ b/test/integration/render-tests/text-tile-edge-clipping/default/style.json @@ -0,0 +1,64 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 500, + "width": 500 + } + }, + "center": [ + 13.4365, + 52.5028 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "top", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "icon-allow-overlap": true, + "icon-ignore-placement": true, + "icon-image": "dot.sdf", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 100, + "text-anchor": "top" + }, + "paint": { + "icon-opacity": 1, + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-transform/lowercase/expected.png b/test/integration/render-tests/text-transform/lowercase/expected.png new file mode 100644 index 00000000000..55ae234017a Binary files /dev/null and b/test/integration/render-tests/text-transform/lowercase/expected.png differ diff --git a/test/integration/render-tests/text-transform/lowercase/style.json b/test/integration/render-tests/text-transform/lowercase/style.json new file mode 100644 index 00000000000..f4fe824b6d1 --- /dev/null +++ b/test/integration/render-tests/text-transform/lowercase/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "lowercase", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-transform": "lowercase" + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-transform/uppercase/expected.png b/test/integration/render-tests/text-transform/uppercase/expected.png new file mode 100644 index 00000000000..0b25a9592b8 Binary files /dev/null and b/test/integration/render-tests/text-transform/uppercase/expected.png differ diff --git a/test/integration/render-tests/text-transform/uppercase/style.json b/test/integration/render-tests/text-transform/uppercase/style.json new file mode 100644 index 00000000000..f1d46a2790f --- /dev/null +++ b/test/integration/render-tests/text-transform/uppercase/style.json @@ -0,0 +1,58 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "uppercase", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test Test Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-max-width": 5, + "text-transform": "uppercase" + }, + "paint": { + "text-opacity": 1 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-translate-anchor/map/expected.png b/test/integration/render-tests/text-translate-anchor/map/expected.png new file mode 100644 index 00000000000..0442f9e7ccd Binary files /dev/null and b/test/integration/render-tests/text-translate-anchor/map/expected.png differ diff --git a/test/integration/render-tests/text-translate-anchor/map/style.json b/test/integration/render-tests/text-translate-anchor/map/style.json new file mode 100644 index 00000000000..bca39984827 --- /dev/null +++ b/test/integration/render-tests/text-translate-anchor/map/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-translate": [ + 10, + 10 + ], + "text-translate-anchor": "map" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-translate-anchor/viewport/expected.png b/test/integration/render-tests/text-translate-anchor/viewport/expected.png new file mode 100644 index 00000000000..a87880f8deb Binary files /dev/null and b/test/integration/render-tests/text-translate-anchor/viewport/expected.png differ diff --git a/test/integration/render-tests/text-translate-anchor/viewport/style.json b/test/integration/render-tests/text-translate-anchor/viewport/style.json new file mode 100644 index 00000000000..3045f9035b2 --- /dev/null +++ b/test/integration/render-tests/text-translate-anchor/viewport/style.json @@ -0,0 +1,61 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "bearing": 90, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-translate": [ + 10, + 10 + ], + "text-translate-anchor": "viewport" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-translate/default/expected.png b/test/integration/render-tests/text-translate/default/expected.png new file mode 100644 index 00000000000..745108663f0 Binary files /dev/null and b/test/integration/render-tests/text-translate/default/expected.png differ diff --git a/test/integration/render-tests/text-translate/default/style.json b/test/integration/render-tests/text-translate/default/style.json new file mode 100644 index 00000000000..a63ad2856f5 --- /dev/null +++ b/test/integration/render-tests/text-translate/default/style.json @@ -0,0 +1,54 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": {} + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-translate/function/expected.png b/test/integration/render-tests/text-translate/function/expected.png new file mode 100644 index 00000000000..b0eb163ee54 Binary files /dev/null and b/test/integration/render-tests/text-translate/function/expected.png differ diff --git a/test/integration/render-tests/text-translate/function/style.json b/test/integration/render-tests/text-translate/function/style.json new file mode 100644 index 00000000000..f88e5f4634b --- /dev/null +++ b/test/integration/render-tests/text-translate/function/style.json @@ -0,0 +1,73 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-translate": { + "stops": [ + [ + 16, + [ + 15, + 15 + ] + ], + [ + 17, + [ + 20, + 20 + ] + ] + ] + } + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-translate/literal/expected.png b/test/integration/render-tests/text-translate/literal/expected.png new file mode 100644 index 00000000000..ccd81ab13e4 Binary files /dev/null and b/test/integration/render-tests/text-translate/literal/expected.png differ diff --git a/test/integration/render-tests/text-translate/literal/style.json b/test/integration/render-tests/text-translate/literal/style.json new file mode 100644 index 00000000000..1ea337bbf58 --- /dev/null +++ b/test/integration/render-tests/text-translate/literal/style.json @@ -0,0 +1,59 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "text", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "filter": [ + "==", + "maki", + "restaurant" + ], + "layout": { + "symbol-placement": "point", + "text-allow-overlap": true, + "text-ignore-placement": true, + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-translate": [ + 5, + 5 + ] + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/text-visibility/none/expected.png b/test/integration/render-tests/text-visibility/none/expected.png new file mode 100644 index 00000000000..5308b74aacb Binary files /dev/null and b/test/integration/render-tests/text-visibility/none/expected.png differ diff --git a/test/integration/render-tests/text-visibility/none/style.json b/test/integration/render-tests/text-visibility/none/style.json new file mode 100644 index 00000000000..f5396c1af75 --- /dev/null +++ b/test/integration/render-tests/text-visibility/none/style.json @@ -0,0 +1,47 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point", + "visibility": "none" + } + } + ] +} diff --git a/test/integration/render-tests/text-visibility/visible/expected.png b/test/integration/render-tests/text-visibility/visible/expected.png new file mode 100644 index 00000000000..37474b2bd1a Binary files /dev/null and b/test/integration/render-tests/text-visibility/visible/expected.png differ diff --git a/test/integration/render-tests/text-visibility/visible/style.json b/test/integration/render-tests/text-visibility/visible/style.json new file mode 100644 index 00000000000..dafc36e38ca --- /dev/null +++ b/test/integration/render-tests/text-visibility/visible/style.json @@ -0,0 +1,46 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 14, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "icon", + "type": "symbol", + "source": "mapbox", + "source-layer": "poi_label", + "layout": { + "text-field": "Test", + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "symbol-placement": "point" + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/chinese-punctuation/expected.png b/test/integration/render-tests/text-writing-mode/chinese-punctuation/expected.png new file mode 100644 index 00000000000..ee693e42d83 Binary files /dev/null and b/test/integration/render-tests/text-writing-mode/chinese-punctuation/expected.png differ diff --git a/test/integration/render-tests/text-writing-mode/chinese-punctuation/style.json b/test/integration/render-tests/text-writing-mode/chinese-punctuation/style.json new file mode 100644 index 00000000000..f272bdfdaa2 --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/chinese-punctuation/style.json @@ -0,0 +1,204 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "width": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/1682" + } + } + }, + "zoom": 0, + "center": [0, 0], + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "氣—到–身_什…戰.只。" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -119, + 85 + ], + [ + -119, + 10 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "(氣)到(身)(什)" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -32.453124999999964, + 85 + ], + [ + -32.453124999999964, + 10 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "“氣”到“身”“白”" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 52.04687500000002, + 85 + ], + [ + 52.04687500000002, + 10 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "—氣—到—a—a—" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 128.703125, + 85 + ], + [ + 128.703125, + 10 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "氣—到–身_什…戰.只。" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -150, + -17 + ], + [ + -10, + -17 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "(氣)到(身)(什)" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -150, + -58 + ], + [ + -10, + -58 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "“氣”到“身”“白”" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 10, + -17 + ], + [ + 130, + -17 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "—氣—到—a—a—" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 10, + -58 + ], + [ + 130, + -58 + ] + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "lines-symbol", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "{name}", + "symbol-placement": "line", + "text-allow-overlap": true, + "text-font": [ "NotoCJK" ] + } + }, { + "id": "lines", + "type": "line", + "source": "mapbox", + "paint": { + "line-opacity": 0.25 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/chinese/expected.png b/test/integration/render-tests/text-writing-mode/chinese/expected.png new file mode 100644 index 00000000000..772c2839ea9 Binary files /dev/null and b/test/integration/render-tests/text-writing-mode/chinese/expected.png differ diff --git a/test/integration/render-tests/text-writing-mode/chinese/style.json b/test/integration/render-tests/text-writing-mode/chinese/style.json new file mode 100644 index 00000000000..a90dac911e1 --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/chinese/style.json @@ -0,0 +1,205 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "width": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/1682" + } + } + }, + "zoom": 2, + "center": [-14.41400, 39.09187], + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "氣到身什戰只白質位歡" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.091699613104595 + ], + [ + 102.3046875, + 39.36827914916014 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "電局今情再夜面造" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.403076171875, + 39.10022600175347 + ], + [ + 103.35937499999999, + 65.80277639340238 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "有究往極他生血通育" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.414062499999998, + 39.091699613104595 + ], + [ + -14.765625, + 82.21421714106776 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "不示有電親界因來終" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.408569335937498, + 39.091699613104595 + ], + [ + -130.78125, + 39.095962936305476 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "後再學全看素力來:不車" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.414062499999998, + 39.095962936305476 + ], + [ + -16.5234375, + -58.81374171570779 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "有下人費也家了清,黨光她保過每心" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.10022600175347 + ], + [ + -130.4296875, + 64.47279382008166 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "醫公藝說就公和有" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.0831721934762 + ], + [ + 33.75, + 81.87364125482827 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "光中輪的態指那差車" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.447021484374998, + 39.104488809440475 + ], + [ + -66.4453125, + 82.26169873683153 + ] + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "lines-symbol", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "{name}", + "symbol-placement": "line", + "symbol-spacing": 100, + "text-allow-overlap": true, + "text-font": [ "NotoCJK" ] + } + }, { + "id": "lines", + "type": "line", + "source": "mapbox", + "paint": { + "line-opacity": 0.25 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/latin/expected.png b/test/integration/render-tests/text-writing-mode/latin/expected.png new file mode 100644 index 00000000000..fb4a1f0d13c Binary files /dev/null and b/test/integration/render-tests/text-writing-mode/latin/expected.png differ diff --git a/test/integration/render-tests/text-writing-mode/latin/style.json b/test/integration/render-tests/text-writing-mode/latin/style.json new file mode 100644 index 00000000000..bbcd86090db --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/latin/style.json @@ -0,0 +1,202 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "width": 512 + } + }, + "zoom": 2, + "center": [-14.41400, 39.09187], + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "one" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.091699613104595 + ], + [ + 102.3046875, + 39.36827914916014 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "two" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.403076171875, + 39.10022600175347 + ], + [ + 103.35937499999999, + 65.80277639340238 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "three" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.414062499999998, + 39.091699613104595 + ], + [ + -14.765625, + 82.21421714106776 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "four" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.408569335937498, + 39.091699613104595 + ], + [ + -130.78125, + 39.095962936305476 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "five" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.414062499999998, + 39.095962936305476 + ], + [ + -16.5234375, + -58.81374171570779 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "six" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.10022600175347 + ], + [ + -130.4296875, + 64.47279382008166 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "seven" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.0831721934762 + ], + [ + 33.75, + 81.87364125482827 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "eight" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.447021484374998, + 39.104488809440475 + ], + [ + -66.4453125, + 82.26169873683153 + ] + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "lines-symbol", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "{name}", + "symbol-placement": "line", + "symbol-spacing": 100, + "text-allow-overlap": true, + "text-font": [ "NotoCJK" ] + } + }, { + "id": "lines", + "type": "line", + "source": "mapbox", + "paint": { + "line-opacity": 0.25 + } + } + ] +} diff --git a/test/integration/render-tests/text-writing-mode/mixed/expected.png b/test/integration/render-tests/text-writing-mode/mixed/expected.png new file mode 100644 index 00000000000..8783724f740 Binary files /dev/null and b/test/integration/render-tests/text-writing-mode/mixed/expected.png differ diff --git a/test/integration/render-tests/text-writing-mode/mixed/style.json b/test/integration/render-tests/text-writing-mode/mixed/style.json new file mode 100644 index 00000000000..f8329deed71 --- /dev/null +++ b/test/integration/render-tests/text-writing-mode/mixed/style.json @@ -0,0 +1,205 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 512, + "width": 512, + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/1682" + } + } + }, + "zoom": 2, + "center": [-14.41400, 39.09187], + "sources": { + "mapbox": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + "name": "身什戰 1" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.091699613104595 + ], + [ + 102.3046875, + 39.36827914916014 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "two 身什戰" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.403076171875, + 39.10022600175347 + ], + [ + 103.35937499999999, + 65.80277639340238 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "身什戰33" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.414062499999998, + 39.091699613104595 + ], + [ + -14.765625, + 82.21421714106776 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "身什戰" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.408569335937498, + 39.091699613104595 + ], + [ + -130.78125, + 39.095962936305476 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "身什戰 five" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.414062499999998, + 39.095962936305476 + ], + [ + -16.5234375, + -58.81374171570779 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "six 身什戰" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.10022600175347 + ], + [ + -130.4296875, + 64.47279382008166 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "身什戰 seven" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.4195556640625, + 39.0831721934762 + ], + [ + 33.75, + 81.87364125482827 + ] + ] + } + }, + { + "type": "Feature", + "properties": { + "name": "eight 身什戰" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -14.447021484374998, + 39.104488809440475 + ], + [ + -66.4453125, + 82.26169873683153 + ] + ] + } + } + ] + } + } + }, + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "lines-symbol", + "type": "symbol", + "source": "mapbox", + "layout": { + "text-field": "{name}", + "symbol-placement": "line", + "symbol-spacing": 150, + "text-allow-overlap": true, + "text-font": [ "NotoCJK" ] + } + }, { + "id": "lines", + "type": "line", + "source": "mapbox", + "paint": { + "line-opacity": 0.25 + } + } + ] +} diff --git a/test/integration/render-tests/tms/tms/expected.png b/test/integration/render-tests/tms/tms/expected.png new file mode 100644 index 00000000000..07a7031b6d4 Binary files /dev/null and b/test/integration/render-tests/tms/tms/expected.png differ diff --git a/test/integration/render-tests/tms/tms/style.json b/test/integration/render-tests/tms/tms/style.json new file mode 100644 index 00000000000..ce8b45d4272 --- /dev/null +++ b/test/integration/render-tests/tms/tms/style.json @@ -0,0 +1,35 @@ +{ + "version": 8, + "metadata": { + "test": {} + }, + "zoom": 2, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "scheme": "tms", + "tiles": [ + "local://tiles/{z}-{x}-{y}.tms.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "land", + "type": "fill", + "source": "mapbox", + "source-layer": "water", + "paint": { + "fill-color": "blue" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/video/default/expected.png b/test/integration/render-tests/video/default/expected.png new file mode 100644 index 00000000000..3726dca56f9 Binary files /dev/null and b/test/integration/render-tests/video/default/expected.png differ diff --git a/test/integration/render-tests/video/default/style.json b/test/integration/render-tests/video/default/style.json new file mode 100644 index 00000000000..1cee0885c83 --- /dev/null +++ b/test/integration/render-tests/video/default/style.json @@ -0,0 +1,57 @@ +{ + "version": 8, + "metadata": { + "test": { + "ignored": { + "native": "https://github.com/mapbox/mapbox-gl-native/issues/601" + }, + "width": 512, + "height": 512, + "skipped": { + "native": "needs issue" + } + } + }, + "center": [ + -122.514426, + 37.562984 + ], + "zoom": 17, + "bearing": -96, + "sources": { + "video": { + "type": "video", + "coordinates": [ + [ + -122.51596391201019, + 37.56238816766053 + ], + [ + -122.51467645168304, + 37.56410183312965 + ], + [ + -122.51309394836426, + 37.563391708549425 + ], + [ + -122.51423120498657, + 37.56161849366671 + ] + ], + "urls": [ + "local://video/0.png" + ] + } + }, + "layers": [ + { + "id": "video", + "type": "raster", + "source": "video", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/zoomed-fill/default/expected.png b/test/integration/render-tests/zoomed-fill/default/expected.png new file mode 100644 index 00000000000..49657adb101 Binary files /dev/null and b/test/integration/render-tests/zoomed-fill/default/expected.png differ diff --git a/test/integration/render-tests/zoomed-fill/default/style.json b/test/integration/render-tests/zoomed-fill/default/style.json new file mode 100644 index 00000000000..ed361c4f2b3 --- /dev/null +++ b/test/integration/render-tests/zoomed-fill/default/style.json @@ -0,0 +1,40 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16, + "sources": { + "mapbox": { + "type": "vector", + "maxzoom": 14, + "tiles": [ + "local://tiles/{z}-{x}-{y}.mvt" + ] + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "white" + } + }, + { + "id": "fill", + "type": "fill", + "source": "mapbox", + "source-layer": "building", + "paint": { + "fill-color": "black" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/zoomed-raster/fractional/expected.png b/test/integration/render-tests/zoomed-raster/fractional/expected.png new file mode 100644 index 00000000000..44b96fdf584 Binary files /dev/null and b/test/integration/render-tests/zoomed-raster/fractional/expected.png differ diff --git a/test/integration/render-tests/zoomed-raster/fractional/style.json b/test/integration/render-tests/zoomed-raster/fractional/style.json new file mode 100644 index 00000000000..76bc9e4d076 --- /dev/null +++ b/test/integration/render-tests/zoomed-raster/fractional/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 16.1, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 17, + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/zoomed-raster/overzoom/expected.png b/test/integration/render-tests/zoomed-raster/overzoom/expected.png new file mode 100644 index 00000000000..561f9d06f1c Binary files /dev/null and b/test/integration/render-tests/zoomed-raster/overzoom/expected.png differ diff --git a/test/integration/render-tests/zoomed-raster/overzoom/style.json b/test/integration/render-tests/zoomed-raster/overzoom/style.json new file mode 100644 index 00000000000..3ef6ad93b73 --- /dev/null +++ b/test/integration/render-tests/zoomed-raster/overzoom/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 17, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 17, + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/zoomed-raster/underzoom/expected.png b/test/integration/render-tests/zoomed-raster/underzoom/expected.png new file mode 100644 index 00000000000..459e62180fc Binary files /dev/null and b/test/integration/render-tests/zoomed-raster/underzoom/expected.png differ diff --git a/test/integration/render-tests/zoomed-raster/underzoom/style.json b/test/integration/render-tests/zoomed-raster/underzoom/style.json new file mode 100644 index 00000000000..9e892781049 --- /dev/null +++ b/test/integration/render-tests/zoomed-raster/underzoom/style.json @@ -0,0 +1,34 @@ +{ + "version": 8, + "metadata": { + "test": { + "height": 256 + } + }, + "center": [ + 13.418056, + 52.499167 + ], + "zoom": 15, + "sources": { + "satellite": { + "type": "raster", + "tiles": [ + "local://tiles/{z}-{x}-{y}.satellite.png" + ], + "minzoom": 17, + "maxzoom": 17, + "tileSize": 256 + } + }, + "layers": [ + { + "id": "raster", + "type": "raster", + "source": "satellite", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} \ No newline at end of file diff --git a/test/integration/sprites/1x.json b/test/integration/sprites/1x.json new file mode 100644 index 00000000000..123abb40d4a --- /dev/null +++ b/test/integration/sprites/1x.json @@ -0,0 +1,9 @@ +{ + "icon": { + "width": 20, + "height": 56, + "x": 0, + "y": 0, + "pixelRatio": 1 + } +} \ No newline at end of file diff --git a/test/integration/sprites/1x.png b/test/integration/sprites/1x.png new file mode 100644 index 00000000000..b112096c180 Binary files /dev/null and b/test/integration/sprites/1x.png differ diff --git a/test/integration/sprites/1x@2x.json b/test/integration/sprites/1x@2x.json new file mode 100644 index 00000000000..123abb40d4a --- /dev/null +++ b/test/integration/sprites/1x@2x.json @@ -0,0 +1,9 @@ +{ + "icon": { + "width": 20, + "height": 56, + "x": 0, + "y": 0, + "pixelRatio": 1 + } +} \ No newline at end of file diff --git a/test/integration/sprites/1x@2x.png b/test/integration/sprites/1x@2x.png new file mode 100644 index 00000000000..b112096c180 Binary files /dev/null and b/test/integration/sprites/1x@2x.png differ diff --git a/test/integration/sprites/2x.json b/test/integration/sprites/2x.json new file mode 100644 index 00000000000..8d246d04d6f --- /dev/null +++ b/test/integration/sprites/2x.json @@ -0,0 +1,9 @@ +{ + "icon": { + "width": 40, + "height": 112, + "x": 0, + "y": 0, + "pixelRatio": 2 + } +} \ No newline at end of file diff --git a/test/integration/sprites/2x.png b/test/integration/sprites/2x.png new file mode 100644 index 00000000000..d05c82bfe28 Binary files /dev/null and b/test/integration/sprites/2x.png differ diff --git a/test/integration/sprites/2x@2x.json b/test/integration/sprites/2x@2x.json new file mode 100644 index 00000000000..8d246d04d6f --- /dev/null +++ b/test/integration/sprites/2x@2x.json @@ -0,0 +1,9 @@ +{ + "icon": { + "width": 40, + "height": 112, + "x": 0, + "y": 0, + "pixelRatio": 2 + } +} \ No newline at end of file diff --git a/test/integration/sprites/2x@2x.png b/test/integration/sprites/2x@2x.png new file mode 100644 index 00000000000..d05c82bfe28 Binary files /dev/null and b/test/integration/sprites/2x@2x.png differ diff --git a/test/integration/sprites/3x.png b/test/integration/sprites/3x.png new file mode 100644 index 00000000000..703b172c154 Binary files /dev/null and b/test/integration/sprites/3x.png differ diff --git a/test/integration/sprites/emerald.json b/test/integration/sprites/emerald.json new file mode 100644 index 00000000000..fcc09e77a38 --- /dev/null +++ b/test/integration/sprites/emerald.json @@ -0,0 +1,492 @@ +{ + "sand_noise": { + "width": 50, + "height": 50, + "x": 0, + "y": 0, + "pixelRatio": 1 + }, + "grass_noise": { + "width": 50, + "height": 50, + "x": 50, + "y": 0, + "pixelRatio": 1 + }, + "interstate_3": { + "width": 50, + "height": 43, + "x": 0, + "y": 50, + "pixelRatio": 1 + }, + "interstate_2": { + "width": 46, + "height": 44, + "x": 100, + "y": 0, + "pixelRatio": 1 + }, + "interstate_1": { + "width": 40, + "height": 42, + "x": 100, + "y": 44, + "pixelRatio": 1 + }, + "dlr.london-overground.london-underground.national-rail": { + "width": 72, + "height": 16, + "x": 0, + "y": 93, + "pixelRatio": 1 + }, + "us_highway_3": { + "width": 37, + "height": 30, + "x": 50, + "y": 50, + "pixelRatio": 1 + }, + "us_highway_2": { + "width": 34, + "height": 30, + "x": 0, + "y": 109, + "pixelRatio": 1 + }, + "us_state_3": { + "width": 37, + "height": 27, + "x": 34, + "y": 109, + "pixelRatio": 1 + }, + "london-overground.london-underground.national-rail": { + "width": 54, + "height": 16, + "x": 72, + "y": 93, + "pixelRatio": 1 + }, + "dlr.london-underground.national-rail": { + "width": 54, + "height": 16, + "x": 71, + "y": 109, + "pixelRatio": 1 + }, + "us_state_1": { + "width": 30, + "height": 27, + "x": 146, + "y": 0, + "pixelRatio": 1 + }, + "us_state_2": { + "width": 30, + "height": 27, + "x": 146, + "y": 27, + "pixelRatio": 1 + }, + "rer.transilien": { + "width": 40, + "height": 20, + "x": 0, + "y": 139, + "pixelRatio": 1 + }, + "us_highway_1": { + "width": 26, + "height": 29, + "x": 146, + "y": 54, + "pixelRatio": 1 + }, + "default_6": { + "width": 42, + "height": 16, + "x": 40, + "y": 139, + "pixelRatio": 1 + }, + "s-bahn.u-bahn": { + "width": 36, + "height": 18, + "x": 176, + "y": 0, + "pixelRatio": 1 + }, + "metro.rer": { + "width": 34, + "height": 18, + "x": 176, + "y": 18, + "pixelRatio": 1 + }, + "default_5": { + "width": 37, + "height": 16, + "x": 82, + "y": 139, + "pixelRatio": 1 + }, + "dlr.london-underground": { + "width": 36, + "height": 16, + "x": 176, + "y": 36, + "pixelRatio": 1 + }, + "london-overground.national-rail": { + "width": 36, + "height": 16, + "x": 176, + "y": 52, + "pixelRatio": 1 + }, + "london-underground.national-rail": { + "width": 36, + "height": 16, + "x": 176, + "y": 68, + "pixelRatio": 1 + }, + "london-overground.london-underground": { + "width": 36, + "height": 16, + "x": 176, + "y": 84, + "pixelRatio": 1 + }, + "dlr.national-rail": { + "width": 36, + "height": 16, + "x": 176, + "y": 100, + "pixelRatio": 1 + }, + "default_4": { + "width": 32, + "height": 16, + "x": 176, + "y": 116, + "pixelRatio": 1 + }, + "default_3": { + "width": 27, + "height": 16, + "x": 176, + "y": 132, + "pixelRatio": 1 + }, + "dot": { + "width": 20, + "height": 20, + "x": 146, + "y": 83, + "pixelRatio": 1 + }, + "moscow-metro": { + "width": 21, + "height": 18, + "x": 146, + "y": 103, + "pixelRatio": 1 + }, + "default_2": { + "width": 22, + "height": 16, + "x": 146, + "y": 121, + "pixelRatio": 1 + }, + "post_icon": { + "width": 18, + "height": 18, + "x": 0, + "y": 159, + "pixelRatio": 1 + }, + "police_icon": { + "width": 18, + "height": 18, + "x": 18, + "y": 159, + "pixelRatio": 1 + }, + "cemetery_icon": { + "width": 18, + "height": 18, + "x": 36, + "y": 159, + "pixelRatio": 1 + }, + "embassy_icon": { + "width": 18, + "height": 18, + "x": 54, + "y": 159, + "pixelRatio": 1 + }, + "golf_icon": { + "width": 18, + "height": 18, + "x": 72, + "y": 159, + "pixelRatio": 1 + }, + "religious-jewish_icon": { + "width": 18, + "height": 18, + "x": 90, + "y": 159, + "pixelRatio": 1 + }, + "government_icon": { + "width": 18, + "height": 18, + "x": 108, + "y": 159, + "pixelRatio": 1 + }, + "s-bahn": { + "width": 18, + "height": 18, + "x": 126, + "y": 159, + "pixelRatio": 1 + }, + "school_icon": { + "width": 18, + "height": 18, + "x": 144, + "y": 159, + "pixelRatio": 1 + }, + "fire-station_icon": { + "width": 18, + "height": 18, + "x": 162, + "y": 159, + "pixelRatio": 1 + }, + "generic_metro": { + "width": 18, + "height": 18, + "x": 180, + "y": 159, + "pixelRatio": 1 + }, + "hospital_icon": { + "width": 18, + "height": 18, + "x": 0, + "y": 177, + "pixelRatio": 1 + }, + "zoo_icon": { + "width": 18, + "height": 18, + "x": 18, + "y": 177, + "pixelRatio": 1 + }, + "generic_rail": { + "width": 18, + "height": 18, + "x": 36, + "y": 177, + "pixelRatio": 1 + }, + "harbor_icon": { + "width": 18, + "height": 18, + "x": 54, + "y": 177, + "pixelRatio": 1 + }, + "library_icon": { + "width": 18, + "height": 18, + "x": 72, + "y": 177, + "pixelRatio": 1 + }, + "monument_icon": { + "width": 18, + "height": 18, + "x": 90, + "y": 177, + "pixelRatio": 1 + }, + "washington-metro": { + "width": 18, + "height": 18, + "x": 108, + "y": 177, + "pixelRatio": 1 + }, + "airport_icon": { + "width": 18, + "height": 18, + "x": 126, + "y": 177, + "pixelRatio": 1 + }, + "park_icon": { + "width": 18, + "height": 18, + "x": 144, + "y": 177, + "pixelRatio": 1 + }, + "generic_icon": { + "width": 18, + "height": 18, + "x": 162, + "y": 177, + "pixelRatio": 1 + }, + "wiener-linien": { + "width": 18, + "height": 18, + "x": 180, + "y": 177, + "pixelRatio": 1 + }, + "college_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 0, + "pixelRatio": 1 + }, + "religious-muslim_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 18, + "pixelRatio": 1 + }, + "marker_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 36, + "pixelRatio": 1 + }, + "rer": { + "width": 18, + "height": 18, + "x": 212, + "y": 54, + "pixelRatio": 1 + }, + "u-bahn": { + "width": 18, + "height": 18, + "x": 212, + "y": 72, + "pixelRatio": 1 + }, + "prison_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 90, + "pixelRatio": 1 + }, + "airfield_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 108, + "pixelRatio": 1 + }, + "metro": { + "width": 18, + "height": 18, + "x": 212, + "y": 126, + "pixelRatio": 1 + }, + "religious-christian_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 144, + "pixelRatio": 1 + }, + "museum_icon": { + "width": 18, + "height": 18, + "x": 212, + "y": 162, + "pixelRatio": 1 + }, + "national-rail": { + "width": 18, + "height": 16, + "x": 126, + "y": 93, + "pixelRatio": 1 + }, + "london-overground": { + "width": 18, + "height": 16, + "x": 125, + "y": 109, + "pixelRatio": 1 + }, + "london-underground": { + "width": 18, + "height": 16, + "x": 119, + "y": 139, + "pixelRatio": 1 + }, + "dlr": { + "width": 18, + "height": 16, + "x": 137, + "y": 139, + "pixelRatio": 1 + }, + "default_1": { + "width": 17, + "height": 16, + "x": 155, + "y": 139, + "pixelRatio": 1 + }, + "oneway_motorway": { + "width": 20, + "height": 9, + "x": 176, + "y": 148, + "pixelRatio": 1 + }, + "oneway_road": { + "width": 20, + "height": 9, + "x": 50, + "y": 80, + "pixelRatio": 1 + }, + "school_striped": { + "width": 6, + "height": 6, + "x": 212, + "y": 180, + "pixelRatio": 1 + }, + "hospital_striped": { + "width": 6, + "height": 6, + "x": 218, + "y": 180, + "pixelRatio": 1 + } +} \ No newline at end of file diff --git a/test/integration/sprites/emerald.png b/test/integration/sprites/emerald.png new file mode 100644 index 00000000000..04b2bf508ab Binary files /dev/null and b/test/integration/sprites/emerald.png differ diff --git a/test/integration/sprites/emerald@2x.json b/test/integration/sprites/emerald@2x.json new file mode 100644 index 00000000000..7ef71ce5c3a --- /dev/null +++ b/test/integration/sprites/emerald@2x.json @@ -0,0 +1,492 @@ +{ + "sand_noise": { + "width": 100, + "height": 100, + "x": 0, + "y": 0, + "pixelRatio": 2 + }, + "grass_noise": { + "width": 100, + "height": 100, + "x": 100, + "y": 0, + "pixelRatio": 2 + }, + "interstate_3": { + "width": 100, + "height": 86, + "x": 0, + "y": 100, + "pixelRatio": 2 + }, + "interstate_2": { + "width": 92, + "height": 88, + "x": 200, + "y": 0, + "pixelRatio": 2 + }, + "interstate_1": { + "width": 80, + "height": 84, + "x": 200, + "y": 88, + "pixelRatio": 2 + }, + "dlr.london-overground.london-underground.national-rail": { + "width": 144, + "height": 32, + "x": 0, + "y": 186, + "pixelRatio": 2 + }, + "us_highway_3": { + "width": 74, + "height": 60, + "x": 100, + "y": 100, + "pixelRatio": 2 + }, + "us_highway_2": { + "width": 68, + "height": 60, + "x": 0, + "y": 218, + "pixelRatio": 2 + }, + "us_state_3": { + "width": 74, + "height": 54, + "x": 68, + "y": 218, + "pixelRatio": 2 + }, + "london-overground.london-underground.national-rail": { + "width": 108, + "height": 32, + "x": 144, + "y": 186, + "pixelRatio": 2 + }, + "dlr.london-underground.national-rail": { + "width": 108, + "height": 32, + "x": 142, + "y": 218, + "pixelRatio": 2 + }, + "us_state_1": { + "width": 60, + "height": 54, + "x": 292, + "y": 0, + "pixelRatio": 2 + }, + "us_state_2": { + "width": 60, + "height": 54, + "x": 292, + "y": 54, + "pixelRatio": 2 + }, + "rer.transilien": { + "width": 80, + "height": 40, + "x": 0, + "y": 278, + "pixelRatio": 2 + }, + "us_highway_1": { + "width": 52, + "height": 58, + "x": 292, + "y": 108, + "pixelRatio": 2 + }, + "default_6": { + "width": 84, + "height": 32, + "x": 80, + "y": 278, + "pixelRatio": 2 + }, + "s-bahn.u-bahn": { + "width": 72, + "height": 36, + "x": 352, + "y": 0, + "pixelRatio": 2 + }, + "metro.rer": { + "width": 68, + "height": 36, + "x": 352, + "y": 36, + "pixelRatio": 2 + }, + "default_5": { + "width": 74, + "height": 32, + "x": 164, + "y": 278, + "pixelRatio": 2 + }, + "dlr.london-underground": { + "width": 72, + "height": 32, + "x": 352, + "y": 72, + "pixelRatio": 2 + }, + "london-overground.national-rail": { + "width": 72, + "height": 32, + "x": 352, + "y": 104, + "pixelRatio": 2 + }, + "london-underground.national-rail": { + "width": 72, + "height": 32, + "x": 352, + "y": 136, + "pixelRatio": 2 + }, + "london-overground.london-underground": { + "width": 72, + "height": 32, + "x": 352, + "y": 168, + "pixelRatio": 2 + }, + "dlr.national-rail": { + "width": 72, + "height": 32, + "x": 352, + "y": 200, + "pixelRatio": 2 + }, + "default_4": { + "width": 64, + "height": 32, + "x": 352, + "y": 232, + "pixelRatio": 2 + }, + "default_3": { + "width": 54, + "height": 32, + "x": 352, + "y": 264, + "pixelRatio": 2 + }, + "dot": { + "width": 40, + "height": 40, + "x": 292, + "y": 166, + "pixelRatio": 2 + }, + "moscow-metro": { + "width": 42, + "height": 36, + "x": 292, + "y": 206, + "pixelRatio": 2 + }, + "default_2": { + "width": 44, + "height": 32, + "x": 292, + "y": 242, + "pixelRatio": 2 + }, + "post_icon": { + "width": 36, + "height": 36, + "x": 0, + "y": 318, + "pixelRatio": 2 + }, + "police_icon": { + "width": 36, + "height": 36, + "x": 36, + "y": 318, + "pixelRatio": 2 + }, + "cemetery_icon": { + "width": 36, + "height": 36, + "x": 72, + "y": 318, + "pixelRatio": 2 + }, + "embassy_icon": { + "width": 36, + "height": 36, + "x": 108, + "y": 318, + "pixelRatio": 2 + }, + "golf_icon": { + "width": 36, + "height": 36, + "x": 144, + "y": 318, + "pixelRatio": 2 + }, + "religious-jewish_icon": { + "width": 36, + "height": 36, + "x": 180, + "y": 318, + "pixelRatio": 2 + }, + "government_icon": { + "width": 36, + "height": 36, + "x": 216, + "y": 318, + "pixelRatio": 2 + }, + "s-bahn": { + "width": 36, + "height": 36, + "x": 252, + "y": 318, + "pixelRatio": 2 + }, + "school_icon": { + "width": 36, + "height": 36, + "x": 288, + "y": 318, + "pixelRatio": 2 + }, + "fire-station_icon": { + "width": 36, + "height": 36, + "x": 324, + "y": 318, + "pixelRatio": 2 + }, + "generic_metro": { + "width": 36, + "height": 36, + "x": 360, + "y": 318, + "pixelRatio": 2 + }, + "hospital_icon": { + "width": 36, + "height": 36, + "x": 0, + "y": 354, + "pixelRatio": 2 + }, + "zoo_icon": { + "width": 36, + "height": 36, + "x": 36, + "y": 354, + "pixelRatio": 2 + }, + "generic_rail": { + "width": 36, + "height": 36, + "x": 72, + "y": 354, + "pixelRatio": 2 + }, + "harbor_icon": { + "width": 36, + "height": 36, + "x": 108, + "y": 354, + "pixelRatio": 2 + }, + "library_icon": { + "width": 36, + "height": 36, + "x": 144, + "y": 354, + "pixelRatio": 2 + }, + "monument_icon": { + "width": 36, + "height": 36, + "x": 180, + "y": 354, + "pixelRatio": 2 + }, + "washington-metro": { + "width": 36, + "height": 36, + "x": 216, + "y": 354, + "pixelRatio": 2 + }, + "airport_icon": { + "width": 36, + "height": 36, + "x": 252, + "y": 354, + "pixelRatio": 2 + }, + "park_icon": { + "width": 36, + "height": 36, + "x": 288, + "y": 354, + "pixelRatio": 2 + }, + "generic_icon": { + "width": 36, + "height": 36, + "x": 324, + "y": 354, + "pixelRatio": 2 + }, + "wiener-linien": { + "width": 36, + "height": 36, + "x": 360, + "y": 354, + "pixelRatio": 2 + }, + "college_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 0, + "pixelRatio": 2 + }, + "religious-muslim_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 36, + "pixelRatio": 2 + }, + "marker_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 72, + "pixelRatio": 2 + }, + "rer": { + "width": 36, + "height": 36, + "x": 424, + "y": 108, + "pixelRatio": 2 + }, + "u-bahn": { + "width": 36, + "height": 36, + "x": 424, + "y": 144, + "pixelRatio": 2 + }, + "prison_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 180, + "pixelRatio": 2 + }, + "airfield_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 216, + "pixelRatio": 2 + }, + "metro": { + "width": 36, + "height": 36, + "x": 424, + "y": 252, + "pixelRatio": 2 + }, + "religious-christian_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 288, + "pixelRatio": 2 + }, + "museum_icon": { + "width": 36, + "height": 36, + "x": 424, + "y": 324, + "pixelRatio": 2 + }, + "national-rail": { + "width": 36, + "height": 32, + "x": 252, + "y": 186, + "pixelRatio": 2 + }, + "london-overground": { + "width": 36, + "height": 32, + "x": 250, + "y": 218, + "pixelRatio": 2 + }, + "london-underground": { + "width": 36, + "height": 32, + "x": 238, + "y": 278, + "pixelRatio": 2 + }, + "dlr": { + "width": 36, + "height": 32, + "x": 274, + "y": 278, + "pixelRatio": 2 + }, + "default_1": { + "width": 34, + "height": 32, + "x": 310, + "y": 278, + "pixelRatio": 2 + }, + "oneway_motorway": { + "width": 40, + "height": 18, + "x": 352, + "y": 296, + "pixelRatio": 2 + }, + "oneway_road": { + "width": 40, + "height": 18, + "x": 100, + "y": 160, + "pixelRatio": 2 + }, + "school_striped": { + "width": 12, + "height": 12, + "x": 424, + "y": 360, + "pixelRatio": 2 + }, + "hospital_striped": { + "width": 12, + "height": 12, + "x": 436, + "y": 360, + "pixelRatio": 2 + } +} \ No newline at end of file diff --git a/test/integration/sprites/emerald@2x.png b/test/integration/sprites/emerald@2x.png new file mode 100644 index 00000000000..be85594b752 Binary files /dev/null and b/test/integration/sprites/emerald@2x.png differ diff --git a/test/integration/sprites/icon-text-fit.json b/test/integration/sprites/icon-text-fit.json new file mode 100644 index 00000000000..70f1102ee8e --- /dev/null +++ b/test/integration/sprites/icon-text-fit.json @@ -0,0 +1,10 @@ +{ + "label": { + "x": 0, + "y": 0, + "width": 240, + "height": 60, + "pixelRatio": 1, + "sdf": false + } +} diff --git a/test/integration/sprites/icon-text-fit.png b/test/integration/sprites/icon-text-fit.png new file mode 100644 index 00000000000..167aa2086cf Binary files /dev/null and b/test/integration/sprites/icon-text-fit.png differ diff --git a/test/integration/sprites/icon-text-fit.svg b/test/integration/sprites/icon-text-fit.svg new file mode 100644 index 00000000000..20f3a90967e --- /dev/null +++ b/test/integration/sprites/icon-text-fit.svg @@ -0,0 +1,14 @@ + + + + + + + image/svg+xml + + + + + + + diff --git a/test/integration/sprites/solid-black.json b/test/integration/sprites/solid-black.json new file mode 100644 index 00000000000..61199f85b97 --- /dev/null +++ b/test/integration/sprites/solid-black.json @@ -0,0 +1,9 @@ +{ + "black": { + "width": 20, + "height": 56, + "x": 0, + "y": 0, + "pixelRatio": 1 + } +} \ No newline at end of file diff --git a/test/integration/sprites/solid-black.png b/test/integration/sprites/solid-black.png new file mode 100644 index 00000000000..a8a3b8fd989 Binary files /dev/null and b/test/integration/sprites/solid-black.png differ diff --git a/test/integration/sprites/sprite.json b/test/integration/sprites/sprite.json new file mode 100644 index 00000000000..e80b4daad68 --- /dev/null +++ b/test/integration/sprites/sprite.json @@ -0,0 +1,2994 @@ +{ + "wetland-17": { + "x": 0, + "y": 0, + "width": 256, + "height": 256, + "pixelRatio": 1, + "sdf": false + }, + "wetland-noveg-17": { + "x": 258, + "y": 0, + "width": 256, + "height": 256, + "pixelRatio": 1, + "sdf": false + }, + "wetland-noveg-16": { + "x": 0, + "y": 258, + "width": 128, + "height": 128, + "pixelRatio": 1, + "sdf": false + }, + "wetland-16": { + "x": 130, + "y": 258, + "width": 128, + "height": 128, + "pixelRatio": 1, + "sdf": false + }, + "park": { + "x": 260, + "y": 258, + "width": 64, + "height": 64, + "pixelRatio": 1, + "sdf": false + }, + "wetland-noveg-15": { + "x": 326, + "y": 258, + "width": 64, + "height": 64, + "pixelRatio": 1, + "sdf": false + }, + "park-z15": { + "x": 392, + "y": 258, + "width": 64, + "height": 64, + "pixelRatio": 1, + "sdf": false + }, + "wetland-15": { + "x": 0, + "y": 388, + "width": 64, + "height": 64, + "pixelRatio": 1, + "sdf": false + }, + "wetland-14": { + "x": 458, + "y": 258, + "width": 32, + "height": 32, + "pixelRatio": 1, + "sdf": false + }, + "wetland-noveg-14": { + "x": 260, + "y": 324, + "width": 32, + "height": 32, + "pixelRatio": 1, + "sdf": false + }, + "sand": { + "x": 294, + "y": 324, + "width": 32, + "height": 32, + "pixelRatio": 1, + "sdf": false + }, + "fav-bank-18": { + "x": 458, + "y": 292, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-bar-18": { + "x": 328, + "y": 324, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-baseball-18": { + "x": 358, + "y": 324, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-basketball-18": { + "x": 388, + "y": 324, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-beer-18": { + "x": 418, + "y": 324, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-bicycle-18": { + "x": 448, + "y": 324, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-building-18": { + "x": 478, + "y": 324, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-bus-18": { + "x": 260, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-cafe-18": { + "x": 290, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-camera-18": { + "x": 320, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-campsite-18": { + "x": 350, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-car-18": { + "x": 380, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-cemetery-18": { + "x": 410, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-chemist-18": { + "x": 440, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-cinema-18": { + "x": 470, + "y": 358, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-circle-18": { + "x": 66, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-circle-stroked-18": { + "x": 96, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-city-18": { + "x": 126, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-clothing-store-18": { + "x": 156, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-college-18": { + "x": 186, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-commercial-18": { + "x": 216, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-cricket-18": { + "x": 246, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-cross-18": { + "x": 276, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-dam-18": { + "x": 306, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-danger-18": { + "x": 336, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-disability-18": { + "x": 366, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-dog-park-18": { + "x": 396, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-embassy-18": { + "x": 426, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-emergency-telephone-18": { + "x": 456, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-entrance-18": { + "x": 486, + "y": 388, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-farm-18": { + "x": 66, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-fast-food-18": { + "x": 96, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-ferry-18": { + "x": 126, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-fire-station-18": { + "x": 156, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-fuel-18": { + "x": 186, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-garden-18": { + "x": 216, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-golf-18": { + "x": 246, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-grocery-18": { + "x": 276, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-hairdresser-18": { + "x": 306, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-harbor-18": { + "x": 336, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-heart-18": { + "x": 366, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-heliport-18": { + "x": 396, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-hospital-18": { + "x": 426, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-industrial-18": { + "x": 456, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-land-use-18": { + "x": 486, + "y": 418, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "squares-18": { + "x": 0, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-library-18": { + "x": 30, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-lighthouse-18": { + "x": 60, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-lodging-18": { + "x": 90, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-logging-18": { + "x": 120, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-london-underground-18": { + "x": 150, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-marker-18": { + "x": 180, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-marker-stroked-18": { + "x": 210, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-minefield-18": { + "x": 240, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-mobilephone-18": { + "x": 270, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-monument-18": { + "x": 300, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-museum-18": { + "x": 330, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-music-18": { + "x": 360, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-oil-well-18": { + "x": 390, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-park-18": { + "x": 420, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-park2-18": { + "x": 450, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-parking-18": { + "x": 480, + "y": 454, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-parking-garage-18": { + "x": 0, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-pharmacy-18": { + "x": 30, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-pitch-18": { + "x": 60, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-place-of-worship-18": { + "x": 90, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-playground-18": { + "x": 120, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-police-18": { + "x": 150, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-polling-place-18": { + "x": 180, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-post-18": { + "x": 210, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-prison-18": { + "x": 240, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-rail-18": { + "x": 270, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-rail-above-18": { + "x": 300, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-rail-light-18": { + "x": 330, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-rail-metro-18": { + "x": 360, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-rail-underground-18": { + "x": 390, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-religious-christian-18": { + "x": 420, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-religious-jewish-18": { + "x": 450, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-religious-muslim-18": { + "x": 480, + "y": 484, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-restaurant-18": { + "x": 516, + "y": 0, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-roadblock-18": { + "x": 516, + "y": 30, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-rocket-18": { + "x": 516, + "y": 60, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-school-18": { + "x": 516, + "y": 90, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-scooter-18": { + "x": 516, + "y": 120, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-shop-18": { + "x": 516, + "y": 150, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-skiing-18": { + "x": 516, + "y": 180, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-slaughterhouse-18": { + "x": 516, + "y": 210, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-soccer-18": { + "x": 516, + "y": 240, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-square-18": { + "x": 516, + "y": 270, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-square-stroked-18": { + "x": 516, + "y": 300, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-star-18": { + "x": 516, + "y": 330, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-star-stroked-18": { + "x": 516, + "y": 360, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-suitcase-18": { + "x": 516, + "y": 390, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-swimming-18": { + "x": 516, + "y": 420, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-telephone-18": { + "x": 516, + "y": 450, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-tennis-18": { + "x": 516, + "y": 480, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-theatre-18": { + "x": 0, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-toilets-18": { + "x": 30, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-town-18": { + "x": 60, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-town-hall-18": { + "x": 90, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-triangle-18": { + "x": 120, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-triangle-stroked-18": { + "x": 150, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-village-18": { + "x": 180, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-warehouse-18": { + "x": 210, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-waste-basket-18": { + "x": 240, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-water-18": { + "x": 270, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-wetland-18": { + "x": 300, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-zoo-18": { + "x": 330, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-airfield-18": { + "x": 360, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-airport-18": { + "x": 390, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-alcohol-shop-18": { + "x": 420, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-america-football-18": { + "x": 450, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-art-gallery-18": { + "x": 480, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "fav-bakery-18": { + "x": 510, + "y": 514, + "width": 28, + "height": 28, + "pixelRatio": 1, + "sdf": false + }, + "airfield-12": { + "x": 492, + "y": 258, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "camera-12": { + "x": 488, + "y": 292, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "campsite-12": { + "x": 546, + "y": 0, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "car-12": { + "x": 546, + "y": 24, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "cemetery-12": { + "x": 546, + "y": 48, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "chemist-12": { + "x": 546, + "y": 72, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "cinema-12": { + "x": 546, + "y": 96, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "circle-12": { + "x": 546, + "y": 120, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "circle-stroked-12": { + "x": 546, + "y": 144, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "city-12": { + "x": 546, + "y": 168, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "zoo-12": { + "x": 546, + "y": 192, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "alcohol-shop-12": { + "x": 546, + "y": 216, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "america-football-12": { + "x": 546, + "y": 240, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "clothing-store-12": { + "x": 546, + "y": 264, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "college-12": { + "x": 546, + "y": 288, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "commercial-12": { + "x": 546, + "y": 312, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "cricket-12": { + "x": 546, + "y": 336, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "cross-12": { + "x": 546, + "y": 360, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "dam-12": { + "x": 546, + "y": 384, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "danger-12": { + "x": 546, + "y": 408, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "disability-12": { + "x": 546, + "y": 432, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "dog-park-12": { + "x": 546, + "y": 456, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "art-gallery-12": { + "x": 546, + "y": 480, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "embassy-12": { + "x": 546, + "y": 504, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "emergency-telephone-12": { + "x": 0, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "entrance-12": { + "x": 24, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "farm-12": { + "x": 48, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "fast-food-12": { + "x": 72, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "bakery-12": { + "x": 96, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "bank-12": { + "x": 120, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "bar-12": { + "x": 144, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "ferry-12": { + "x": 168, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "fire-station-12": { + "x": 192, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "fuel-12": { + "x": 216, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "garden-12": { + "x": 240, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "golf-12": { + "x": 264, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "grocery-12": { + "x": 288, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "hairdresser-12": { + "x": 312, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "harbor-12": { + "x": 336, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "heart-12": { + "x": 360, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "heliport-12": { + "x": 384, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "hospital-12": { + "x": 408, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "industrial-12": { + "x": 432, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "land-use-12": { + "x": 456, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "laundry-12": { + "x": 480, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "library-12": { + "x": 504, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "lighthouse-12": { + "x": 528, + "y": 544, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "lodging-12": { + "x": 570, + "y": 0, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "logging-12": { + "x": 570, + "y": 24, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "london-underground-12": { + "x": 570, + "y": 48, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "marker-12": { + "x": 570, + "y": 72, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "marker-stroked-12": { + "x": 570, + "y": 96, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "minefield-12": { + "x": 570, + "y": 120, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "mobilephone-12": { + "x": 570, + "y": 144, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "monument-12": { + "x": 570, + "y": 168, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "baseball-12": { + "x": 570, + "y": 192, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "basketball-12": { + "x": 570, + "y": 216, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "beer-12": { + "x": 570, + "y": 240, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "bicycle-12": { + "x": 570, + "y": 264, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "wetland-12": { + "x": 570, + "y": 288, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "water-12": { + "x": 570, + "y": 312, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "waste-basket-12": { + "x": 570, + "y": 336, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "airport-12": { + "x": 570, + "y": 360, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "warehouse-12": { + "x": 570, + "y": 384, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "village-12": { + "x": 570, + "y": 408, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "triangle-stroked-12": { + "x": 570, + "y": 432, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "triangle-12": { + "x": 570, + "y": 456, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "museum-12": { + "x": 570, + "y": 480, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "music-12": { + "x": 570, + "y": 504, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-airfield-12": { + "x": 570, + "y": 528, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-airport-12": { + "x": 0, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-alcohol-shop-12": { + "x": 24, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-america-football-12": { + "x": 48, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-art-gallery-12": { + "x": 72, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-bakery-12": { + "x": 96, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-bank-12": { + "x": 120, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-bar-12": { + "x": 144, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-baseball-12": { + "x": 168, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-basketball-12": { + "x": 192, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-beer-12": { + "x": 216, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-bicycle-12": { + "x": 240, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-building-12": { + "x": 264, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-bus-12": { + "x": 288, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-cafe-12": { + "x": 312, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-camera-12": { + "x": 336, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-campsite-12": { + "x": 360, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-car-12": { + "x": 384, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-cemetery-12": { + "x": 408, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-chemist-12": { + "x": 432, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-cinema-12": { + "x": 456, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-circle-12": { + "x": 480, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-circle-stroked-12": { + "x": 504, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-city-12": { + "x": 528, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-clothing-store-12": { + "x": 552, + "y": 568, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-college-12": { + "x": 594, + "y": 0, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-commercial-12": { + "x": 594, + "y": 24, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-cricket-12": { + "x": 594, + "y": 48, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-cross-12": { + "x": 594, + "y": 72, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-dam-12": { + "x": 594, + "y": 96, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-danger-12": { + "x": 594, + "y": 120, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-disability-12": { + "x": 594, + "y": 144, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-dog-park-12": { + "x": 594, + "y": 168, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-embassy-12": { + "x": 594, + "y": 192, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-emergency-telephone-12": { + "x": 594, + "y": 216, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-entrance-12": { + "x": 594, + "y": 240, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-farm-12": { + "x": 594, + "y": 264, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-fast-food-12": { + "x": 594, + "y": 288, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-ferry-12": { + "x": 594, + "y": 312, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-fire-station-12": { + "x": 594, + "y": 336, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-fuel-12": { + "x": 594, + "y": 360, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-garden-12": { + "x": 594, + "y": 384, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-golf-12": { + "x": 594, + "y": 408, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-grocery-12": { + "x": 594, + "y": 432, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-hairdresser-12": { + "x": 594, + "y": 456, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-harbor-12": { + "x": 594, + "y": 480, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-heart-12": { + "x": 594, + "y": 504, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-heliport-12": { + "x": 594, + "y": 528, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-hospital-12": { + "x": 594, + "y": 552, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-industrial-12": { + "x": 0, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-land-use-12": { + "x": 24, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-laundry-12": { + "x": 48, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-library-12": { + "x": 72, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-lighthouse-12": { + "x": 96, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-lodging-12": { + "x": 120, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-logging-12": { + "x": 144, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-london-underground-12": { + "x": 168, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-marker-12": { + "x": 192, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-marker-stroked-12": { + "x": 216, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-minefield-12": { + "x": 240, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-mobilephone-12": { + "x": 264, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-monument-12": { + "x": 288, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-museum-12": { + "x": 312, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-music-12": { + "x": 336, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-oil-well-12": { + "x": 360, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-park-12": { + "x": 384, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-park2-12": { + "x": 408, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-parking-12": { + "x": 432, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-parking-garage-12": { + "x": 456, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-pharmacy-12": { + "x": 480, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-pitch-12": { + "x": 504, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-place-of-worship-12": { + "x": 528, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-playground-12": { + "x": 552, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-police-12": { + "x": 576, + "y": 592, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-polling-place-12": { + "x": 618, + "y": 0, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-post-12": { + "x": 618, + "y": 24, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-prison-12": { + "x": 618, + "y": 48, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-rail-12": { + "x": 618, + "y": 72, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-rail-above-12": { + "x": 618, + "y": 96, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-rail-light-12": { + "x": 618, + "y": 120, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-rail-metro-12": { + "x": 618, + "y": 144, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-rail-underground-12": { + "x": 618, + "y": 168, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-religious-christian-12": { + "x": 618, + "y": 192, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-religious-jewish-12": { + "x": 618, + "y": 216, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-religious-muslim-12": { + "x": 618, + "y": 240, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-restaurant-12": { + "x": 618, + "y": 264, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-roadblock-12": { + "x": 618, + "y": 288, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-rocket-12": { + "x": 618, + "y": 312, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-school-12": { + "x": 618, + "y": 336, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-scooter-12": { + "x": 618, + "y": 360, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-shop-12": { + "x": 618, + "y": 384, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-skiing-12": { + "x": 618, + "y": 408, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-slaughterhouse-12": { + "x": 618, + "y": 432, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-soccer-12": { + "x": 618, + "y": 456, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-square-12": { + "x": 618, + "y": 480, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-square-stroked-12": { + "x": 618, + "y": 504, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-star-12": { + "x": 618, + "y": 528, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-star-stroked-12": { + "x": 618, + "y": 552, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-suitcase-12": { + "x": 618, + "y": 576, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-swimming-12": { + "x": 0, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-telephone-12": { + "x": 24, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-tennis-12": { + "x": 48, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-theatre-12": { + "x": 72, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-toilets-12": { + "x": 96, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-town-12": { + "x": 120, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-town-hall-12": { + "x": 144, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-triangle-12": { + "x": 168, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-triangle-stroked-12": { + "x": 192, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-village-12": { + "x": 216, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-warehouse-12": { + "x": 240, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-waste-basket-12": { + "x": 264, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-water-12": { + "x": 288, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-wetland-12": { + "x": 312, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "night-zoo-12": { + "x": 336, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "oil-well-12": { + "x": 360, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "town-hall-12": { + "x": 384, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "park-12": { + "x": 408, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "building-12": { + "x": 432, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "bus-12": { + "x": 456, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "park2-12": { + "x": 480, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "parking-12": { + "x": 504, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "parking-garage-12": { + "x": 528, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "pharmacy-12": { + "x": 552, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "pitch-12": { + "x": 576, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "place-of-worship-12": { + "x": 600, + "y": 616, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "playground-12": { + "x": 642, + "y": 0, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "police-12": { + "x": 642, + "y": 24, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "polling-place-12": { + "x": 642, + "y": 48, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "post-12": { + "x": 642, + "y": 72, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "prison-12": { + "x": 642, + "y": 96, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "rail-12": { + "x": 642, + "y": 120, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "rail-above-12": { + "x": 642, + "y": 144, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "rail-light-12": { + "x": 642, + "y": 168, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "rail-metro-12": { + "x": 642, + "y": 192, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "rail-underground-12": { + "x": 642, + "y": 216, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "religious-christian-12": { + "x": 642, + "y": 240, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "religious-jewish-12": { + "x": 642, + "y": 264, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "religious-muslim-12": { + "x": 642, + "y": 288, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "restaurant-12": { + "x": 642, + "y": 312, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "roadblock-12": { + "x": 642, + "y": 336, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "rocket-12": { + "x": 642, + "y": 360, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "cafe-12": { + "x": 642, + "y": 384, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "school-12": { + "x": 642, + "y": 408, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "scooter-12": { + "x": 642, + "y": 432, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "shop-12": { + "x": 642, + "y": 456, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "skiing-12": { + "x": 642, + "y": 480, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "slaughterhouse-12": { + "x": 642, + "y": 504, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "soccer-12": { + "x": 642, + "y": 528, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "square-12": { + "x": 642, + "y": 552, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "square-stroked-12": { + "x": 642, + "y": 576, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "star-12": { + "x": 642, + "y": 600, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "star-stroked-12": { + "x": 0, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "suitcase-12": { + "x": 24, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "swimming-12": { + "x": 48, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "telephone-12": { + "x": 72, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "tennis-12": { + "x": 96, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "theatre-12": { + "x": 120, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "toilets-12": { + "x": 144, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "town-12": { + "x": 168, + "y": 640, + "width": 22, + "height": 22, + "pixelRatio": 1, + "sdf": false + }, + "dot.sdf": { + "x": 192, + "y": 640, + "width": 19, + "height": 20, + "pixelRatio": 1, + "sdf": true + }, + "motorway_lg_4": { + "x": 213, + "y": 640, + "width": 32, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "motorway_lg_6": { + "x": 247, + "y": 640, + "width": 42, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "water": { + "x": 291, + "y": 640, + "width": 64, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "motorway_lg_5": { + "x": 357, + "y": 640, + "width": 37, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "wetland-13": { + "x": 552, + "y": 544, + "width": 16, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "motorway_lg_3": { + "x": 396, + "y": 640, + "width": 27, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "motorway_lg_2": { + "x": 425, + "y": 640, + "width": 22, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "motorway_lg_1": { + "x": 449, + "y": 640, + "width": 17, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "wetland-noveg-13": { + "x": 576, + "y": 568, + "width": 16, + "height": 16, + "pixelRatio": 1, + "sdf": false + }, + "motorway_sm_6": { + "x": 468, + "y": 640, + "width": 40, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "motorway_sm_1": { + "x": 642, + "y": 624, + "width": 15, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "motorway_sm_2": { + "x": 618, + "y": 600, + "width": 20, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "motorway_sm_5": { + "x": 510, + "y": 640, + "width": 35, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "cliff-lg": { + "x": 594, + "y": 576, + "width": 10, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "motorway_sm_4": { + "x": 547, + "y": 640, + "width": 30, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "motorway_sm_3": { + "x": 579, + "y": 640, + "width": 25, + "height": 13, + "pixelRatio": 1, + "sdf": false + }, + "wetland-noveg-12": { + "x": 570, + "y": 552, + "width": 12, + "height": 12, + "pixelRatio": 1, + "sdf": false + }, + "cliff-md": { + "x": 606, + "y": 576, + "width": 8, + "height": 7, + "pixelRatio": 1, + "sdf": false + }, + "cliff-sm": { + "x": 584, + "y": 552, + "width": 6, + "height": 5, + "pixelRatio": 1, + "sdf": false + }, + "oneway": { + "x": 546, + "y": 528, + "width": 18, + "height": 6, + "pixelRatio": 1, + "sdf": false + } +} \ No newline at end of file diff --git a/test/integration/sprites/sprite.png b/test/integration/sprites/sprite.png new file mode 100644 index 00000000000..8c27324fda0 Binary files /dev/null and b/test/integration/sprites/sprite.png differ diff --git a/test/integration/tiles/0-0-0.mvt b/test/integration/tiles/0-0-0.mvt new file mode 100644 index 00000000000..39bcebd0127 Binary files /dev/null and b/test/integration/tiles/0-0-0.mvt differ diff --git a/test/integration/tiles/0-0-0.png b/test/integration/tiles/0-0-0.png new file mode 100644 index 00000000000..9031ca53971 Binary files /dev/null and b/test/integration/tiles/0-0-0.png differ diff --git a/test/integration/tiles/1-0-0.satellite.png b/test/integration/tiles/1-0-0.satellite.png new file mode 100644 index 00000000000..8752a1f5645 Binary files /dev/null and b/test/integration/tiles/1-0-0.satellite.png differ diff --git a/test/integration/tiles/1-0-1.satellite.png b/test/integration/tiles/1-0-1.satellite.png new file mode 100644 index 00000000000..26e2b475f27 Binary files /dev/null and b/test/integration/tiles/1-0-1.satellite.png differ diff --git a/test/integration/tiles/1-1-0.satellite.png b/test/integration/tiles/1-1-0.satellite.png new file mode 100644 index 00000000000..102cd024d21 Binary files /dev/null and b/test/integration/tiles/1-1-0.satellite.png differ diff --git a/test/integration/tiles/1-1-1.satellite.png b/test/integration/tiles/1-1-1.satellite.png new file mode 100644 index 00000000000..adc14c8d2b4 Binary files /dev/null and b/test/integration/tiles/1-1-1.satellite.png differ diff --git a/test/integration/tiles/14-4357-6245.mvt b/test/integration/tiles/14-4357-6245.mvt new file mode 100644 index 00000000000..64604eb496a Binary files /dev/null and b/test/integration/tiles/14-4357-6245.mvt differ diff --git a/test/integration/tiles/14-8802-5374.mvt b/test/integration/tiles/14-8802-5374.mvt new file mode 100644 index 00000000000..bbda53d2a36 Binary files /dev/null and b/test/integration/tiles/14-8802-5374.mvt differ diff --git a/test/integration/tiles/14-8802-5375.mvt b/test/integration/tiles/14-8802-5375.mvt new file mode 100644 index 00000000000..0cbc8867ab8 Binary files /dev/null and b/test/integration/tiles/14-8802-5375.mvt differ diff --git a/test/integration/tiles/14-8803-5374.mvt b/test/integration/tiles/14-8803-5374.mvt new file mode 100644 index 00000000000..9fec68c05b6 Binary files /dev/null and b/test/integration/tiles/14-8803-5374.mvt differ diff --git a/test/integration/tiles/14-8803-5375.mvt b/test/integration/tiles/14-8803-5375.mvt new file mode 100644 index 00000000000..de58b8b1856 Binary files /dev/null and b/test/integration/tiles/14-8803-5375.mvt differ diff --git a/test/integration/tiles/17-70420-42997.satellite.png b/test/integration/tiles/17-70420-42997.satellite.png new file mode 100644 index 00000000000..9623468af46 Binary files /dev/null and b/test/integration/tiles/17-70420-42997.satellite.png differ diff --git a/test/integration/tiles/17-70420-42998.satellite.png b/test/integration/tiles/17-70420-42998.satellite.png new file mode 100644 index 00000000000..dfd6b9caf87 Binary files /dev/null and b/test/integration/tiles/17-70420-42998.satellite.png differ diff --git a/test/integration/tiles/17-70421-42997.satellite.png b/test/integration/tiles/17-70421-42997.satellite.png new file mode 100644 index 00000000000..568ec57ebac Binary files /dev/null and b/test/integration/tiles/17-70421-42997.satellite.png differ diff --git a/test/integration/tiles/17-70421-42998.satellite.png b/test/integration/tiles/17-70421-42998.satellite.png new file mode 100644 index 00000000000..e90cd693cb4 Binary files /dev/null and b/test/integration/tiles/17-70421-42998.satellite.png differ diff --git a/test/integration/tiles/17-70422-42997.satellite.png b/test/integration/tiles/17-70422-42997.satellite.png new file mode 100644 index 00000000000..642969d7142 Binary files /dev/null and b/test/integration/tiles/17-70422-42997.satellite.png differ diff --git a/test/integration/tiles/17-70422-42998.satellite.png b/test/integration/tiles/17-70422-42998.satellite.png new file mode 100644 index 00000000000..ab124975736 Binary files /dev/null and b/test/integration/tiles/17-70422-42998.satellite.png differ diff --git a/test/integration/tiles/2-1-1.mvt b/test/integration/tiles/2-1-1.mvt new file mode 100644 index 00000000000..8db68f19ab1 Binary files /dev/null and b/test/integration/tiles/2-1-1.mvt differ diff --git a/test/integration/tiles/2-1-1.tms.mvt b/test/integration/tiles/2-1-1.tms.mvt new file mode 100644 index 00000000000..bf6f3d275c8 Binary files /dev/null and b/test/integration/tiles/2-1-1.tms.mvt differ diff --git a/test/integration/tiles/2-1-2.mvt b/test/integration/tiles/2-1-2.mvt new file mode 100644 index 00000000000..bf6f3d275c8 Binary files /dev/null and b/test/integration/tiles/2-1-2.mvt differ diff --git a/test/integration/tiles/2-1-2.tms.mvt b/test/integration/tiles/2-1-2.tms.mvt new file mode 100644 index 00000000000..8db68f19ab1 Binary files /dev/null and b/test/integration/tiles/2-1-2.tms.mvt differ diff --git a/test/integration/tiles/2-2-1.mvt b/test/integration/tiles/2-2-1.mvt new file mode 100644 index 00000000000..3eee546d842 Binary files /dev/null and b/test/integration/tiles/2-2-1.mvt differ diff --git a/test/integration/tiles/2-2-1.tms.mvt b/test/integration/tiles/2-2-1.tms.mvt new file mode 100644 index 00000000000..45341c5a355 Binary files /dev/null and b/test/integration/tiles/2-2-1.tms.mvt differ diff --git a/test/integration/tiles/2-2-2.mvt b/test/integration/tiles/2-2-2.mvt new file mode 100644 index 00000000000..45341c5a355 Binary files /dev/null and b/test/integration/tiles/2-2-2.mvt differ diff --git a/test/integration/tiles/2-2-2.tms.mvt b/test/integration/tiles/2-2-2.tms.mvt new file mode 100644 index 00000000000..3eee546d842 Binary files /dev/null and b/test/integration/tiles/2-2-2.tms.mvt differ diff --git a/test/integration/tiles/alpha.png b/test/integration/tiles/alpha.png new file mode 100644 index 00000000000..8877f3131ee Binary files /dev/null and b/test/integration/tiles/alpha.png differ diff --git a/test/integration/tiles/counties-7-37-48.mvt b/test/integration/tiles/counties-7-37-48.mvt new file mode 100644 index 00000000000..fde87ea04c6 Binary files /dev/null and b/test/integration/tiles/counties-7-37-48.mvt differ diff --git a/test/integration/tiles/extent-1024.mvt b/test/integration/tiles/extent-1024.mvt new file mode 100644 index 00000000000..ddd99c0379e Binary files /dev/null and b/test/integration/tiles/extent-1024.mvt differ diff --git a/test/integration/tiles/extent1024-0-0-0.mvt b/test/integration/tiles/extent1024-0-0-0.mvt new file mode 100644 index 00000000000..39bcebd0127 Binary files /dev/null and b/test/integration/tiles/extent1024-0-0-0.mvt differ diff --git a/test/integration/tiles/extent1024-14-8802-5374.mvt b/test/integration/tiles/extent1024-14-8802-5374.mvt new file mode 100644 index 00000000000..bbda53d2a36 Binary files /dev/null and b/test/integration/tiles/extent1024-14-8802-5374.mvt differ diff --git a/test/integration/tiles/package.json b/test/integration/tiles/package.json new file mode 100644 index 00000000000..fce513d216a --- /dev/null +++ b/test/integration/tiles/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "mapnik": "^3.5.13" + } +} diff --git a/test/integration/tiles/upgrade.js b/test/integration/tiles/upgrade.js new file mode 100644 index 00000000000..b9a43a5661e --- /dev/null +++ b/test/integration/tiles/upgrade.js @@ -0,0 +1,46 @@ +'use strict'; + +const mapnik = require('mapnik'); +const fs = require('fs'); +const queue = require('d3-queue').queue; + +function upgrade(z, x, y, path, callback) { + console.log('Updating ', path); + const buffer = fs.readFileSync(path); + const vt = new mapnik.VectorTile(z, x, y); + vt.addData(buffer, {upgrade: true, validate: true}, (err) => { + if (err) throw err; + fs.writeFileSync(path, vt.getDataSync()); + callback(); + }); +} + +function createExtent1024(callback) { + console.log('Creating extent1024'); + const buffer = fs.readFileSync('14-8802-5374.mvt'); + const vt = new mapnik.VectorTile(14, 8802, 5374, { tileSize: 1024 }); + vt.addData(buffer, {validate: true}, (err) => { + if (err) throw err; + fs.writeFileSync('extent1024-14-8802-5374.mvt', vt.getDataSync()); + callback(); + }); +} + +const q = queue(1); + +q.defer(upgrade, 0, 0, 0, '0-0-0.mvt'); +q.defer(upgrade, 14, 8802, 5374, '14-8802-5374.mvt'); +q.defer(upgrade, 14, 8802, 5375, '14-8802-5375.mvt'); +q.defer(upgrade, 14, 8803, 5374, '14-8803-5374.mvt'); +q.defer(upgrade, 14, 8803, 5375, '14-8803-5375.mvt'); +q.defer(upgrade, 2, 1, 1, '2-1-1.mvt'); +q.defer(upgrade, 2, 1, 2, '2-1-2.mvt'); +q.defer(upgrade, 2, 2, 1, '2-2-1.mvt'); +q.defer(upgrade, 2, 2, 2, '2-2-2.mvt'); +q.defer(upgrade, 7, 37, 48, 'counties-7-37-48.mvt'); +q.defer(createExtent1024); + +q.await((err) => { + if (err) throw err; + console.log('Done.'); +}); diff --git a/test/integration/tilesets/raster.json b/test/integration/tilesets/raster.json new file mode 100644 index 00000000000..fdd33497ecb --- /dev/null +++ b/test/integration/tilesets/raster.json @@ -0,0 +1,7 @@ +{ + "type": "raster", + "tiles": [ + "http://localhost:2900/tiles/{z}-{x}-{y}.satellite.png" + ], + "tileSize": 256 +} diff --git a/test/integration/tilesets/vector.json b/test/integration/tilesets/vector.json new file mode 100644 index 00000000000..3e743252a6e --- /dev/null +++ b/test/integration/tilesets/vector.json @@ -0,0 +1,6 @@ +{ + "type": "vector", + "tiles": [ + "http://localhost:2900/tiles/{z}-{x}-{y}.mvt" + ] +} diff --git a/test/integration/video/0.png b/test/integration/video/0.png new file mode 100644 index 00000000000..15db2edd536 Binary files /dev/null and b/test/integration/video/0.png differ diff --git a/test/js/style/style.test.js b/test/js/style/style.test.js index 70daf2e5761..ce6a6b23a46 100644 --- a/test/js/style/style.test.js +++ b/test/js/style/style.test.js @@ -1244,7 +1244,7 @@ test('Style defers expensive methods', (t) => { test('Style#query*Features', (t) => { // These tests only cover filter validation. Most tests for these methods - // live in mapbox-gl-test-suite. + // live in the integration tests. let style; let onError; diff --git a/test/query.test.js b/test/query.test.js index 3a8bd39390e..69e06b3d279 100644 --- a/test/query.test.js +++ b/test/query.test.js @@ -1,7 +1,7 @@ 'use strict'; require('flow-remove-types/register'); -const querySuite = require('mapbox-gl-test-suite').query; +const querySuite = require('./integration').query; const suiteImplementation = require('./suite_implementation'); let tests; diff --git a/test/render.test.js b/test/render.test.js index 6d54d79bb27..4901ac88977 100644 --- a/test/render.test.js +++ b/test/render.test.js @@ -1,7 +1,7 @@ 'use strict'; require('flow-remove-types/register'); -const renderSuite = require('mapbox-gl-test-suite').render; +const renderSuite = require('./integration').render; const suiteImplementation = require('./suite_implementation'); let tests;