From 2010fbb0e61cbe7c0b08560118ca887fc1d7193e Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Mon, 18 Jan 2016 18:43:58 +0200 Subject: [PATCH] [linux] Replace PNG with WebP on tile source URL This is a hack, in the same fashion as adding {ratio} to the tile URLs. We should update the raster tile sources to use WebP by default. --- src/mbgl/util/mapbox.cpp | 6 ++++++ test/miscellaneous/mapbox.cpp | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/mbgl/util/mapbox.cpp b/src/mbgl/util/mapbox.cpp index 067c9918c..d94a9a5f7 100644 --- a/src/mbgl/util/mapbox.cpp +++ b/src/mbgl/util/mapbox.cpp @@ -129,6 +129,12 @@ std::string normalizeRasterTileURL(const std::string& url) { } std::string normalizedURL(url); +#if !defined(__ANDROID__) && !defined(__APPLE__) + // Replace PNG with WebP. + if (normalizedURL.compare(extensionIdx + 1, 3, "png") == 0) { + normalizedURL.replace(extensionIdx + 1, 3, "webp"); + } +#endif // !defined(__ANDROID__) && !defined(__APPLE__) normalizedURL.insert(extensionIdx, "{ratio}"); return normalizedURL; } diff --git a/test/miscellaneous/mapbox.cpp b/test/miscellaneous/mapbox.cpp index 02a08db9e..d6f9948e6 100644 --- a/test/miscellaneous/mapbox.cpp +++ b/test/miscellaneous/mapbox.cpp @@ -37,10 +37,17 @@ TEST(Mapbox, SpriteURL) { TEST(Mapbox, TileURL) { try { +#if defined(__ANDROID__) || defined(__APPLE__) EXPECT_EQ("http://path.png/tile{ratio}.png", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png")); EXPECT_EQ("http://path.png/tile{ratio}.png32", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png32")); EXPECT_EQ("http://path.png/tile{ratio}.png70", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png70")); EXPECT_EQ("http://path.png/tile{ratio}.png?access_token=foo", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png?access_token=foo")); +#else + EXPECT_EQ("http://path.png/tile{ratio}.webp", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png")); + EXPECT_EQ("http://path.png/tile{ratio}.webp32", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png32")); + EXPECT_EQ("http://path.png/tile{ratio}.webp70", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png70")); + EXPECT_EQ("http://path.png/tile{ratio}.webp?access_token=foo", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.png?access_token=foo")); +#endif // defined(__ANDROID__) || defined(__APPLE__) EXPECT_EQ("http://path.png/tile{ratio}.pbf", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.pbf")); EXPECT_EQ("http://path.png/tile{ratio}.pbf?access_token=foo", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.pbf?access_token=foo")); EXPECT_EQ("http://path.png/tile{ratio}.pbf?access_token=foo.png", mbgl::util::mapbox::normalizeRasterTileURL("http://path.png/tile.pbf?access_token=foo.png"));