[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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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"));
|
||||
|
||||
Reference in New Issue
Block a user