def setMapSettings(self, settings): """settings: QgsMapSettings (QGIS >= 2.3) or QgsMapRenderer""" self.canvas = None self.mapSettings = settings self.baseExtent = RotatedRect.fromMapSettings(settings) self.crs = settings.destinationCrs()
def updateQuads(self, v=None): isSimpleMode = self.radioButton_Simple.isChecked() if isSimpleMode: self.dialog.clearRubberBands() return apiChanged23 = QGis.QGIS_VERSION_INT >= 20300 canvas = self.dialog.iface.mapCanvas() mapSettings = canvas.mapSettings( ) if apiChanged23 else canvas.mapRenderer() baseExtent = RotatedRect.fromMapSettings(mapSettings) p = { "lineEdit_centerX": self.lineEdit_centerX.text(), "lineEdit_centerY": self.lineEdit_centerY.text(), "lineEdit_rectWidth": self.lineEdit_rectWidth.text(), "lineEdit_rectHeight": self.lineEdit_rectHeight.text(), "spinBox_Height": self.spinBox_Height.value() } quadtree = createQuadTree(baseExtent, p) if quadtree: self.dialog.createRubberBands(baseExtent, quadtree) self.dialog.setWindowState(self.windowState() & ~Qt.WindowMinimized | Qt.WindowActive) else: self.dialog.clearRubberBands()
def __init__(self, settings, canvas, pluginManager, localBrowsingMode=True): self.data = settings self.timestamp = datetime.datetime.today().strftime("%Y%m%d%H%M%S") # output html file path htmlfilename = settings.get("OutputFilename") if not htmlfilename: htmlfilename = tools.temporaryOutputDir() + "/%s.html" % self.timestamp self.htmlfilename = htmlfilename self.path_root = os.path.splitext(htmlfilename)[0] self.htmlfiletitle = os.path.basename(self.path_root) self.title = self.htmlfiletitle # load configuration of the template self.templateName = settings.get("Template", "") templatePath = os.path.join(tools.templateDir(), self.templateName) self.templateConfig = tools.getTemplateConfig(templatePath) # MapTo3D object world = settings.get(ObjectTreeItem.ITEM_WORLD, {}) baseSize = world.get("lineEdit_BaseSize", def_vals.baseSize) verticalExaggeration = world.get("lineEdit_zFactor", def_vals.zExaggeration) verticalShift = world.get("lineEdit_zShift", def_vals.zShift) self.mapTo3d = MapTo3D(canvas, float(baseSize), float(verticalExaggeration), float(verticalShift)) self.coordsInWGS84 = world.get("radioButton_WGS84", False) self.canvas = canvas self.mapSettings = canvas.mapSettings() if apiChanged23 else canvas.mapRenderer() self.baseExtent = RotatedRect.fromMapSettings(self.mapSettings) self.pluginManager = pluginManager self.localBrowsingMode = localBrowsingMode self.crs = self.mapSettings.destinationCrs() wgs84 = QgsCoordinateReferenceSystem(4326) transform = QgsCoordinateTransform(self.crs, wgs84) self.wgs84Center = transform.transform(self.baseExtent.center()) controls = settings.get(ObjectTreeItem.ITEM_CONTROLS, {}) self.controls = controls.get("comboBox_Controls") if not self.controls: self.controls = QSettings().value("/Qgis2threejs/lastControls", "OrbitControls.js", type=unicode) self.demProvider = None self.quadtree = None if self.templateConfig.get("type") == "sphere": self.exportMode = ExportSettings.SPHERE return demProperties = settings.get(ObjectTreeItem.ITEM_DEM, {}) self.demProvider = self.demProviderByLayerId(demProperties["comboBox_DEMLayer"]) if demProperties.get("radioButton_Simple", False): self.exportMode = ExportSettings.PLAIN_SIMPLE else: self.exportMode = ExportSettings.PLAIN_MULTI_RES self.quadtree = createQuadTree(self.baseExtent, demProperties)
def setMapSettings(self, settings): """settings: QgsMapSettings (QGIS >= 2.3) or QgsMapRenderer""" self.canvas = None self.mapSettings = settings self.baseExtent = RotatedRect.fromMapSettings(settings) self.crs = settings.destinationCrs()
def __init__(self, mapSettings, planeWidth=100, verticalExaggeration=1, verticalShift=0): # map canvas self.rotation = mapSettings.rotation() if QGis.QGIS_VERSION_INT >= 20700 else 0 self.mapExtent = RotatedRect.fromMapSettings(mapSettings) # 3d canvas_size = mapSettings.outputSize() self.planeWidth = planeWidth self.planeHeight = planeWidth * canvas_size.height() / float(canvas_size.width()) self.verticalExaggeration = verticalExaggeration self.verticalShift = verticalShift self.multiplier = planeWidth / self.mapExtent.width() self.multiplierZ = self.multiplier * verticalExaggeration
def __init__(self, mapSettings, planeWidth=100, verticalExaggeration=1, verticalShift=0): # map canvas self.rotation = mapSettings.rotation( ) if QGis.QGIS_VERSION_INT >= 20700 else 0 self.mapExtent = RotatedRect.fromMapSettings(mapSettings) # 3d canvas_size = mapSettings.outputSize() self.planeWidth = planeWidth self.planeHeight = planeWidth * canvas_size.height() / float( canvas_size.width()) self.verticalExaggeration = verticalExaggeration self.verticalShift = verticalShift self.multiplier = planeWidth / self.mapExtent.width() self.multiplierZ = self.multiplier * verticalExaggeration
def updateQuads(self, v=None): isSimpleMode = self.radioButton_Simple.isChecked() if isSimpleMode: self.dialog.clearRubberBands() return apiChanged23 = QGis.QGIS_VERSION_INT >= 20300 canvas = self.dialog.iface.mapCanvas() mapSettings = canvas.mapSettings() if apiChanged23 else canvas.mapRenderer() baseExtent = RotatedRect.fromMapSettings(mapSettings) p = {"lineEdit_centerX": self.lineEdit_centerX.text(), "lineEdit_centerY": self.lineEdit_centerY.text(), "lineEdit_rectWidth": self.lineEdit_rectWidth.text(), "lineEdit_rectHeight": self.lineEdit_rectHeight.text(), "spinBox_Height": self.spinBox_Height.value()} quadtree = createQuadTree(baseExtent, p) if quadtree: self.dialog.createRubberBands(baseExtent, quadtree) self.dialog.setWindowState(self.windowState() & ~Qt.WindowMinimized | Qt.WindowActive) else: self.dialog.clearRubberBands()