[Pkg-javascript-commits] [node-mapnik] 01/11: Imported Upstream version 3.5.13+dfsg

Bas Couwenberg sebastic at debian.org
Sat Aug 6 14:57:56 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository node-mapnik.

commit 033de56e170ec7549c903534ac10be6033731068
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Aug 5 23:41:00 2016 +0200

    Imported Upstream version 3.5.13+dfsg
---
 .travis.yml                                        |   7 ++
 CHANGELOG.md                                       |   4 +
 package.json                                       |   4 +-
 src/mapnik_vector_tile.cpp                         |   8 +-
 test/data/vector_tile/compositing/badtile.mvt      | Bin 0 -> 3056 bytes
 test/data/vector_tile/compositing/badtile.xml      |  97 +++++++++++++++++++++
 .../vector_tile/compositing/expected/2-1-1b.png    | Bin 154481 -> 154578 bytes
 .../expected/world-reencode-max-extent.png         | Bin 7991 -> 7990 bytes
 .../compositing/expected/world-reencode.png        | Bin 7983 -> 7981 bytes
 test/vector-tile.composite.test.js                 |  17 ++++
 test/vector-tile.test.js                           |   2 +-
 11 files changed, 132 insertions(+), 7 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 8c14ed3..4f9104b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -41,6 +41,9 @@ matrix:
        env: NODE_VERSION="4" PUBLISHABLE=true # node abi 46
      - os: linux
        compiler: clang
+       env: NODE_VERSION="4" NPM_FLAGS="--debug" PUBLISHABLE=true # node abi 46
+     - os: linux
+       compiler: clang
        env: NODE_VERSION="0.10" NPM_FLAGS="--debug" PUBLISHABLE=true # node abi 11
      - os: linux
        compiler: clang
@@ -57,6 +60,10 @@ matrix:
      - os: osx
        osx_image: xcode7
        compiler: clang
+       env: NODE_VERSION="4" NPM_FLAGS="--debug" PUBLISHABLE=true # node abi 46
+     - os: osx
+       osx_image: xcode7
+       compiler: clang
        env: NODE_VERSION="0.10" NPM_FLAGS="--debug" PUBLISHABLE=true # node abi 11
      - os: osx
        osx_image: xcode7
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c695f26..aeaa47c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 3.5.13
+
+- Updated to mapnik-vector-tile `1.2.0`, includes a fix for rare decoding situation in vector tiles where a tile would be incorrectly considered invalid.
+
 ## 3.5.12
 
 - Fix performance regression when passing raster through vector tile (via upgrade to mapnik-vector-tile at 1.1.2)
diff --git a/package.json b/package.json
index e98b9e5..da3a48f 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "url": "http://github.com/mapnik/node-mapnik",
   "homepage": "http://mapnik.org",
   "author": "Dane Springmeyer <dane at mapbox.com> (mapnik.org)",
