From f579e4a0b008fdce154ada197d47c802abca3f8c Mon Sep 17 00:00:00 2001 From: zmiao Date: Sun, 19 Apr 2020 16:42:41 +0300 Subject: [PATCH 1/2] Add expression test for distance expression update ignore list --- test/ignores.json | 22 +- .../distance/invalid-geometry-input/test.json | 55 + .../distance/line-to-line-distance/test.json | 86 + .../distance/line-to-lines-distance/test.json | 40 + .../lines-to-lines-distance/test.json | 40 + .../lines-to-polygons-distance/test.json | 76 + .../distance/point-to-line-distance/test.json | 94 ++ .../point-to-lines-distance/test.json | 88 + .../point-to-point-distance/test.json | 88 + .../point-to-points-distance/test.json | 88 + .../points-to-line-distance/test.json | 64 + .../points-to-lines-distance/test.json | 40 + .../points-to-points-distance/test.json | 52 + .../points-to-polygons-distance/test.json | 52 + .../polygon-to-polygons-distance/test.json | 88 + .../polygons-to-polygons-distance/test.json | 40 + .../expected.png | Bin 0 -> 2048 bytes .../style.json | 380 +++++ .../distance/paint-circle/expected.png | Bin 0 -> 4599 bytes .../distance/paint-circle/style.json | 384 +++++ .../distance/paint-line/expected.png | Bin 0 -> 8955 bytes .../distance/paint-line/style.json | 571 +++++++ .../distance/paint-polygon/expected.png | Bin 0 -> 18759 bytes .../distance/paint-polygon/style.json | 1480 +++++++++++++++++ .../distance/symbol-style/expected.png | Bin 0 -> 12018 bytes .../distance/symbol-style/style.json | 728 ++++++++ 26 files changed, 4555 insertions(+), 1 deletion(-) create mode 100644 test/integration/expression-tests/distance/invalid-geometry-input/test.json create mode 100644 test/integration/expression-tests/distance/line-to-line-distance/test.json create mode 100644 test/integration/expression-tests/distance/line-to-lines-distance/test.json create mode 100644 test/integration/expression-tests/distance/lines-to-lines-distance/test.json create mode 100644 test/integration/expression-tests/distance/lines-to-polygons-distance/test.json create mode 100644 test/integration/expression-tests/distance/point-to-line-distance/test.json create mode 100644 test/integration/expression-tests/distance/point-to-lines-distance/test.json create mode 100644 test/integration/expression-tests/distance/point-to-point-distance/test.json create mode 100644 test/integration/expression-tests/distance/point-to-points-distance/test.json create mode 100644 test/integration/expression-tests/distance/points-to-line-distance/test.json create mode 100644 test/integration/expression-tests/distance/points-to-lines-distance/test.json create mode 100644 test/integration/expression-tests/distance/points-to-points-distance/test.json create mode 100644 test/integration/expression-tests/distance/points-to-polygons-distance/test.json create mode 100644 test/integration/expression-tests/distance/polygon-to-polygons-distance/test.json create mode 100644 test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json create mode 100644 test/integration/render-tests/distance/filter-with-distance-expression/expected.png create mode 100644 test/integration/render-tests/distance/filter-with-distance-expression/style.json create mode 100644 test/integration/render-tests/distance/paint-circle/expected.png create mode 100644 test/integration/render-tests/distance/paint-circle/style.json create mode 100644 test/integration/render-tests/distance/paint-line/expected.png create mode 100644 test/integration/render-tests/distance/paint-line/style.json create mode 100644 test/integration/render-tests/distance/paint-polygon/expected.png create mode 100644 test/integration/render-tests/distance/paint-polygon/style.json create mode 100644 test/integration/render-tests/distance/symbol-style/expected.png create mode 100644 test/integration/render-tests/distance/symbol-style/style.json diff --git a/test/ignores.json b/test/ignores.json index 40fb7d909fa..5576c43bce6 100644 --- a/test/ignores.json +++ b/test/ignores.json @@ -1,4 +1,19 @@ { + "expression-tests/distance/invalid-geometry-input": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/line-to-line-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/line-to-lines-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/lines-to-lines-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/point-to-line-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/point-to-lines-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/point-to-point-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/point-to-points-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/points-to-line-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/points-to-lines-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/points-to-points-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "expression-tests/distance/points-to-polygons-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16446", + "expression-tests/distance/lines-to-polygons-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16446", + "expression-tests/distance/polygon-to-polygons-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16446", + "expression-tests/distance/polygons-to-polygons-distance": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16446", "query-tests/regressions/mapbox-gl-js#4494": "https://github.com/mapbox/mapbox-gl-js/issues/2716", "render-tests/geojson/inline-linestring-fill": "current behavior is arbitrary", "render-tests/line-dasharray/case/square": "https://github.com/mapbox/mapbox-gl-js/issues/9531", @@ -25,5 +40,10 @@ "render-tests/tile-mode/streets-v11": "skip - mapbox-gl-js does not support tile-mode", "render-tests/within/paint-line": "https://github.com/mapbox/mapbox-gl-js/issues/7023", "render-tests/icon-text-fit/text-variable-anchor-tile-map-mode": "skip - mapbox-gl-js does not support tile-mode", - "render-tests/text-variable-anchor/all-anchors-labels-priority-tile-map-mode": "skip - mapbox-gl-js does not support tile-mode" + "render-tests/text-variable-anchor/all-anchors-labels-priority-tile-map-mode": "skip - mapbox-gl-js does not support tile-mode", + "render-tests/distance/filter-with-distance-expression": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "render-tests/distance/paint-circle": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "render-tests/distance/paint-line": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "render-tests/distance/symbol-style": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16397", + "render-tests/distance/paint-polygon": "TODO: port https://github.com/mapbox/mapbox-gl-native/pull/16446" } diff --git a/test/integration/expression-tests/distance/invalid-geometry-input/test.json b/test/integration/expression-tests/distance/invalid-geometry-input/test.json new file mode 100644 index 00000000000..4269498e09d --- /dev/null +++ b/test/integration/expression-tests/distance/invalid-geometry-input/test.json @@ -0,0 +1,55 @@ +{ + "expression": ["distance", { + "type": "Unknown", + "coordinates": [[[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]]] + }], + "inputs": [[{ + "zoom": 3, + "canonicalID": { + "z": 3, + "x": 3, + "y": 3 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [6, 6] + } + }], [{ + "zoom": 3, + "canonicalID": { + "z": 3, + "x": 3, + "y": 3 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [2, 2] + } + }], [{ + "zoom": 3, + "canonicalID": { + "z": 3, + "x": 3, + "y": 3 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[3, 3], [4, 1]] + } + }]], + "expected": { + "compiled": { + "errors": [{ + "error": "Unknown not yet implemented", + "key": "" + }, { + "key": "", + "error": "'distance' expression needs to be an array with format [\"distance\", GeoJSONObj]." + }], + "result": "error" + } + } +} diff --git a/test/integration/expression-tests/distance/line-to-line-distance/test.json b/test/integration/expression-tests/distance/line-to-line-distance/test.json new file mode 100644 index 00000000000..ab5ed281d17 --- /dev/null +++ b/test/integration/expression-tests/distance/line-to-line-distance/test.json @@ -0,0 +1,86 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": { + "stroke": "#d7d47e", + "stroke-width": 2, + "stroke-opacity": -1, + "value": true + }, + "geometry": { + "type": "LineString", + "coordinates": [[103.89315605163574, 1.3430843400832895], [103.89646053314209, 1.341239486566936], [103.89864921569824, 1.339909475029482], [103.90238285064697, 1.3386652700342137], [103.90551567077637, 1.338021715478541], [103.90847682952881, 1.337549775363733]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.88373613357544, 1.3323584281174479], [103.88704061508179, 1.3331092434795238], [103.88867139816284, 1.3334739251442105], [103.88972282409668, 1.3337957030387755], [103.89111757278441, 1.334331999436213], [103.89274835586547, 1.3351900734288747], [103.89476537704467, 1.3366702503621644]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.90201807022095, 1.3571781167763333], [103.90379905700684, 1.3606103787570532], [103.90506505966187, 1.363012959238619], [103.9055585861206, 1.3638924747085997], [103.90648126602173, 1.365887472021871], [103.90686750411988, 1.3668527927080132]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.95070552825928, 1.3499059956258364], [103.95280838012696, 1.3506782573132619], [103.95396709442139, 1.3515792289717337], [103.95486831665039, 1.3527376206128572], [103.95525455474852, 1.3542392385837099], [103.95538330078125, 1.35514020891972]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.90637397766113, 1.3406817398811269], [103.90603065490723, 1.334331999436213]] + } + }]], + "expected": { + "outputs": [530.029, 1841.19, 4894.16, 0], + "serialized": ["distance", { + "properties": { + "stroke-opacity": -1, + "value": true, + "stroke-width": 2, + "stroke": "#d7d47e" + }, + "geometry": { + "type": "LineString", + "coordinates": [[103.89315605163574, 1.3430843400832895], [103.89646053314209, 1.341239486566936], [103.89864921569824, 1.339909475029482], [103.90238285064697, 1.3386652700342137], [103.90551567077637, 1.338021715478541], [103.90847682952881, 1.337549775363733]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/line-to-lines-distance/test.json b/test/integration/expression-tests/distance/line-to-lines-distance/test.json new file mode 100644 index 00000000000..b98e9dfc784 --- /dev/null +++ b/test/integration/expression-tests/distance/line-to-lines-distance/test.json @@ -0,0 +1,40 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [[103.89315605163574, 1.3430843400832895], [103.89646053314209, 1.341239486566936], [103.89864921569824, 1.339909475029482], [103.90238285064697, 1.3386652700342137], [103.90551567077637, 1.338021715478541], [103.90847682952881, 1.337549775363733]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.88373613357544, 1.3323584281174479], [103.88704061508179, 1.3331092434795238], [103.88867139816284, 1.3334739251442105], [103.88972282409668, 1.3337957030387755], [103.89111757278441, 1.334331999436213], [103.89274835586547, 1.3351900734288747], [103.89476537704467, 1.3366702503621644]], [[103.90201807022095, 1.3571781167763333], [103.90379905700684, 1.3606103787570532], [103.90506505966187, 1.363012959238619], [103.9055585861206, 1.3638924747085997], [103.90648126602173, 1.365887472021871], [103.90686750411988, 1.3668527927080132]], [[103.95070552825928, 1.3499059956258364], [103.95280838012696, 1.3506782573132619], [103.95396709442139, 1.3515792289717337], [103.95486831665039, 1.3527376206128572], [103.95525455474852, 1.3542392385837099], [103.95538330078125, 1.35514020891972]]] + } + }]], + "expected": { + "outputs": [530.029], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [[103.89315605163574, 1.3430843400832895], [103.89646053314209, 1.341239486566936], [103.89864921569824, 1.339909475029482], [103.90238285064697, 1.3386652700342137], [103.90551567077637, 1.338021715478541], [103.90847682952881, 1.337549775363733]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/lines-to-lines-distance/test.json b/test/integration/expression-tests/distance/lines-to-lines-distance/test.json new file mode 100644 index 00000000000..718ad4b7d95 --- /dev/null +++ b/test/integration/expression-tests/distance/lines-to-lines-distance/test.json @@ -0,0 +1,40 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.89341354370116, 1.3396949569719253], [103.8960313796997, 1.3380646191208426], [103.8982629776001, 1.3356620139971914]], [[103.901309967041, 1.3559982755948157], [103.89989376068115, 1.3525231036839903]], [[103.95074844360352, 1.349755833602559], [103.95249724388123, 1.3503886592092312]]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.88373613357544, 1.3323584281174479], [103.88704061508179, 1.3331092434795238], [103.88867139816284, 1.3334739251442105], [103.88972282409668, 1.3337957030387755], [103.89111757278441, 1.334331999436213], [103.89274835586547, 1.3351900734288747], [103.89476537704467, 1.3366702503621644]], [[103.90201807022095, 1.3571781167763333], [103.90379905700684, 1.3606103787570532], [103.90506505966187, 1.363012959238619], [103.9055585861206, 1.3638924747085997], [103.90648126602173, 1.365887472021871], [103.90686750411988, 1.3668527927080132]], [[103.95070552825928, 1.3499059956258364], [103.95280838012696, 1.3506782573132619], [103.95396709442139, 1.3515792289717337], [103.95486831665039, 1.3527376206128572], [103.95525455474852, 1.3542392385837099], [103.95538330078125, 1.35514020891972]]] + } + }]], + "expected": { + "outputs": [17.2408], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.89341354370116, 1.3396949569719253], [103.8960313796997, 1.3380646191208426], [103.8982629776001, 1.3356620139971914]], [[103.901309967041, 1.3559982755948157], [103.89989376068115, 1.3525231036839903]], [[103.95074844360352, 1.349755833602559], [103.95249724388123, 1.3503886592092312]]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json b/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json new file mode 100644 index 00000000000..1c9334110dc --- /dev/null +++ b/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json @@ -0,0 +1,76 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.88373613357544, 1.3323584281174479], [103.88704061508179, 1.3331092434795238], [103.88867139816284, 1.3334739251442105], [103.88972282409668, 1.3337957030387755], [103.89111757278441, 1.334331999436213], [103.89274835586547, 1.3351900734288747], [103.89476537704467, 1.3366702503621644]], [[103.90201807022095, 1.3571781167763333], [103.90379905700684, 1.3606103787570532], [103.90506505966187, 1.363012959238619], [103.9055585861206, 1.3638924747085997], [103.90648126602173, 1.365887472021871], [103.90686750411988, 1.3668527927080132]], [[103.95070552825928, 1.3499059956258364], [103.95280838012696, 1.3506782573132619], [103.95396709442139, 1.3515792289717337], [103.95486831665039, 1.3527376206128572], [103.95525455474852, 1.3542392385837099], [103.95538330078125, 1.35514020891972]]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.91040802001953, 1.3602886044036287], [103.91023635864258, 1.351021484651125], [103.91504287719727, 1.348618892268445]], [[103.89379978179932, 1.3396949569719253], [103.89431476593018, 1.3355762066278836], [103.89268398284912, 1.3316719681575607]]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.92019271850586, 1.3529092341423024], [103.91701698303223, 1.3336884437452606]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.88586044311522, 1.3379788118355014], [103.88628959655762, 1.3329161766939824]] + } + }]], + "expected": { + "outputs": [0, 23.6932, 0, 0], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/point-to-line-distance/test.json b/test/integration/expression-tests/distance/point-to-line-distance/test.json new file mode 100644 index 00000000000..4cb999c9ca4 --- /dev/null +++ b/test/integration/expression-tests/distance/point-to-line-distance/test.json @@ -0,0 +1,94 @@ +{ + "expression": ["distance", { + "type": "FeatureCollection", + "features": [{ + "type": "Feature", + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [[103.87667655944823, 1.3198734077978092], [103.87895107269286, 1.3198305038395005], [103.88148307800293, 1.320860198634505], [103.88474464416504, 1.3220186047688565], [103.88603210449219, 1.322136590548516], [103.88659000396729, 1.3221794944670043], [103.8875126838684, 1.322190220446512], [103.88829588890076, 1.3222974802390178], [103.88919711112976, 1.3224583699190876], [103.89040946960449, 1.3228123271785267], [103.89161109924317, 1.3230912025594926], [103.89283418655396, 1.3233486259602608], [103.89425039291382, 1.323606049334287], [103.89545202255249, 1.3238205687922547], [103.89678239822388, 1.3240565401745568], [103.89828443527222, 1.3243568673559299], [103.90021562576294, 1.3247644541867095], [103.90227556228638, 1.3251505890171647], [103.9038634300232, 1.3255152718573336], [103.90473783016205, 1.3258102358799509], [103.90523135662079, 1.3259550363872928], [103.90625596046448, 1.326287541223903], [103.90744686126709, 1.3265985940951497], [103.90831589698792, 1.3268989209681999], [103.9093565940857, 1.3272850554657019], [103.9100432395935, 1.327714093725527], [103.91063332557678, 1.3280358723715427], [103.91147017478943, 1.3285185402619937], [103.91221046447754, 1.3288724966550625], [103.91329407691956, 1.3293658903304729], [103.91475319862366, 1.3300738028229565], [103.91640543937683, 1.330856796706907], [103.91727447509766, 1.3312643824659285], [103.91828298568726, 1.3317041459724615]] + } + }] + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91959190368653, 1.3218898930028449] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.92658710479737, 1.3294838757599914] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91602993011475, 1.330642277859313] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91246795654297, 1.3363484728438336] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.8917827606201, 1.3479324368661275] + } + }]], + "expected": { + "outputs": [1048.1155337, 956.2168839, 3.6580301, 736.057893, 2696.576472], + "serialized": ["distance", { + "features": [{ + "properties": {}, + "geometry": { + "type": "LineString", + "coordinates": [[103.87667655944823, 1.3198734077978092], [103.87895107269286, 1.3198305038395005], [103.88148307800293, 1.320860198634505], [103.88474464416504, 1.3220186047688565], [103.88603210449219, 1.322136590548516], [103.88659000396729, 1.3221794944670043], [103.8875126838684, 1.322190220446512], [103.88829588890076, 1.3222974802390178], [103.88919711112976, 1.3224583699190876], [103.89040946960449, 1.3228123271785267], [103.89161109924317, 1.3230912025594926], [103.89283418655396, 1.3233486259602608], [103.89425039291382, 1.323606049334287], [103.89545202255249, 1.3238205687922547], [103.89678239822388, 1.3240565401745568], [103.89828443527222, 1.3243568673559299], [103.90021562576294, 1.3247644541867095], [103.90227556228638, 1.3251505890171647], [103.9038634300232, 1.3255152718573336], [103.90473783016205, 1.3258102358799509], [103.90523135662079, 1.3259550363872928], [103.90625596046448, 1.326287541223903], [103.90744686126709, 1.3265985940951497], [103.90831589698792, 1.3268989209681999], [103.9093565940857, 1.3272850554657019], [103.9100432395935, 1.327714093725527], [103.91063332557678, 1.3280358723715427], [103.91147017478943, 1.3285185402619937], [103.91221046447754, 1.3288724966550625], [103.91329407691956, 1.3293658903304729], [103.91475319862366, 1.3300738028229565], [103.91640543937683, 1.330856796706907], [103.91727447509766, 1.3312643824659285], [103.91828298568726, 1.3317041459724615]] + }, + "type": "Feature" + }], + "type": "FeatureCollection" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/point-to-lines-distance/test.json b/test/integration/expression-tests/distance/point-to-lines-distance/test.json new file mode 100644 index 00000000000..f5a5fde84c0 --- /dev/null +++ b/test/integration/expression-tests/distance/point-to-lines-distance/test.json @@ -0,0 +1,88 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.87667655944823, 1.3198734077978092], [103.87895107269286, 1.3198305038395005], [103.88148307800293, 1.320860198634505], [103.88474464416504, 1.3220186047688565], [103.88603210449219, 1.322136590548516]], [[103.88659000396729, 1.3221794944670043], [103.8875126838684, 1.322190220446512], [103.88829588890076, 1.3222974802390178], [103.88919711112976, 1.3224583699190876], [103.89040946960449, 1.3228123271785267], [103.89161109924317, 1.3230912025594926], [103.89283418655396, 1.3233486259602608], [103.89425039291382, 1.323606049334287], [103.89545202255249, 1.3238205687922547], [103.89678239822388, 1.3240565401745568], [103.89828443527222, 1.3243568673559299], [103.90021562576294, 1.3247644541867095], [103.90227556228638, 1.3251505890171647], [103.9038634300232, 1.3255152718573336], [103.90473783016205, 1.3258102358799509], [103.90523135662079, 1.3259550363872928], [103.90625596046448, 1.326287541223903], [103.90744686126709, 1.3265985940951497], [103.90831589698792, 1.3268989209681999], [103.9093565940857, 1.3272850554657019], [103.9100432395935, 1.327714093725527], [103.91063332557678, 1.3280358723715427], [103.91147017478943, 1.3285185402619937], [103.91221046447754, 1.3288724966550625], [103.91329407691956, 1.3293658903304729], [103.91475319862366, 1.3300738028229565], [103.91640543937683, 1.330856796706907], [103.91727447509766, 1.3312643824659285], [103.91828298568726, 1.3317041459724615]]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91959190368653, 1.3218898930028449] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.92658710479737, 1.3294838757599914] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91602993011475, 1.330642277859313] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91246795654297, 1.3363484728438336] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.8917827606201, 1.3479324368661275] + } + }]], + "expected": { + "outputs": [1048.1155337, 956.2168839, 3.6580301, 736.057893, 2696.576472], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.87667655944823, 1.3198734077978092], [103.87895107269286, 1.3198305038395005], [103.88148307800293, 1.320860198634505], [103.88474464416504, 1.3220186047688565], [103.88603210449219, 1.322136590548516]], [[103.88659000396729, 1.3221794944670043], [103.8875126838684, 1.322190220446512], [103.88829588890076, 1.3222974802390178], [103.88919711112976, 1.3224583699190876], [103.89040946960449, 1.3228123271785267], [103.89161109924317, 1.3230912025594926], [103.89283418655396, 1.3233486259602608], [103.89425039291382, 1.323606049334287], [103.89545202255249, 1.3238205687922547], [103.89678239822388, 1.3240565401745568], [103.89828443527222, 1.3243568673559299], [103.90021562576294, 1.3247644541867095], [103.90227556228638, 1.3251505890171647], [103.9038634300232, 1.3255152718573336], [103.90473783016205, 1.3258102358799509], [103.90523135662079, 1.3259550363872928], [103.90625596046448, 1.326287541223903], [103.90744686126709, 1.3265985940951497], [103.90831589698792, 1.3268989209681999], [103.9093565940857, 1.3272850554657019], [103.9100432395935, 1.327714093725527], [103.91063332557678, 1.3280358723715427], [103.91147017478943, 1.3285185402619937], [103.91221046447754, 1.3288724966550625], [103.91329407691956, 1.3293658903304729], [103.91475319862366, 1.3300738028229565], [103.91640543937683, 1.330856796706907], [103.91727447509766, 1.3312643824659285], [103.91828298568726, 1.3317041459724615]]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/point-to-point-distance/test.json b/test/integration/expression-tests/distance/point-to-point-distance/test.json new file mode 100644 index 00000000000..dc9968dc9a8 --- /dev/null +++ b/test/integration/expression-tests/distance/point-to-point-distance/test.json @@ -0,0 +1,88 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [103.91959190368653, 1.3321439094005239] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91959190368653, 1.3218898930028449] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.92658710479737, 1.3294838757599914] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91602993011475, 1.330642277859313] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91246795654297, 1.3363484728438336] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.8917827606201, 1.3479324368661275] + } + }]], + "expected": { + "outputs": [1133.83, 832.206, 429.781, 919.082, 3553.3], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [103.91959190368653, 1.3321439094005239] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/point-to-points-distance/test.json b/test/integration/expression-tests/distance/point-to-points-distance/test.json new file mode 100644 index 00000000000..40cf0cea774 --- /dev/null +++ b/test/integration/expression-tests/distance/point-to-points-distance/test.json @@ -0,0 +1,88 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91959190368653, 1.3218898930028449] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.92658710479737, 1.3294838757599914] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91602993011475, 1.330642277859313] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.91246795654297, 1.3363484728438336] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Point", + "coordinates": [103.8917827606201, 1.3479324368661275] + } + }]], + "expected": { + "outputs": [3488.48, 3493.58, 3022.62, 2610.96, 2086.8], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/points-to-line-distance/test.json b/test/integration/expression-tests/distance/points-to-line-distance/test.json new file mode 100644 index 00000000000..9ae5667057f --- /dev/null +++ b/test/integration/expression-tests/distance/points-to-line-distance/test.json @@ -0,0 +1,64 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.88373613357544, 1.3323584281174479], [103.88704061508179, 1.3331092434795238], [103.88867139816284, 1.3334739251442105], [103.88972282409668, 1.3337957030387755], [103.89111757278441, 1.334331999436213], [103.89274835586547, 1.3351900734288747], [103.89476537704467, 1.3366702503621644]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.90201807022095, 1.3571781167763333], [103.90379905700684, 1.3606103787570532], [103.90506505966187, 1.363012959238619], [103.9055585861206, 1.3638924747085997], [103.90648126602173, 1.365887472021871], [103.90686750411988, 1.3668527927080132]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "LineString", + "coordinates": [[103.95070552825928, 1.3499059956258364], [103.95280838012696, 1.3506782573132619], [103.95396709442139, 1.3515792289717337], [103.95486831665039, 1.3527376206128572], [103.95525455474852, 1.3542392385837099], [103.95538330078125, 1.35514020891972]] + } + }]], + "expected": { + "outputs": [236.275, 968.383, 56.9283], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/points-to-lines-distance/test.json b/test/integration/expression-tests/distance/points-to-lines-distance/test.json new file mode 100644 index 00000000000..eff3774112e --- /dev/null +++ b/test/integration/expression-tests/distance/points-to-lines-distance/test.json @@ -0,0 +1,40 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiLineString", + "coordinates": [[[103.88373613357544, 1.3323584281174479], [103.88704061508179, 1.3331092434795238], [103.88867139816284, 1.3334739251442105], [103.88972282409668, 1.3337957030387755], [103.89111757278441, 1.334331999436213], [103.89274835586547, 1.3351900734288747], [103.89476537704467, 1.3366702503621644]], [[103.90201807022095, 1.3571781167763333], [103.90379905700684, 1.3606103787570532], [103.90506505966187, 1.363012959238619], [103.9055585861206, 1.3638924747085997], [103.90648126602173, 1.365887472021871], [103.90686750411988, 1.3668527927080132]], [[103.95070552825928, 1.3499059956258364], [103.95280838012696, 1.3506782573132619], [103.95396709442139, 1.3515792289717337], [103.95486831665039, 1.3527376206128572], [103.95525455474852, 1.3542392385837099], [103.95538330078125, 1.35514020891972]]] + } + }]], + "expected": { + "outputs": [56.9283], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/points-to-points-distance/test.json b/test/integration/expression-tests/distance/points-to-points-distance/test.json new file mode 100644 index 00000000000..f6fcc7a0079 --- /dev/null +++ b/test/integration/expression-tests/distance/points-to-points-distance/test.json @@ -0,0 +1,52 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.9174461364746, 1.3414111009062396], [103.91487121582031, 1.3372923534446709], [103.92053604125977, 1.338150426403194], [103.91693115234375, 1.3338600586126377], [103.92448425292969, 1.3350613623490613], [103.92105102539061, 1.3328303692289015], [103.8841438293457, 1.3596021523062254], [103.88311386108399, 1.3582292475259675], [103.88843536376953, 1.3592589261843265], [103.88620376586913, 1.3575427948432913], [103.8863754272461, 1.354625368768736], [103.92173767089844, 1.3616615080124246], [103.9222526550293, 1.3602886044036287], [103.91984939575196, 1.3601169913975755]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.92173767089844, 1.3616615080124246], [103.9222526550293, 1.3602886044036287], [103.91984939575196, 1.3601169913975755]] + } + }]], + "expected": { + "outputs": [97.3869, 97.3861], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.88174057006836, 1.3316290644037233], [103.88568878173828, 1.330084528768254], [103.88139724731446, 1.3288832226055889], [103.88448715209961, 1.3271670699311869], [103.88156890869139, 1.3263089931473214], [103.88895034790039, 1.3285399921660488], [103.91641616821289, 1.360631830379095], [103.91899108886719, 1.3602886044036287], [103.91710281372069, 1.3596021523062254], [103.91435623168946, 1.3620047337924648], [103.91332626342774, 1.3599453783793346], [103.95761489868164, 1.351021484651125], [103.95967483520508, 1.3518795527836272], [103.95538330078125, 1.3556550489612674], [103.95418167114258, 1.355483435626243], [103.95452499389649, 1.353767301607359]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/points-to-polygons-distance/test.json b/test/integration/expression-tests/distance/points-to-polygons-distance/test.json new file mode 100644 index 00000000000..c2c8e8e3d9c --- /dev/null +++ b/test/integration/expression-tests/distance/points-to-polygons-distance/test.json @@ -0,0 +1,52 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.89710426330567, 1.3539389150639312], [103.89427185058594, 1.3505924504712264], [103.8947868347168, 1.3469027533998386], [103.89315605163574, 1.342011750998951], [103.89813423156738, 1.33746396806039], [103.89504432678223, 1.3371207388169673], [103.89684677124024, 1.3424407866891553], [103.8907527923584, 1.3466453324652597], [103.90019416809082, 1.3497343818841974], [103.90122413635254, 1.346044683512217], [103.90088081359863, 1.341239486566936]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiPoint", + "coordinates": [[103.9116096496582, 1.3415827152334823], [103.91263961791992, 1.3388797881819073], [103.91062259674072, 1.338021715478541], [103.9130687713623, 1.3377642936089936], [103.8913106918335, 1.3353616881914719]] + } + }]], + "expected": { + "outputs": [125.617, 0], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/polygon-to-polygons-distance/test.json b/test/integration/expression-tests/distance/polygon-to-polygons-distance/test.json new file mode 100644 index 00000000000..dc2b5098373 --- /dev/null +++ b/test/integration/expression-tests/distance/polygon-to-polygons-distance/test.json @@ -0,0 +1,88 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Polygon", + "coordinates": [[[103.89933586120604, 1.3423549795571295], [103.90757560729979, 1.3423549795571295], [103.90757560729979, 1.3493053474771307], [103.89933586120604, 1.3493053474771307], [103.89933586120604, 1.3423549795571295]]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Polygon", + "coordinates": [[[103.88174057006836, 1.33746396806039], [103.88096809387207, 1.3306851816303256], [103.89015197753905, 1.3329161766939824], [103.888521194458, 1.336434280186183], [103.88671875, 1.3384936555025502], [103.88431549072266, 1.3378930045471449], [103.88174057006836, 1.33746396806039]]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Polygon", + "coordinates": [[[103.92388343811035, 1.3539389150639312], [103.91633033752442, 1.3341174808912555], [103.93160820007324, 1.333173599071337], [103.9368438720703, 1.339437535278059], [103.92388343811035, 1.3539389150639312]]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Polygon", + "coordinates": [[[103.90088081359863, 1.3581434409513023], [103.90474319458008, 1.355740855624212], [103.91392707824707, 1.3597737653488802], [103.9098072052002, 1.3628627980287112], [103.90088081359863, 1.3581434409513023]]] + } + }], [{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "Polygon", + "coordinates": [[[103.87710571289063, 1.3415827152334823], [103.87384414672852, 1.3264806085279129], [103.88362884521485, 1.3247644541867095], [103.89736175537108, 1.3340316734680562], [103.89684677124024, 1.3407246434768526], [103.88809204101563, 1.3448433851623303], [103.87710571289063, 1.3415827152334823]]] + } + }]], + "expected": { + "outputs": [738.312, 0, 0, 0, 0], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json b/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json new file mode 100644 index 00000000000..bc9ed1df2d6 --- /dev/null +++ b/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json @@ -0,0 +1,40 @@ +{ + "expression": ["distance", { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + } + }], + "inputs": [[{ + "zoom": 13, + "canonicalID": { + "z": 13, + "x": 6460, + "y": 4065 + } + }, { + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.89873504638672, 1.3544537553607755], [103.89607429504393, 1.3513647119405166], [103.89856338500977, 1.350935677821201], [103.90491485595702, 1.3514505187552757], [103.90491485595702, 1.3531666544136976], [103.89873504638672, 1.3544537553607755]]], [[[103.89435768127442, 1.3438995074725529], [103.89358520507813, 1.3407246434768526], [103.89839172363281, 1.3395233425123459], [103.89907836914063, 1.3451866133226467], [103.89521598815918, 1.3480182438020019], [103.89126777648926, 1.3475892090924009], [103.8933277130127, 1.3451866133226467], [103.88972282409668, 1.3451866133226467], [103.89092445373535, 1.3439853145503565], [103.89272689819336, 1.3429556294180168], [103.89435768127442, 1.3438995074725529]]], [[[103.90268325805664, 1.341925943851875], [103.9083480834961, 1.341925943851875], [103.9083480834961, 1.3463879115035189], [103.90268325805664, 1.3463879115035189], [103.90268325805664, 1.341925943851875]]], [[[103.90294075012206, 1.325279300613958], [103.9090347290039, 1.325279300613958], [103.9090347290039, 1.3305135665417978], [103.90294075012206, 1.3305135665417978], [103.90294075012206, 1.325279300613958]]], [[[103.91547203063964, 1.3489621198969855], [103.91238212585449, 1.3464737184937939], [103.9130687713623, 1.3433846649425523], [103.91478538513182, 1.3447575781146908], [103.91607284545899, 1.347245981270292], [103.91667366027832, 1.3488763129943924], [103.91770362854004, 1.3495627681304468], [103.91761779785156, 1.3517937459840204], [103.91461372375488, 1.3518795527836272], [103.91135215759278, 1.3518795527836272], [103.91135215759278, 1.3499918024921079], [103.9090347290039, 1.3507640641522823], [103.9090347290039, 1.3493053474771307], [103.90920639038085, 1.3481040507348488], [103.90920639038085, 1.3471601743072046], [103.91049385070801, 1.3463879115035189], [103.91547203063964, 1.3489621198969855]]]] + } + }]], + "expected": { + "outputs": [69.7524], + "serialized": ["distance", { + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[103.88809204101563, 1.3621763466641713], [103.88465881347656, 1.3565131154538628], [103.8896369934082, 1.3535956881386369], [103.90422821044922, 1.3575427948432913], [103.90079498291016, 1.364064087445756], [103.88809204101563, 1.3621763466641713]]], [[[103.87899398803711, 1.3395233425123459], [103.87521743774414, 1.330256143886628], [103.8819122314453, 1.3275103005613949], [103.88998031616211, 1.3299129136379467], [103.89392852783203, 1.3369491241772669], [103.88757705688477, 1.341239486566936], [103.87899398803711, 1.3395233425123459]]], [[[103.91864776611328, 1.3503350299269142], [103.91469955444336, 1.3393517280407568], [103.92414093017578, 1.3324871393386304], [103.93529891967774, 1.335232977120653], [103.93667221069336, 1.3432988578436807], [103.93598556518555, 1.351021484651125], [103.91864776611328, 1.3503350299269142]]]] + }, + "type": "Feature" + }], + "compiled": { + "type": "number", + "isFeatureConstant": false, + "isZoomConstant": true, + "result": "success" + } + } +} diff --git a/test/integration/render-tests/distance/filter-with-distance-expression/expected.png b/test/integration/render-tests/distance/filter-with-distance-expression/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..26d9df5f2da64cd3e32cce8ef634216bce5cc154 GIT binary patch literal 2048 zcmaLY`9Bkm9|!PNJ}IA^lRN4oL%Dt2eYWI^BE&}`vfP{G+}5HT%}p^h*XqM(>QlDd z6GJgHzZ^OI z^XEN)YXAVEy^gll9>_9oxer{h2ypW7;TpROxrI`O|(1g|?)zZx8R@YFm}kUr85TLAMGDKJics zd=6*-kM~{AxDczo1U4JT#(AH2lePQbhsPC;Fo|cL%ZB7KbcoWe-Cc?tBRtG>UP~j0 z$oP#2Y^B=Fq?2!Oj-!njFt8bvwrD!v^n|M=5hlaG@CchS^O`KqEGP>kX(Jf$Y8Jft z{n`&L!w<47>MbaQ12V7q9=yjTfSt;p=rv{VGg`lZm_T;W(rEBf^|h+w)_2mrfQJJl zaJ!9P8D>ET`=xws5M2q-Q8H@`;f+b~=ovoMuDAI%!Kj`Qvc!HI4LNR8Z4THvdJIw0 z@J+vXdB-z4(BFKbPI9m1K)ssNL4kCcD&k!nw6g7h=-lAwzQFokUd(HYxdlYYcN`up zl0%gd$$3_Dr<|eXvpP|gO8=bhuMTb==g{*Tl0sz}D;5Xoj?Q(z?%RUO*L0-5@2C$Q zo>aUoJDcn&f#T*~GEV?ZX<%bIIgvIotz=0eu%stz1r8lSMO@K?;hB8QoYJbfucmPg zyjD|#azc%u!zVNMF*656wuopk3!B~UklBoP^Hm!X_f$&PSLE(tdoQafVbZ84`jmyo z6$M!W&XKl^Ae3Xh;T5b+G3rowev3c$EIi=0I1Bka(4bw&HB3itC z)8%_|cN@2%uc(P~s)ODWs=z#_dVt-V;9q5wuClky5KP`V=#0C!>9f9%#XhTU@R3ER zg&14YD9gv$_sshUt=-Vr@-ml#e6VLVvQ+}N?U6~H(aJm=Vv-92l@|lH96!uH&$t@I z&Ts4L{8~6`(~Dbq9&ij9hExwC&%q-Khp5_WS#8Wp=T8%tZeDeItM!B zBB7v)*lY4VSy6(b4K2abBX<@3#1dTE!{M0)S(b)=*`>v0nyL?%t9mTteLx!Mw*FeW z8(YDwXV8i$FFI{m8%3lp)H+V3LR7{hq^yN)vxeA&ZKHyc*!o^)(gRkYuq|0qYBFiL zYPU3&wvF02iK!V}8+6j>wVX}2n|_!OpaNV zC3c>@wKk;)?pL?enKr3WSq(704vYR4yJ@u5RZzQHoVnR*iI^RAOq!#+C$`5s<>gQ5 zdvyG6d{Zu1wV{RHUB9lA#zphCzV!E^URN z44(*bvO(jNje!@m;f-?-IivWtFbWX;ecevs;^p1H*0W^B8}S3DKKWu!zshB5ns0Vi zCR)~_9eC1072KV~!HIbI`%!bRzrQ>lv{+^m4Cw2;+%h(r&nbXp0t;jYNI@JDx(cy1 zxh%lu2*wy@)rkY%{eK~@FonnpzuOda1+TXc7ro5xQ-t*N75ead`W~<4VRT8^rHIM^ z$DLkEG2I$z$)gC3eQ7V7jeRffEYuZVAuZHBeo@{?LoIVUSbp%(j9C1{tWOKAqT61W z?6Z>iHo!INE(8`A{+6oPhZji%Mi=4Tt+(Pdd48!}znaf0r z0_>BvtizC0HDLc&X6Hb=M|hkzG~`5!K?}px9lADfj-obox+nqMbnR0ytw!A;lcb;s z^1@|a67$L$@YyUxnl!6vEnEeZJ zTz(*~R-u}J)2(NXc`3u?LhXhW>h?n?a%~8SH5QxB83At?n3H4_Xq(=3g8+^oB>rSX zyGfmlU`v|4=b5o0%{JT!>7Z3T5&F=75;-^gp-Q1+t>8_g5lyT>)O~FBhvPooaYyo_ zFRDm4tMBPslXgC*Yge_EJy_5Tsm&Mi}* Y=8piho7l@jf65MUv~#f~Ubvb3FUO1!B>(^b literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/distance/filter-with-distance-expression/style.json b/test/integration/render-tests/distance/filter-with-distance-expression/style.json new file mode 100644 index 00000000000..d1d8183e943 --- /dev/null +++ b/test/integration/render-tests/distance/filter-with-distance-expression/style.json @@ -0,0 +1,380 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 125, + "height": 125 + } + }, + "zoom": 13, + "center": [ + -73.97860765457153, + 40.75663615846253 + ], + "sources": { + "points": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98010969161987, + 40.75646549167777 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97986292839049, + 40.758009603779705 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97816777229309, + 40.757318821220274 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.9764940738678, + 40.75658739656873 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97747039794922, + 40.75539271899818 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97716999053955, + 40.75848095717076 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97945523262024, + 40.75536021046494 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97729873657227, + 40.75366161748887 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98553848266602, + 40.75793646243674 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97905826568604, + 40.76175595827059 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97186994552612, + 40.76290989043682 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97068977355957, + 40.75575843890192 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98214817047119, + 40.75187357799962 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.9878988265991, + 40.75466940037548 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98674011230469, + 40.76172345284903 + ] + } + } + ] + } + }, + "center": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -73.97860765457153, + 40.75663615846253 + ] + } + } + ] + } + }, + "boundary": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -73.97504593980587, + 40.75663615846253 + ], + [ + -73.9751494367638, + 40.75728181967787 + ], + [ + -73.9754539127706, + 40.75788995167545 + ], + [ + -73.9759416727875, + 40.758425213519445 + ], + [ + -73.97658436997524, + 40.75885649983152 + ], + [ + -73.97734465310938, + 40.75915874804255 + ], + [ + -73.97817833729766, + 40.75931439442866 + ], + [ + -73.9790369718454, + 40.75931439442866 + ], + [ + -73.97987065603368, + 40.75915874804255 + ], + [ + -73.98063093916782, + 40.75885649983152 + ], + [ + -73.98127363635557, + 40.758425213519445 + ], + [ + -73.98176139637246, + 40.75788995167545 + ], + [ + -73.98206587237927, + 40.75728181967787 + ], + [ + -73.9821693693372, + 40.75663615846253 + ], + [ + -73.98206587237927, + 40.75599049097636 + ], + [ + -73.98176139637246, + 40.755382341602825 + ], + [ + -73.98127363635557, + 40.75484705525835 + ], + [ + -73.98063093916782, + 40.7544157429341 + ], + [ + -73.97987065603368, + 40.75411347315821 + ], + [ + -73.9790369718454, + 40.75395781459483 + ], + [ + -73.97817833729766, + 40.75395781459483 + ], + [ + -73.97734465310938, + 40.75411347315821 + ], + [ + -73.97658436997524, + 40.7544157429341 + ], + [ + -73.9759416727875, + 40.75484705525835 + ], + [ + -73.9754539127706, + 40.755382341602825 + ], + [ + -73.9751494367638, + 40.75599049097636 + ], + [ + -73.97504593980587, + 40.75663615846253 + ] + ] + ] + } + } + ] + } + } + }, + "layers": [ + { + "id": "border", + "type": "fill", + "source": "boundary", + "paint": { + "fill-color": "black", + "fill-opacity": 0.5 + } + }, + { + "id": "center", + "type": "circle", + "source": "center", + "paint": { + "circle-radius": 5, + "circle-color": "red" + } + }, + { + "id": "circle", + "type": "circle", + "source": "points", + "filter": [ + "<", + [ + "distance", + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + -73.97860765457153, + 40.75663615846253 + ] + } + } + ], + 300 + ], + "paint": { + "circle-radius": 5, + "circle-color": "green" + } + } + ] +} \ No newline at end of file diff --git a/test/integration/render-tests/distance/paint-circle/expected.png b/test/integration/render-tests/distance/paint-circle/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..c434f88c2e41fca50d387a47708dc09ac1ed547a GIT binary patch literal 4599 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

(WQ2q{6FCRN1K> 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

E42`!GVyQ!{+u}6oMHb8h@Zw%*z zv%mPbTIx#^BO-&5wH={?(V)Wn?9*eoWVC98vg2C&?T2L!A!{8(^!sfhfvG(9uyd`9 z2Blx574;@GadVc&wYq;rC#0Jd$`XOlRFfY!Ew+V{W>wq;mk@r>fCy(4`w47Ty*2sK zZ*tPJDMrE0ZpNDRv)`o80w#Bx8xq2rnDEsb&dEl1j;|mLUkw`t%k&Sems88Z2B46T z5Q`l|+jy%K6f*QN<=WKfANP23Q9|*nphPn@*Ys}ny1;W$Z-p;6VBcp#=A_k;kIO8< z3MyLR;wBeUH;}~kBSD=~=9~VU^9|FBp}?}F{i10<2FjTcnP84)`?$nO)+C44JdL?oxiS*6FD-2L+udCq6AEPuHa+w>);N1 z^}ECj0EtV8bMawq4bU=Mr&Xd zdyZnCt;M@<&UFrZs@~?rESojSv!(?$2%J738n({4whjmS>*;09I{jcvT-Z1E;LDnq z_4I7`@;(B}U*#tS%?)|nY+ZBV`plSrtK^iofj{~R;rP`IUFHtTaM!26I|%LgCM8DW zxTaFD)09xIl_oN-D>YA-p9@?L-PTXaDT5pTZQVt#G@^PZ`||nQY@U0n#*C5iCh7jI zj!y6oCbnA`Cxanpmv7n{DCm^>*`3414b-nD7y78M#gi~;YmKN8Tk30l40}SJ)~ipv z2>QVfJv_kIrZeaMCw2%KFw4q~_p%E8oA4C}W~%Xt{%-((q&o=QuA0qz{@`>dpL1Q$ zIl%4S4=g&`v7uRBUb@)R%XUYO)?-WGnYk{xTAb1!@zn{7na85_K+)C-J6A~er9DCX z2s+lr)=-*beRGU&eZS5>fzhZ03Rbn5_fudQHrAUuScx*4t@e49+niPm`9l; z7gPm){&qRPCCZ*2`Tu>4#pvjnQIc|#%*_1@va!G%%b@+MXRFk{N|OJ5I%W~V$w%al zO-*cd?Er}&R5Tt>E|J`mv0sOmRElHQ3k_ts30Fm5A6}a2_-5FNHcammSlfN{f9u!0 zswY)LZmI%J+KfBhKU;hKGBI%bStu0bp;^?SDYngAvwN0ziwZd}675!`3LxZ6qL&~I zI@T`|Irthnw0NBI0A|-guja{tYhqMMRus|9{BYZ zUBT9zQABUgU~>9(=Z%fdaNk37m2yoWNhbxnDMZzk*MK?Te|I*r;IsZ$W5b-N6Stmz-b+-7BdWx1<`?cM>XV zqS!~({@?0T?vrNx%t-+GIfOQh@7)D^n=HLoghYHqq1Yw$I|pUrS}vV<{0^g0LCpeZ zC;ExQyLteA?wtnZnEdiDW0+61y!|G0Q9gf<@nl!Y2o^OA?l9m$O`L&r`VzO{qhv4MnIf{I@4ZEuG89v zxavw?B6ZXn*%CB}A4d!2(r1q?cUO%_p<$JfeSx4#j0)eyC>{Zy4ha^|Fpk>7r5MO; z0SYDl*jn7rAr+#aR#kz+EEPzPSm+o#J(>NO!6nhrAK-~sFP)1xw8 I7B>p|AKbLnoB#j- literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/distance/symbol-style/style.json b/test/integration/render-tests/distance/symbol-style/style.json new file mode 100644 index 00000000000..7362de2ecad --- /dev/null +++ b/test/integration/render-tests/distance/symbol-style/style.json @@ -0,0 +1,728 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 300, + "height": 300 + } + }, + "zoom": 13, + "center": [ + -73.97892951965332, + 40.75453936473234 + ], + "sources": { + "points": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97986292839049, + 40.758009603779705 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97816777229309, + 40.757318821220274 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.9764940738678, + 40.75658739656873 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97747039794922, + 40.75539271899818 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97716999053955, + 40.75848095717076 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97945523262024, + 40.75536021046494 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97729873657227, + 40.75366161748887 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98553848266602, + 40.75793646243674 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97068977355957, + 40.75575843890192 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.99002313613892, + 40.75419801995909 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98244857788086, + 40.75592098043558 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98504495620728, + 40.75418176540237 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98532390594482, + 40.75206863918968 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98150444030762, + 40.758944180522946 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97450923919678, + 40.75254003470314 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.97485256195068, + 40.75382416414898 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.9749813079834, + 40.75058941088087 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98774862289429, + 40.75031306787843 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + -73.98122549057007, + 40.75418176540237 + ] + } + } + ] + } + }, + "center": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.9877700805664, + 40.74976037842817 + ], + [ + -73.98648262023926, + 40.75169477140605 + ], + [ + -73.98558139801025, + 40.752913897733926 + ], + [ + -73.98416519165039, + 40.75484819896946 + ], + [ + -73.98319959640503, + 40.75613228383523 + ], + [ + -73.98139715194702, + 40.75868412570509 + ], + [ + -73.97931575775146, + 40.75782268685437 + ], + [ + -73.97824287414551, + 40.757270059827206 + ], + [ + -73.97907972335815, + 40.756051013376364 + ], + [ + -73.97564649581909, + 40.75460438258571 + ], + [ + -73.97423028945923, + 40.75398671041169 + ], + [ + -73.97614002227783, + 40.75143468822972 + ], + [ + -73.97435903549194, + 40.7507357096525 + ] + ] + } + } + ] + } + }, + "boundary": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [ + -73.980915406985, + 40.757460062068475 + ], + [ + -73.97993559617679, + 40.75705453718075 + ], + [ + -73.97978285721045, + 40.75697586289132 + ], + [ + -73.98013295216039, + 40.7564658767395 + ], + [ + -73.9802661238222, + 40.756019807558545 + ], + [ + -73.98009242653058, + 40.755581806995224 + ], + [ + -73.97965678803773, + 40.7552651674539 + ], + [ + -73.9762311554221, + 40.75382171882893 + ], + [ + -73.97584453587778, + 40.753653094999805 + ], + [ + -73.97717274502423, + 40.75187817755506 + ], + [ + -73.97732688933066, + 40.75141629100844 + ], + [ + -73.97714793303804, + 40.75095956456846 + ], + [ + -73.97668610118902, + 40.750636182251725 + ], + [ + -73.97490511440313, + 40.749937195280495 + ], + [ + -73.97418126210347, + 40.749846537544585 + ], + [ + -73.97352531319592, + 40.750095515074946 + ], + [ + -73.97318781786828, + 40.750589024054165 + ], + [ + -73.97329768786464, + 40.751138557905904 + ], + [ + -73.97381295658076, + 40.75153421443528 + ], + [ + -73.97449936785367, + 40.75180360585742 + ], + [ + -73.97319756671283, + 40.7535432351504 + ], + [ + -73.97304319297578, + 40.7539917982632 + ], + [ + -73.97320425720197, + 40.75443900640337 + ], + [ + -73.97363796104085, + 40.754766027529854 + ], + [ + -73.97505416740071, + 40.75538369246371 + ], + [ + -73.97506943113952, + 40.755390236318846 + ], + [ + -73.97749399824558, + 40.75641184744637 + ], + [ + -73.97718964534327, + 40.75685520148255 + ], + [ + -73.97705577268336, + 40.75727443033833 + ], + [ + -73.97719501885582, + 40.75769265102434 + ], + [ + -73.9775753472124, + 40.758013643518126 + ], + [ + -73.97864823081835, + 40.75856626436385 + ], + [ + -73.97874655265649, + 40.758611784703874 + ], + [ + -73.98082794685205, + 40.7594732133289 + ], + [ + -73.98142855938701, + 40.759583004529844 + ], + [ + -73.98202066406688, + 40.759449302909445 + ], + [ + -73.98244386765893, + 40.75910832520998 + ], + [ + -73.98423886695231, + 40.756567038356934 + ], + [ + -73.98519669908008, + 40.75529328560552 + ], + [ + -73.98520332852566, + 40.7552843514961 + ], + [ + -73.98661831357845, + 40.75335173054083 + ], + [ + -73.9875183856405, + 40.75213416813068 + ], + [ + -73.98754262111453, + 40.75209964365882 + ], + [ + -73.98883008144168, + 40.75016526245955 + ], + [ + -73.98894178359876, + 40.749615932583 + ], + [ + -73.98860593502222, + 40.749121772064484 + ], + [ + -73.98795081845319, + 40.74887153633583 + ], + [ + -73.98722666615446, + 40.748960809814065 + ], + [ + -73.98671007969114, + 40.74935549193148 + ], + [ + -73.98543424256412, + 40.75127243312102 + ], + [ + -73.98454563260901, + 40.752474506162116 + ], + [ + -73.98454326113499, + 40.75247772965659 + ], + [ + -73.98313031781153, + 40.75440758620425 + ], + [ + -73.98216808897534, + 40.75568720281612 + ], + [ + -73.98215288069312, + 40.75570806533946 + ], + [ + -73.980915406985, + 40.757460062068475 + ] + ] + ] + ] + } + } + ] + } + } + }, + "sprite": "local://sprites/sprite", + "glyphs": "local://glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "border", + "type": "fill", + "source": "boundary", + "paint": { + "fill-color": "black", + "fill-opacity": 0.5 + } + }, + { + "id": "center", + "type": "line", + "source": "center", + "paint": { + "line-color": "red" + } + }, + { + "id": "circle", + "type": "symbol", + "source": "points", + "layout": { + "icon-image": "dot.sdf", + "text-field": [ + "case", + [ + "<", + [ + "distance", + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.9877700805664, + 40.74976037842817 + ], + [ + -73.98648262023926, + 40.75169477140605 + ], + [ + -73.98558139801025, + 40.752913897733926 + ], + [ + -73.98416519165039, + 40.75484819896946 + ], + [ + -73.98319959640503, + 40.75613228383523 + ], + [ + -73.98139715194702, + 40.75868412570509 + ], + [ + -73.97931575775146, + 40.75782268685437 + ], + [ + -73.97824287414551, + 40.757270059827206 + ], + [ + -73.97907972335815, + 40.756051013376364 + ], + [ + -73.97564649581909, + 40.75460438258571 + ], + [ + -73.97423028945923, + 40.75398671041169 + ], + [ + -73.97614002227783, + 40.75143468822972 + ], + [ + -73.97435903549194, + 40.7507357096525 + ] + ] + } + } + ], + 100 + ], + "In", + "Out" + ], + "text-font": [ + "Open Sans Semibold", + "Arial Unicode MS Bold" + ], + "text-size": 10 + }, + "paint": { + "text-color": "red", + "icon-color": "blue", + "icon-opacity": [ + "case", + [ + "<", + [ + "distance", + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [ + [ + -73.9877700805664, + 40.74976037842817 + ], + [ + -73.98648262023926, + 40.75169477140605 + ], + [ + -73.98558139801025, + 40.752913897733926 + ], + [ + -73.98416519165039, + 40.75484819896946 + ], + [ + -73.98319959640503, + 40.75613228383523 + ], + [ + -73.98139715194702, + 40.75868412570509 + ], + [ + -73.97931575775146, + 40.75782268685437 + ], + [ + -73.97824287414551, + 40.757270059827206 + ], + [ + -73.97907972335815, + 40.756051013376364 + ], + [ + -73.97564649581909, + 40.75460438258571 + ], + [ + -73.97423028945923, + 40.75398671041169 + ], + [ + -73.97614002227783, + 40.75143468822972 + ], + [ + -73.97435903549194, + 40.7507357096525 + ] + ] + } + } + ], + 100 + ], + 1, + 0.5 + ] + } + } + ] +} \ No newline at end of file From 1efe06b79f995a08310ba31576946ccfbe5165e0 Mon Sep 17 00:00:00 2001 From: zmiao Date: Thu, 7 May 2020 22:21:42 +0300 Subject: [PATCH 2/2] Update tests --- .../lines-to-polygons-distance/test.json | 4 ++-- .../polygons-to-polygons-distance/test.json | 4 ++-- .../expected.png | Bin 2048 -> 2138 bytes .../style.json | 2 +- .../distance/paint-line/expected.png | Bin 8955 -> 8539 bytes .../distance/paint-line/style.json | 2 +- .../distance/symbol-style/expected.png | Bin 12018 -> 11352 bytes .../distance/symbol-style/style.json | 2 +- 8 files changed, 7 insertions(+), 7 deletions(-) diff --git a/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json b/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json index 1c9334110dc..b6e9d1a975c 100644 --- a/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json +++ b/test/integration/expression-tests/distance/lines-to-polygons-distance/test.json @@ -29,7 +29,7 @@ }, { "geometry": { "type": "MultiLineString", - "coordinates": [[[103.91040802001953, 1.3602886044036287], [103.91023635864258, 1.351021484651125], [103.91504287719727, 1.348618892268445]], [[103.89379978179932, 1.3396949569719253], [103.89431476593018, 1.3355762066278836], [103.89268398284912, 1.3316719681575607]]] + "coordinates": [[[103.8906455039978, 1.352630362150803], [103.89532327651978, 1.3537029465580084]], [[103.90356302261353, 1.359130216376035], [103.90398144721985, 1.3583257799188356]]] } }], [{ "zoom": 13, @@ -57,7 +57,7 @@ } }]], "expected": { - "outputs": [0, 23.6932, 0, 0], + "outputs": [0, 16.2699, 0, 0], "serialized": ["distance", { "properties": {}, "geometry": { diff --git a/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json b/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json index bc9ed1df2d6..0f539b70000 100644 --- a/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json +++ b/test/integration/expression-tests/distance/polygons-to-polygons-distance/test.json @@ -17,11 +17,11 @@ }, { "geometry": { "type": "MultiPolygon", - "coordinates": [[[[103.89873504638672, 1.3544537553607755], [103.89607429504393, 1.3513647119405166], [103.89856338500977, 1.350935677821201], [103.90491485595702, 1.3514505187552757], [103.90491485595702, 1.3531666544136976], [103.89873504638672, 1.3544537553607755]]], [[[103.89435768127442, 1.3438995074725529], [103.89358520507813, 1.3407246434768526], [103.89839172363281, 1.3395233425123459], [103.89907836914063, 1.3451866133226467], [103.89521598815918, 1.3480182438020019], [103.89126777648926, 1.3475892090924009], [103.8933277130127, 1.3451866133226467], [103.88972282409668, 1.3451866133226467], [103.89092445373535, 1.3439853145503565], [103.89272689819336, 1.3429556294180168], [103.89435768127442, 1.3438995074725529]]], [[[103.90268325805664, 1.341925943851875], [103.9083480834961, 1.341925943851875], [103.9083480834961, 1.3463879115035189], [103.90268325805664, 1.3463879115035189], [103.90268325805664, 1.341925943851875]]], [[[103.90294075012206, 1.325279300613958], [103.9090347290039, 1.325279300613958], [103.9090347290039, 1.3305135665417978], [103.90294075012206, 1.3305135665417978], [103.90294075012206, 1.325279300613958]]], [[[103.91547203063964, 1.3489621198969855], [103.91238212585449, 1.3464737184937939], [103.9130687713623, 1.3433846649425523], [103.91478538513182, 1.3447575781146908], [103.91607284545899, 1.347245981270292], [103.91667366027832, 1.3488763129943924], [103.91770362854004, 1.3495627681304468], [103.91761779785156, 1.3517937459840204], [103.91461372375488, 1.3518795527836272], [103.91135215759278, 1.3518795527836272], [103.91135215759278, 1.3499918024921079], [103.9090347290039, 1.3507640641522823], [103.9090347290039, 1.3493053474771307], [103.90920639038085, 1.3481040507348488], [103.90920639038085, 1.3471601743072046], [103.91049385070801, 1.3463879115035189], [103.91547203063964, 1.3489621198969855]]]] + "coordinates": [[[[103.89873504638672, 1.3544537553607755], [103.89607429504393, 1.3513647119405166], [103.89856338500977, 1.350935677821201], [103.90491485595702, 1.3514505187552757], [103.90491485595702, 1.3531666544136976], [103.89873504638672, 1.3544537553607755]]], [[[103.89435768127442, 1.3438995074725529], [103.89358520507813, 1.3407246434768526], [103.89839172363281, 1.3395233425123459], [103.89907836914063, 1.3451866133226467], [103.89521598815918, 1.3480182438020019], [103.89126777648926, 1.3475892090924009], [103.8933277130127, 1.3451866133226467], [103.88972282409668, 1.3451866133226467], [103.89092445373535, 1.3439853145503565], [103.89272689819336, 1.3429556294180168], [103.89435768127442, 1.3438995074725529]]], [[[103.90268325805664, 1.341925943851875], [103.9083480834961, 1.341925943851875], [103.9083480834961, 1.3463879115035189], [103.90268325805664, 1.3463879115035189], [103.90268325805664, 1.341925943851875]]], [[[103.90294075012206, 1.325279300613958], [103.9090347290039, 1.325279300613958], [103.9090347290039, 1.3305135665417978], [103.90294075012206, 1.3305135665417978], [103.90294075012206, 1.325279300613958]]]] } }]], "expected": { - "outputs": [69.7524], + "outputs": [171.183], "serialized": ["distance", { "properties": {}, "geometry": { diff --git a/test/integration/render-tests/distance/filter-with-distance-expression/expected.png b/test/integration/render-tests/distance/filter-with-distance-expression/expected.png index 26d9df5f2da64cd3e32cce8ef634216bce5cc154..4d15441009c0c8359f9e413129b33eed422b8bcc 100644 GIT binary patch delta 2126 zcmZ9NdpHw{8^@0dw=8UrIgE1%4HgvYRoOnHLRRD9AwL7vrTBBwp^Oa zNJ&FlsO9M5Iz?_fH00h+q<;1M{yEQipZBl#`~LAh&-;D8pOjt0yYfJ!?faeW?Yt6Y z=G&8R48+U)w)lEM`e7-iTt6x^kEU>dl~Q_=w?nt7QpD|bUWHU zE!;xYmYE{Ux$M0Rm#5g2h27-k3B}Zk=+x9_Iv;kNX%sugS?`p7Sddz`O@I5{Hg(_j z|2FAgqjd`ENBkb`s6X!R36Om_5xI$BlbWt9Q{?KI9>=3-kIJc;{iDDCzWe?6g zoqT7mBH*dcMwcAWsI-keqIe(eW)>+>MH_k81O>pog*n!d?s$Dsf_mif;&9}i*~JL7 zJ`GzCaL5;(*|4}Rk`YY}ClzI);*s){rC0zX-{uw1!CTpDa&Nh%Pnr#KekJF}ns&xT zQ(dYZHQXly?z0xEXFA}O8795;e&lX2wh7%i71))Af!+_=sN?m-HW3AA zINn#v!V6TnO!S(Z)})`4X`eI1(*3nQtYAM+*sRhfn5>@*4^ShSiMBZnkU6IM-iQmG z8%uO9u+-56u~qG%Dv2t?6EU2L{w6%b4=jJc3g+&B2wx_(Lta@|AN7oStZ0*VX5k-=UWd*WvTn?}5`q9l9vtSP7_T_JW zxk)IKTw$2LbRP8MgQ2tG58t~whIs|#Me4wlp0hNNMzzh#&j}1W1MJRAjIoe;K>`P6 zXmfCe8Q&Q5^HMS-TN2*rDLy5r<-lmS3HnUDX7SvXgDQ-IM|~~cBDN`f%pXeT1d~ay z;yiRs!k)3D)@tOy zi~HvJM)RPDn(HWI$Y>VHFUuS8cSme+jF^1K{xLg>dQ97~s#_{hGI$}ee@yS8FPU~hbJ7wyx6}kyXtB&z_D`2cm0=Q;V zfPFfY1*89Yrul{ZDQOL#Pr`)p`iX=T`jkPftQENWtqH`cV|&*yX*@z+tiv()vq~K& z9!VXS4Nvf1!>=Vkb-bh2fZ z9a*b$X&qOUMJ5%7-5UKwr(x=c!J*C366FMgJ>6S^0NXT|Ni zH8q_Um0N?`(P0x7Ou`1MpDj!>s&*t;nFlpwaK*=vF4az2?4IOw>o4S+Rl1)%#+$SyQ4CNTg z-3=)>fw6=3JoEeM;sD#8-E>?vz2n`=pQUO*4%d-5FcB_ZmI0Ytj$Xb(Y@el>V)HA5 zw5AfVNUpSQ!v>-=J$c?k!+G!|2?IVIY$X!gg3AY=W9oDz7vpcN7WcZET33(4Aq) zW+v`ndmM+@W!n*FwGW^2~fx7O@ov#=w5Zt+gwsb>yCBX8Yf#~awy zUkuY>jrNrqK4ra;Hi(&&CotL#u@F{%?ejA~J_LGxE-DpsH(%$o^Ujc!8?Bgm_j17B zmWGLgz=ut}*9fB81yWJ;T~i8ua7_ywdUtQR=y68K;=Oq$u^Wgq2(9zo;DZhy2K+w; zKU&+TMqo;};KT`vJA!ubWVizG!Km_bh3-$sxnO9uF8Mt?K>4h<$x9!WZ3!{ijTc9N24- z=gI16$9?m26bE_&bK3id?jUca7es>wUeuw!VAFwbAjLh;k=M>Mu6yN*Ze}y;LAmF> z3Q=o?X+D_hn4)MPv*H9*vIh3cQn5aSojkJFn5QeP#8JPG07R*}=`e=ETL+{{cQ- B1&{y$ delta 2035 zcmVTWl6Z7>3^vF$7VHAtr_dgLle7!<9Cc5KU~1 zf>h##)u=IoM7_Y&15)fkD;h!&#KhDpHnkQB8Z-*!BwiSmM6cB7g?eMW@enWYhzIa{ zyYrLU?s@0$?Ck$N$-|-TKRf$<-QAhpnOQ(l6h%=KMNt$*QGXOgQ4~c{6h%=KMNt$* zQ4~c{6rY)u(%G&ms1#?8*etFQyTrp8>@uHgHsvTKWv%oN+jV`4w-COEDA zX8Y}?K1!XKE`PR(?}@wMCfO6+W$M#r>Ze$w6+v)^;6Bk|4w?G3=GZr70?QCwLwCb{ zV$-XcXA+IRe*7O|lFBL?)f`ED-(qBhUuk8EzEgf>jQA?T$-0 zeE{DjlykuBZ$optxDT!qn#POpY+}-RZBH(1pV{w*EbqA4 z|AyiM1b_FgdkQ&2`ow4BiNfWi^$vU-oAmG&e3Zvb92$m)#U02S{1q6LM%CYEg1rGJ zuoN%nE-#Ds;;WE^pBn48XDe%mi9_4^crACiSzL%0#*X^6_+qTZ zeik0jS=JsCk4m!uMY?7S5*kz8_&0ai?mS}RQh!-Cp~%gbTk%nB(&=J33f(6%i(5@x zD#>jq`e<~WoKBOHK2@i9yAGN7REovoD2fJWHI61GotFUjNzCJ@iBo0RC}!!-gv%~b zT*BFkcb~kxZZ>hM1oL3yD6e@n-Uv-N8*%gSjJ55!JK7m9@8PxTdDsjNPvQ6BYia)c ziGNP~Hr9=s;oV@1Fc~NBukF(iJXY*cQ_FZUZr-vK!O)?e(%Xy?+$;gV7H?uEo^)6j z#*1!ijx7h5JJd%VlB*HPUVH^$F9 zt``U4I76ouUbW({6JLbuq$XM3h8$)57)Nj5z`y(>W2Vybb=hh%eqIfr zWIyw1xK3ym%X4$4CgbN-f1QH@@(v+V0~tTB23M5!e*4?N2Pc8QP6Ma;H~(LkZGUlc z1jouxE3_O6Xwld0T`w7J*Bv-B*7?R)O`;D5`=K=OMj%7{yN%|dnLWQU}rXFtskns}BTyGJ^Q zKqUn;#W1P5AL(3`BB`F798u9D-R?DgB}Nm2xiWbSUfr+hX{IvA&tDJIn`^q=*85F( zH!+y}nG|K!z4gwi%F*>ah3wOxylK4?d;Ro97)VU|qV$Ur)wQ3_A=+GqB!8@q*(W&m zz@vUTv3p1E5&RsPaDLC$c5KPhI9H|MkFaW$dqe zq<8n;>+_V2^VHZkr+&^^%c6Hr+5C8(UT(d6p6kQKkA^L; zjGK3(VM+PNy_eTPcslOA{C_iC%B#0CTuAxnvXxJ-=dzKhowdq&>+HYVUTkQIbf4Da zTe-@f#76vrTkw9tVNh{;KWlYr=BM+~>V^q-?6@+8jT<?Geokq=iKR=z= zUx{M8oOZ+nN8Ot*vXbP*crLPB%A?=z{#0Tm3SxK7nTf`&AW4fXK7X_ppT(9%jVg@&c0M?btz(J9l0>M*icep^3FWHAKxUFeLl8W z+Ly|$BS(s_7#Sv4nTksaSBuVD_LX=wwrsZK?d(S-SB$JtY;D*ulNJeHQSb~CceGz( zrGZ-MwP8uIRiLAcT7OWGjXWFWvtK^GhrnySy=!^pSAizQ)_aeVLz1|5EEf&tYSHyr zBbF`o{A;_1*%0f!*C_U8hiceRZ+0Md-r?f64fhTg;@8`n?AnlTYpUVTd)e&S(C=ld z;l~>o?Wk{H9ETt8S}mr&Yc+)Ozg0P(`c~xx%K!fKZ0h^dGk?%2rk<2oQU}a_C>iKL zFm$L7?h}~BK2z_Gl>4bnfDIp>9(|cDv)j~H8*CP6MbH?s|7g~ZL#BSMIrdG7VY=9c zAh>xZ_}9Z-rao<^eoCE~DYhfHcij&+$?iAXZ#VT(rido-E(F)mgW|BbO|(58z1NgG zY_`*Fw%cTRe{7VD%oSV2bqJDjNE{KjBl|Bwuld}FDW}_%+hVq(l$1GQv$#g=5)Wsv z%Y3fcl%sgctd!1nRY65j6h%=KMNt$*Q4~c{6h%=KMNt$*Q4~c{6h%>r^B-S#0KPRw R6k-4X002ovPDHLkV1mfX6siCK diff --git a/test/integration/render-tests/distance/filter-with-distance-expression/style.json b/test/integration/render-tests/distance/filter-with-distance-expression/style.json index d1d8183e943..e974dc4b5fc 100644 --- a/test/integration/render-tests/distance/filter-with-distance-expression/style.json +++ b/test/integration/render-tests/distance/filter-with-distance-expression/style.json @@ -8,7 +8,7 @@ }, "zoom": 13, "center": [ - -73.97860765457153, + -73.97850765457153, 40.75663615846253 ], "sources": { diff --git a/test/integration/render-tests/distance/paint-line/expected.png b/test/integration/render-tests/distance/paint-line/expected.png index e213c13a13dddae19586ff52c2aa0ad207671a96..49f6554408531477b53bfc03ee8d1e185f38b2f1 100644 GIT binary patch literal 8539 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 V2e>YVIyCW2MNw1X3&=9!{{R@@Fa`hs literal 8955 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

E42`!GVyQ!{+u}6oMHb8h@Zw%*z zv%mPbTIx#^BO-&5wH={?(V)Wn?9*eoWVC98vg2C&?T2L!A!{8(^!sfhfvG(9uyd`9 z2Blx574;@GadVc&wYq;rC#0Jd$`XOlRFfY!Ew+V{W>wq;mk@r>fCy(4`w47Ty*2sK zZ*tPJDMrE0ZpNDRv)`o80w#Bx8xq2rnDEsb&dEl1j;|mLUkw`t%k&Sems88Z2B46T z5Q`l|+jy%K6f*QN<=WKfANP23Q9|*nphPn@*Ys}ny1;W$Z-p;6VBcp#=A_k;kIO8< z3MyLR;wBeUH;}~kBSD=~=9~VU^9|FBp}?}F{i10<2FjTcnP84)`?$nO)+C44JdL?oxiS*6FD-2L+udCq6AEPuHa+w>);N1 z^}ECj0EtV8bMawq4bU=Mr&Xd zdyZnCt;M@<&UFrZs@~?rESojSv!(?$2%J738n({4whjmS>*;09I{jcvT-Z1E;LDnq z_4I7`@;(B}U*#tS%?)|nY+ZBV`plSrtK^iofj{~R;rP`IUFHtTaM!26I|%LgCM8DW zxTaFD)09xIl_oN-D>YA-p9@?L-PTXaDT5pTZQVt#G@^PZ`||nQY@U0n#*C5iCh7jI zj!y6oCbnA`Cxanpmv7n{DCm^>*`3414b-nD7y78M#gi~;YmKN8Tk30l40}SJ)~ipv z2>QVfJv_kIrZeaMCw2%KFw4q~_p%E8oA4C}W~%Xt{%-((q&o=QuA0qz{@`>dpL1Q$ zIl%4S4=g&`v7uRBUb@)R%XUYO)?-WGnYk{xTAb1!@zn{7na85_K+)C-J6A~er9DCX z2s+lr)=-*beRGU&eZS5>fzhZ03Rbn5_fudQHrAUuScx*4t@e49+niPm`9l; z7gPm){&qRPCCZ*2`Tu>4#pvjnQIc|#%*_1@va!G%%b@+MXRFk{N|OJ5I%W~V$w%al zO-*cd?Er}&R5Tt>E|J`mv0sOmRElHQ3k_ts30Fm5A6}a2_-5FNHcammSlfN{f9u!0 zswY)LZmI%J+KfBhKU;hKGBI%bStu0bp;^?SDYngAvwN0ziwZd}675!`3LxZ6qL&~I zI@T`|Irthnw0NBI0A|-guja{tYhqMMRus|9{BYZ zUBT9zQABUgU~>9(=Z%fdaNk37m2yoWNhbxnDMZzk*MK?Te|I*r;IsZ$W5b-N6Stmz-b+-7BdWx1<`?cM>XV zqS!~({@?0T?vrNx%t-+GIfOQh@7)D^n=HLoghYHqq1Yw$I|pUrS}vV<{0^g0LCpeZ zC;ExQyLteA?wtnZnEdiDW0+61y!|G0Q9gf<@nl!Y2o^OA?l9m$O`L&r`VzO{qhv4MnIf{I@4ZEuG89v zxavw?B6ZXn*%CB}A4d!2(r1q?cUO%_p<$JfeSx4#j0)eyC>{Zy4ha^|Fpk>7r5MO; z0SYDl*jn7rAr+#aR#kz+EEPzPSm+o#J(>NO!6nhrAK-~sFP)1xw8 I7B>p|AKbLnoB#j- diff --git a/test/integration/render-tests/distance/symbol-style/style.json b/test/integration/render-tests/distance/symbol-style/style.json index 7362de2ecad..99ef2e6f070 100644 --- a/test/integration/render-tests/distance/symbol-style/style.json +++ b/test/integration/render-tests/distance/symbol-style/style.json @@ -9,7 +9,7 @@ "zoom": 13, "center": [ -73.97892951965332, - 40.75453936473234 + 40.75452936473234 ], "sources": { "points": {