def preload_wms(urls): """ This method accesses a list of WMS servers and load their capability documents. :param urls: List of URLs """ pdlg = QtWidgets.QProgressDialog("Preloading WMS servers...", "Cancel", 0, len(urls)) pdlg.reset() pdlg.setValue(0) pdlg.setModal(True) pdlg.show() QtWidgets.QApplication.processEvents() for i, base_url in enumerate(urls): pdlg.setValue(i) QtWidgets.QApplication.processEvents() # initialize login cache from config file, but do not overwrite existing keys for key, value in config_loader(dataset="WMS_login", default={}).items(): if key not in constants.WMS_LOGIN_CACHE: constants.WMS_LOGIN_CACHE[key] = value username, password = constants.WMS_LOGIN_CACHE.get(base_url, (None, None)) try: request = requests.get(base_url) if pdlg.wasCanceled(): break wms = wms_control.MSSWebMapService(request.url, version='1.1.1', username=username, password=password) wms_control.WMS_SERVICE_CACHE[wms.url] = wms logging.info("Stored WMS info for '%s'", wms.url) except Exception as ex: logging.error("Error in preloading '%s': '%s'", type(ex), ex) if pdlg.wasCanceled(): break logging.debug("Contents of WMS_SERVICE_CACHE: %s", wms_control.WMS_SERVICE_CACHE.keys()) pdlg.close()
def __init__(self, settings=None): """ """ super(MplTopViewCanvas, self).__init__() self.waypoints_interactor = None self.satoverpasspatch = [] self.kmloverlay = None self.map = None self.basename = "topview" # Axes and image object to display the legend graphic, if available. self.legax = None self.legimg = None # Set map appearance from parameter or, if not specified, to default # values. self.set_map_appearance(settings) # Progress dialog to inform the user about map redraws. self.pdlg = QtWidgets.QProgressDialog("redrawing map...", "Cancel", 0, 10, self) self.pdlg.close()