@@ -205,7 +205,7 @@ void OpenStreetMap::updateCache(const tileList &requiredTiles, uint8_t zoom, Til
205205 if (!jobs.empty ())
206206 {
207207 runJobs (jobs);
208- log_d (" Finished %i jobs in %lu ms - %i ms/job" , jobs.size (), millis () - startMS, (millis () - startMS) / jobs.size ());
208+ log_i (" Finished %i jobs in %lu ms - %i ms/job" , jobs.size (), millis () - startMS, (millis () - startMS) / jobs.size ());
209209 }
210210}
211211
@@ -360,17 +360,26 @@ void OpenStreetMap::PNGDraw(PNGDRAW *pDraw)
360360
361361bool OpenStreetMap::fetchTile (ReusableTileFetcher &fetcher, CachedTile &tile, uint32_t x, uint32_t y, uint8_t zoom, String &result, unsigned long timeout)
362362{
363- String url = currentProvider->urlTemplate ;
364- url.replace (" {x}" , String (x));
365- url.replace (" {y}" , String (y));
366- url.replace (" {z}" , String (zoom));
367- if (currentProvider->requiresApiKey && strstr (url.c_str (), " {apiKey}" ))
368- url.replace (" {apiKey}" , currentProvider->apiKey );
363+ char url[256 ];
364+ if (currentProvider->requiresApiKey )
365+ {
366+ snprintf (url, sizeof (url),
367+ currentProvider->urlTemplate ,
368+ zoom, x, y, currentProvider->apiKey );
369+ }
370+ else
371+ {
372+ snprintf (url, sizeof (url),
373+ currentProvider->urlTemplate ,
374+ zoom, x, y);
375+ }
369376
370377 MemoryBuffer buffer = fetcher.fetchToBuffer (url, result, timeout);
371378 if (!buffer.isAllocated ())
372379 return false ;
373380
381+ [[maybe_unused]] const unsigned long startMS = millis ();
382+
374383 PNG *png = getPNGCurrentCore ();
375384 const int16_t rc = png->openRAM (buffer.get (), buffer.size (), PNGDraw);
376385 if (rc != PNG_SUCCESS)
@@ -390,10 +399,12 @@ bool OpenStreetMap::fetchTile(ReusableTileFetcher &fetcher, CachedTile &tile, ui
390399 const int decodeResult = png->decode (0 , PNG_FAST_PALETTE);
391400 if (decodeResult != PNG_SUCCESS)
392401 {
393- result = " Decoding " + url + " failed with code: " + String (decodeResult);
402+ result = " Decoding " + String ( url) + " failed with code: " + String (decodeResult);
394403 return false ;
395404 }
396405
406+ log_d (" decoding %s took %lu ms on core %i" , url, millis () - startMS, xPortGetCoreID ());
407+
397408 tile.x = x;
398409 tile.y = y;
399410 tile.z = zoom;
0 commit comments