-  "version": "3.5.12",
+  "version": "3.5.13",
   "mapnik_version":"3.0.11",
   "main": "./lib/mapnik.js",
   "binary": {
@@ -41,7 +41,7 @@
     }
   ],
   "dependencies": {
-    "mapnik-vector-tile": "1.1.2",
+    "mapnik-vector-tile": "1.2.0",
     "nan": "~2.2.0",
     "node-pre-gyp": "~0.6.25",
     "protozero": "~1.3.0"
diff --git a/src/mapnik_vector_tile.cpp b/src/mapnik_vector_tile.cpp
index 66cf466..28ed166 100644
--- a/src/mapnik_vector_tile.cpp
+++ b/src/mapnik_vector_tile.cpp
@@ -2679,8 +2679,8 @@ NAN_METHOD(VectorTile::toJSON)
                     if (decode_geometry)
                     {
                         // Decode the geometry first into an int64_t mapnik geometry
-                        mapnik::vector_tile_impl::GeometryPBF<std::int64_t> geoms(geom_itr, 0, 0, 1.0, 1.0);
-                        mapnik::geometry::geometry<std::int64_t> geom = mapnik::vector_tile_impl::decode_geometry(geoms, geom_type_enum, version);
+                        mapnik::vector_tile_impl::GeometryPBF geoms(geom_itr);
+                        mapnik::geometry::geometry<std::int64_t> geom = mapnik::vector_tile_impl::decode_geometry<std::int64_t>(geoms, geom_type_enum, version, 0, 0, 1.0, 1.0);
                         v8::Local<v8::Array> g_arr = geometry_to_array<std::int64_t>(geom);
                         feature_obj->Set(Nan::New("geometry").ToLocalChecked(),g_arr);
                         std::string geom_type = geometry_type_as_string(geom);
@@ -5875,8 +5875,8 @@ void layer_not_valid(protozero::pbf_reader & layer_msg,
                 // Decode the geometry first into an int64_t mapnik geometry
                 mapnik::context_ptr ctx = std::make_shared<mapnik::context_type>();
                 mapnik::feature_ptr feature(mapnik::feature_factory::create(ctx,1));
-                mapnik::vector_tile_impl::GeometryPBF<double> geoms(geom_itr, 0, 0, 1.0, 1.0);
-                feature->set_geometry(mapnik::vector_tile_impl::decode_geometry(geoms, geom_type_enum, version));
+                mapnik::vector_tile_impl::GeometryPBF geoms(geom_itr);
+                feature->set_geometry(mapnik::vector_tile_impl::decode_geometry<double>(geoms, geom_type_enum, version, 0.0, 0.0, 1.0, 1.0));
                 mapnik::util::apply_visitor(
                         visitor_geom_valid(errors, feature, layer_name, split_multi_features), 
                         feature->get_geometry());
diff --git a/test/data/vector_tile/compositing/badtile.mvt b/test/data/vector_tile/compositing/badtile.mvt
new file mode 100644
index 0000000..42d841d
Binary files /dev/null and b/test/data/vector_tile/compositing/badtile.mvt differ
diff --git a/test/data/vector_tile/compositing/badtile.xml b/test/data/vector_tile/compositing/badtile.xml
new file mode 100644
index 0000000..ed2bb15
--- /dev/null
+++ b/test/data/vector_tile/compositing/badtile.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" background-color="rgb(0,0,0)" base="/Users/mthompson/src/api-maps/node_modules/mapbox-maps/node_modules/tilelive-vector/" maximum-extent="-20037508.34,-20037508.34,20037508.34,20037508.34">
+  <Parameters>
+    <Parameter name="bounds">-180,-85.0511,180,85.0511</Parameter>
+    <Parameter name="center">0,0,3</Parameter>
+    <Parameter name="format">png8:m=h</Parameter>
+    <Parameter name="maxzoom">22</Parameter>
+    <Parameter name="minzoom">0</Parameter>
+    <Parameter name="scale">1</Parameter>
+  </Parameters>
+  <Style name="_image" filter-mode="first">
+    <Rule>
+      <RasterSymbolizer opacity="1"/>
+    </Rule>
+  </Style>
+  <Style name="contour" filter-mode="first" comp-op="screen">
+    <Rule>
+      <Filter>([mapnik::geometry_type]=3)</Filter>
+      <LineSymbolizer stroke="rgba(153,68,187,0.502)" stroke-width="0.5"/>
+      <PolygonSymbolizer fill="rgba(153,68,187,0.051)"/>
+    </Rule>
+    <Rule>
+      <Filter>([mapnik::geometry_type]=2)</Filter>
+      <LineSymbolizer stroke="rgba(153,68,187,0.502)" stroke-width="1"/>
+    </Rule>
+    <Rule>
+      <Filter>([mapnik::geometry_type]=1)</Filter>
+      <DotSymbolizer fill="rgba(153,68,187,0.502)" width="5"/>
+      <TextSymbolizer allow-overlap="true" dy="6" justify-alignment="left" face-name="Source Sans Pro Regular" size="12" fill="rgba(153,68,187,0.749)">[name]</TextSymbolizer>
+    </Rule>
+  </Style>
+  <Style name="contour-raster" filter-mode="first">
+    <Rule>
+      <ElseFilter/>
+      <RasterSymbolizer opacity="1"/>
+    </Rule>
+  </Style>
+  <Style name="hillshade" filter-mode="first" comp-op="screen">
+    <Rule>
+      <Filter>([mapnik::geometry_type]=3)</Filter>
+      <LineSymbolizer stroke="rgba(204,255,238,0.502)" stroke-width="0.5"/>
+      <PolygonSymbolizer fill="rgba(204,255,238,0.051)"/>
+    </Rule>
+    <Rule>
+      <Filter>([mapnik::geometry_type]=2)</Filter>
+      <LineSymbolizer stroke="rgba(204,255,238,0.502)" stroke-width="1"/>
+    </Rule>
+    <Rule>
+      <Filter>([mapnik::geometry_type]=1)</Filter>
+      <DotSymbolizer fill="rgba(204,255,238,0.502)" width="5"/>
+      <TextSymbolizer allow-overlap="true" dy="6" justify-alignment="left" face-name="Source Sans Pro Regular" size="12" fill="rgba(204,255,238,0.749)">[name]</TextSymbolizer>
+    </Rule>
+  </Style>
+  <Style name="hillshade-raster" filter-mode="first">
+    <Rule>
+      <ElseFilter/>
+      <RasterSymbolizer opacity="1"/>
+    </Rule>
+  </Style>
+  <Style name="landcover" filter-mode="first" comp-op="screen">
+    <Rule>
+      <Filter>([mapnik::geometry_type]=3)</Filter>
+      <LineSymbolizer stroke="rgba(238,102,68,0.502)" stroke-width="0.5"/>
+      <PolygonSymbolizer fill="rgba(238,102,68,0.051)"/>
+    </Rule>
+    <Rule>
+      <Filter>([mapnik::geometry_type]=2)</Filter>
+      <LineSymbolizer stroke="rgba(238,102,68,0.502)" stroke-width="1"/>
+    </Rule>
+    <Rule>
+      <Filter>([mapnik::geometry_type]=1)</Filter>
+      <DotSymbolizer fill="rgba(238,102,68,0.502)" width="5"/>
+      <TextSymbolizer allow-overlap="true" dy="6" justify-alignment="left" face-name="Source Sans Pro Regular" size="12" fill="rgba(238,102,68,0.749)">[name]</TextSymbolizer>
+    </Rule>
+  </Style>
+  <Style name="landcover-raster" filter-mode="first">
+    <Rule>
+      <ElseFilter/>
+      <RasterSymbolizer opacity="1"/>
+    </Rule>
+  </Style>
+  <Layer name="landcover" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
+    <StyleName>landcover</StyleName>
+    <StyleName>landcover-raster</StyleName>
+  </Layer>
+  <Layer name="hillshade" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
+    <StyleName>hillshade</StyleName>
+    <StyleName>hillshade-raster</StyleName>
+  </Layer>
+  <Layer name="contour" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
+    <StyleName>contour</StyleName>
+    <StyleName>contour-raster</StyleName>
+  </Layer>
+  <Layer name="_image" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
+    <StyleName>_image</StyleName>
+  </Layer>
+</Map>
diff --git a/test/data/vector_tile/compositing/expected/2-1-1b.png b/test/data/vector_tile/compositing/expected/2-1-1b.png
index f06feac..04b020e 100644
Binary files a/test/data/vector_tile/compositing/expected/2-1-1b.png and b/test/data/vector_tile/compositing/expected/2-1-1b.png differ
diff --git a/test/data/vector_tile/compositing/expected/world-reencode-max-extent.png b/test/data/vector_tile/compositing/expected/world-reencode-max-extent.png
index d78b900..30ff8a6 100644
Binary files a/test/data/vector_tile/compositing/expected/world-reencode-max-extent.png and b/test/data/vector_tile/compositing/expected/world-reencode-max-extent.png differ
diff --git a/test/data/vector_tile/compositing/expected/world-reencode.png b/test/data/vector_tile/compositing/expected/world-reencode.png
index b1e913f..1414033 100644
Binary files a/test/data/vector_tile/compositing/expected/world-reencode.png and b/test/data/vector_tile/compositing/expected/world-reencode.png differ
diff --git a/test/vector-tile.composite.test.js b/test/vector-tile.composite.test.js
index c0b0512..826b113 100644
--- a/test/vector-tile.composite.test.js
+++ b/test/vector-tile.composite.test.js
@@ -800,4 +800,21 @@ describe('mapnik.VectorTile.composite', function() {
         });
     });
 
+    it('should correctly composite again -- numerical precision issue in mapnik vector tile area calculation - 2', function(done) {
+        // Tile data
+        var vtile = new mapnik.VectorTile(15,8816,12063);
+        var vt_data = fs.readFileSync('./test/data/vector_tile/compositing/badtile.mvt');
+        vtile.setData(vt_data);
+        assert(!vtile.empty());
+        assert.doesNotThrow(function() {
+            vtile.toGeoJSON('__all__');
+        });
+        var map = new mapnik.Map(256,256);
+        map.loadSync('./test/data/vector_tile/compositing/badtile.xml');
+        var opts = { z: 16, x: 17632, y: 24126, scale: 1, buffer_size: 256 };
+        vtile.render(map, new mapnik.Image(256,256), opts, function(err, image) {
+            if (err) throw err;
+            done();
+        });
+    });
 });
diff --git a/test/vector-tile.test.js b/test/vector-tile.test.js
index f28ec3b..6719c5a 100644
--- a/test/vector-tile.test.js
+++ b/test/vector-tile.test.js
@@ -3509,7 +3509,7 @@ describe('mapnik.VectorTile ', function() {
                                              'landcover', 'hillshade', 'contour']);
             assert.equal(vtile.reportGeometryValidity().length, 0);
             assert.equal(vtile.reportGeometryValidity({split_multi_features:true}).length, 0);
-            assert.equal(vtile.reportGeometrySimplicity().length, 6);
+            assert.equal(vtile.reportGeometrySimplicity().length, 4);
             done();
         });
     });

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/node-mapnik.git



More information about the Pkg-javascript-commits mailing list