def zoom(self, widthpx, extll): if self.specifiedzoom is None: maxzoom = tm.maxzoom(self.tiletype) if self.maxzoom is None else self.maxzoom autozoom = osm.autozoom(widthpx/(extll.xMaximum()-extll.xMinimum())) return min(max((tm.minzoom(self.tiletype), autozoom)), maxzoom) else: numtiles = len(osm.tiles(extll.xMinimum(), extll.xMaximum(), extll.yMinimum(), extll.yMaximum(), self.specifiedzoom)) if numtiles > qosmsettings.get(qosmsettings.MAX_TILES): log("too many tiles for fixed zoom layer!: %s" % numtiles) self.rendererrors += 1 return None else: return self.specifiedzoom
def set_summarystats(self): numtiles = len(self.layer.loadedlayers) zoom = self.layer.actualzoom if self.layer.specifiedzoom is None else \ self.layer.specifiedzoom extent = self.iface.mapCanvas().extent() crs = self.iface.mapCanvas().mapRenderer().destinationCrs() widthpx = self.iface.mapCanvas().width() extll = osm.unproject(extent, crs) calczoom = osm.autozoom(widthpx/(extll.xMaximum()-extll.xMinimum())) layerzoom = calczoom if zoom is None else zoom numtilestot = len(osm.tiles(extll.xMinimum(), extll.xMaximum(), extll.yMinimum(), extll.yMaximum(), layerzoom)) self.statusText.setText("Loaded %s of %s tiles at zoom level %s (automatic zoom would be %s). \ %s rendering errors (see QOSM Settings/Logs for more details)." % (numtiles, numtilestot, zoom, calczoom, self.layer.rendererrors))