[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.
This commit is contained in:
Bruno de Oliveira Abinader
2016-01-18 18:43:58 +02:00
parent a361ce47a1
commit 2010fbb0e6
2 changed files with 13 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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"));