def open_file(self): """ Open the osm file with the osmconf """ QApplication.setOverrideCursor(Qt.WaitCursor) self.start_process() QApplication.processEvents() # Get fields osm_file = self.lineEdit_osmFile.text() osm_conf = self.lineEdit_osmConf.text() output_directory = self.lineEdit_browseDir.text() prefix_file = self.lineEdit_filePrefix.text() load_only = self.radioButton_osmConf.isChecked() # Which geometry at the end ? output_geometry_types = self.get_output_geometry_types() try: if not output_geometry_types: raise OutPutGeomTypesException if not isfile(osm_file): raise FileDoesntExistException(suffix="*.osm or *.pbf") if load_only: if not isfile(osm_conf): raise FileDoesntExistException(suffix="*.ini") if output_directory and not isdir(output_directory): raise DirectoryOutPutException # Check OGR if not is_ogr_version_ok(): raise GDALVersion if not is_osm_driver_enabled(): raise OsmDriverNotFound if load_only: osm_parser = OsmParser(osm_file, load_only=True, osm_conf=osm_conf, layers=output_geometry_types) layers = osm_parser.parse() for item in layers.values(): QgsMapLayerRegistry.instance().addMapLayer(item) else: open_file(dialog=self, osm_file=osm_file, output_geom_types=output_geometry_types, output_dir=output_directory, prefix_file=prefix_file) except QuickOsmException, e: self.display_geo_algorithm_exception(e)
def open_file(self): """ Open the osm file with the osmconf """ QApplication.setOverrideCursor(Qt.WaitCursor) self.start_process() QApplication.processEvents() # Get fields osm_file = self.lineEdit_osmFile.text() osm_conf = self.lineEdit_osmConf.text() output_directory = self.lineEdit_browseDir.text() prefix_file = self.lineEdit_filePrefix.text() load_only = self.radioButton_osmConf.isChecked() # Which geometry at the end ? output_geometry_types = self.get_output_geometry_types() try: if not output_geometry_types: raise OutPutGeomTypesException if not isfile(osm_file): raise FileDoesntExistException(suffix="*.osm or *.pbf") if load_only: if not isfile(osm_conf): raise FileDoesntExistException(suffix="*.ini") if output_directory and not isdir(output_directory): raise DirectoryOutPutException # Check OGR if not is_osm_driver_enabled(): raise OsmDriver if load_only: osm_parser = OsmParser( osm_file, load_only=True, osm_conf=osm_conf, layers=output_geometry_types) layers = osm_parser.parse() for item in layers.values(): QgsMapLayerRegistry.instance().addMapLayer(item) else: open_file( dialog=self, osm_file=osm_file, output_geom_types=output_geometry_types, output_dir=output_directory, prefix_file=prefix_file) except QuickOsmException, e: self.display_geo_algorithm_exception(e)
def process_query( dialog=None, query=None, nominatim=None, bbox=None, output_dir=None, prefix_file=None, output_geometry_types=None, layer_name="OsmQuery", white_list_values=None, config_outputs=None): """execute a query and send the result file to open_file.""" # Check OGR if not is_ogr_version_ok(): raise GDALVersion if not is_osm_driver_enabled(): raise OsmDriverNotFound # Get output's format output_format = get_setting('outputFormat') # Prepare outputs dialog.set_progress_text(tr("QuickOSM", u"Prepare outputs")) # Replace Nominatim or BBOX query = prepare_query(query=query, nominatim_name=nominatim, extent=bbox) # Getting the default overpass api and running the query server = get_setting('defaultOAPI') dialog.set_progress_text(tr("QuickOSM", u"Downloading data from Overpass")) QApplication.processEvents() connexion_overpass_api = ConnexionOAPI(url=server, output="xml") osm_file = connexion_overpass_api.get_file_from_query(query) return open_file( dialog=dialog, osm_file=osm_file, output_geom_types=output_geometry_types, white_list_column=white_list_values, layer_name=layer_name, output_format=output_format, output_dir=output_dir, prefix_file=prefix_file, config_outputs=config_outputs)
def process_query( dialog=None, query=None, nominatim=None, bbox=None, output_dir=None, prefix_file=None, output_geometry_types=None, layer_name="OsmQuery", white_list_values=None, config_outputs=None): """execute a query and send the result file to open_file.""" # Check OGR if not is_ogr_version_ok(): raise GDALVersion if not is_osm_driver_enabled(): raise OsmDriverNotFound # Get output's format output_format = get_setting('outputFormat') # Prepare outputs dialog.set_progress_text(tr("QuickOSM", u"Prepare outputs")) # Replace Nominatim or BBOX query = prepare_query(query=query, nominatim_name=nominatim, extent=bbox) # Getting the default overpass api and running the query server = get_setting('defaultOAPI') dialog.set_progress_text(tr("QuickOSM", u"Downloading data from Overpass")) QApplication.processEvents() connexion_overpass_api = ConnexionOAPI(url=server, output="xml") osm_file = connexion_overpass_api.get_file_from_query(query) return open_file( dialog=dialog, osm_file=osm_file, output_geom_types=output_geometry_types, white_list_column=white_list_values, layer_name=layer_name, output_format=output_format, output_dir=output_dir, prefix_file=prefix_file, config_outputs=config_outputs)