本文整理汇总了Python中qgis.utils.iface.mapCanvas方法的典型用法代码示例。如果您正苦于以下问题:Python iface.mapCanvas方法的具体用法?Python iface.mapCanvas怎么用?Python iface.mapCanvas使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.utils.iface
的用法示例。
在下文中一共展示了iface.mapCanvas方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def __init__(self, dialog):
super(ExtentSelectionPanel, self).__init__(None)
self.dialog = dialog
self.horizontalLayout = QHBoxLayout(self)
self.horizontalLayout.setSpacing(2)
self.horizontalLayout.setMargin(0)
self.text = QLineEdit()
if hasattr(self.text, 'setPlaceholderText'):
self.text.setPlaceholderText("[xmin,xmax,ymin,ymax] Leave blank to use full extent")
self.horizontalLayout.addWidget(self.text)
self.pushButton = QPushButton()
self.pushButton.setText("Define in canvas")
self.pushButton.clicked.connect(self.selectOnCanvas)
self.horizontalLayout.addWidget(self.pushButton)
self.setLayout(self.horizontalLayout)
canvas = iface.mapCanvas()
self.prevMapTool = canvas.mapTool()
self.tool = RectangleMapTool(canvas)
self.tool.rectangleCreated.connect(self.fillCoords)
示例2: getCenter
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def getCenter():
"""
Returns the coordinates at the center of the map.
https://developers.google.com/earth-engine/api_docs#map.getcenter
Uses:
>>> from ee_plugin import Map
>>> center = Map.getCenter()
>>> Map.addLayer(center, { 'color': 'red' }, 'center')
"""
center = iface.mapCanvas().center()
crs = iface.mapCanvas().mapSettings().destinationCrs().authid()
return ee.Geometry.Point([center.x(), center.y()], crs)
示例3: update_ee_image_layer
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def update_ee_image_layer(image, layer, shown=True, opacity=1.0):
check_version()
url = "type=xyz&url=" + get_ee_image_url(image)
provider = layer.dataProvider()
msg = 'Updating layer with provider %s' % (type(provider).__name__, )
QgsMessageLog.logMessage(msg, 'Earth Engine')
provider.setDataSourceUri(url)
provider.reloadData()
layer.triggerRepaint()
layer.reload()
iface.mapCanvas().refresh()
item = QgsProject.instance().layerTreeRoot().findLayer(layer.id())
if not (shown is None):
item.setItemVisibilityChecked(shown)
示例4: runAlgorithm
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def runAlgorithm(self):
alg = RAlgorithm(description_file=None, script=self.editor.text())
if alg.error is not None:
error = QgsError(alg.error, "R")
QgsErrorDialog.show(error,
self.tr("Execution error")
)
return
alg.setProvider(QgsApplication.processingRegistry().providerById("r"))
alg.initAlgorithm()
dlg = alg.createCustomParametersWidget(iface.mainWindow())
if not dlg:
dlg = AlgorithmDialog(alg, parent=iface.mainWindow())
canvas = iface.mapCanvas()
prevMapTool = canvas.mapTool()
dlg.show()
if canvas.mapTool() != prevMapTool:
if canvas.mapTool():
canvas.mapTool().reset()
canvas.setMapTool(prevMapTool)
示例5: setCenter
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def setCenter(lon, lat, zoom=None):
"""
Centers the map view at the given coordinates with the given zoom level. If no zoom level is provided, it uses the most recent zoom level on the map.
https://developers.google.com/earth-engine/api_docs#map.setcenter
Uses:
>>> from ee_plugin import Map
>>> Map.setCenter(lon, lat, zoom)
"""
### center
center_point_in = QgsPointXY(lon, lat)
# convert coordinates
crsSrc = QgsCoordinateReferenceSystem(4326) # WGS84
crsDest = QgsCoordinateReferenceSystem(QgsProject.instance().crs())
xform = QgsCoordinateTransform(crsSrc, crsDest, QgsProject.instance())
# forward transformation: src -> dest
center_point = xform.transform(center_point_in)
iface.mapCanvas().setCenter(center_point)
### zoom
if zoom is not None:
# transform the zoom level to scale
scale_value = 591657550.5 / 2 ** (zoom - 1)
iface.mapCanvas().zoomScale(scale_value)
示例6: selectOnCanvas
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def selectOnCanvas(self):
canvas = iface.mapCanvas()
canvas.setMapTool(self.tool)
self.dialog.showMinimized()
示例7: setValueFromRect
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def setValueFromRect(self,r):
s = str(r.xMinimum()) + "," + str(r.xMaximum()) + "," + str(r.yMinimum()) + "," + str(r.yMaximum())
self.text.setText(s)
self.tool.reset()
canvas = iface.mapCanvas()
canvas.setMapTool(self.prevMapTool)
self.dialog.showNormal()
self.dialog.raise_()
self.dialog.activateWindow()
示例8: editStyle
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def editStyle(self, tree, explorer, gslayer = None):
settings = QSettings()
prjSetting = settings.value('/Projections/defaultBehaviour')
settings.setValue('/Projections/defaultBehaviour', '')
if gslayer is None:
gslayer = getLayerFromStyle(self.element)
if gslayer is not None:
if not hasattr(gslayer.resource, "attributes"):
QMessageBox.warning(explorer, "Edit style", "Editing raster layer styles is currently not supported")
return
sld = self.element.sld_body.decode()
try:
_sld = "\n".join([line for line in
xml.dom.minidom.parseString(sld).toprettyxml().splitlines() if line.strip()])
except:
self._showSldParsingError()
return
sld = adaptGsToQgs(sld)
sldfile = tempFilename("sld")
with open(sldfile, 'w') as f:
f.write(sld)
geomtype = getGeomTypeFromSld(sld)
uri = geomtype + "?crs=epsg:4326&"
if gslayer is not None:
fields = gslayer.resource.attributes
fieldsdesc = ['field=%s:double' % f for f in fields if "geom" not in f]
fieldsstring = '&'.join(fieldsdesc)
uri += fieldsstring
layer = QgsVectorLayer(uri, "tmp", "memory")
layer.loadSldStyle(sldfile)
oldSld = getGsCompatibleSld(layer)[0]
dlg = QgsRendererPropertiesDialog(layer, QgsStyle.defaultStyle())
dlg.setMapCanvas(iface.mapCanvas())
dlg.exec_()
settings.setValue('/Projections/defaultBehaviour', prjSetting)
newSld = getGsCompatibleSld(layer)[0]
#TODO: we are not considering the possibility of the user selecting new svg markers,
# which would need to be uploaded
if newSld != oldSld:
explorer.run(self.element.update_body, "Update style", [], newSld)
示例9: centerObject
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def centerObject(feature, zoom=None):
"""
Centers the map view on a given object.
https://developers.google.com/earth-engine/api_docs#map.centerobject
Uses:
>>> from ee_plugin import Map
>>> Map.centerObject(feature)
"""
feature = ee.Feature(feature)
if not zoom:
# make sure our geometry is in geo
rect = feature.geometry().transform(ee.Projection('EPSG:4326'), 1)
# get coordinates
coords = rect.bounds().getInfo()['coordinates'][0]
xmin = coords[0][0]
ymin = coords[0][1]
xmax = coords[2][0]
ymax = coords[2][1]
# construct QGIS geometry
rect = QgsRectangle(xmin, ymin, xmax, ymax)
# transform rect to a crs used by current project
crs_src = QgsCoordinateReferenceSystem(4326)
crs_dst = QgsCoordinateReferenceSystem(QgsProject.instance().crs())
geo2proj = QgsCoordinateTransform(crs_src, crs_dst, QgsProject.instance())
rect_proj = geo2proj.transform(rect)
# center geometry
iface.mapCanvas().zoomToFeatureExtent(rect_proj)
else:
# set map center to feature centroid at a specified zoom
center = feature.geometry().centroid().coordinates().getInfo()
setCenter(center[0], center[1], zoom)
示例10: getBounds
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def getBounds(asGeoJSON=False):
"""
Returns the bounds of the current map view, as a list in the format [west, south, east, north] in degrees.
https://developers.google.com/earth-engine/api_docs#map.getbounds
Uses:
>>> from ee_plugin import Map
>>> bounds = Map.getBounds(True)
>>> Map.addLayer(bounds, {}, 'bounds')
"""
ex = iface.mapCanvas().extent()
# return ex
xmax = ex.xMaximum()
ymax = ex.yMaximum()
xmin = ex.xMinimum()
ymin = ex.yMinimum()
# return as [west, south, east, north]
if not asGeoJSON:
return [xmin, ymin, xmax, ymax]
# return as geometry
crs = iface.mapCanvas().mapSettings().destinationCrs().authid()
return ee.Geometry.Rectangle([xmin, ymin, xmax, ymax], crs, False)
示例11: getScale
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def getScale():
"""
Returns the approximate pixel scale of the current map view, in meters.
https://developers.google.com/earth-engine/api_docs#map.getscale
Uses:
>>> from ee_plugin import Map
>>> print(Map.getScale())
"""
return iface.mapCanvas().scale() / 1000
示例12: layerNamesFromCanvas
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def layerNamesFromCanvas(self):
"""
Gets all available layers from map canvas.
:return: (list-of-str) map cointaing layer name to vector layer object.
"""
return sorted([l.name() for l in iface.mapCanvas().layers()])
示例13: on_scale_changed
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def on_scale_changed():
print(scale_box.scale(),
QgsScaleComboBox.toString(scale_box.scale()))
print(scale_box.scaleString(),
QgsScaleComboBox.toDouble(scale_box.scaleString()))
print("Scale changed")
iface.mapCanvas().zoomScale(1 / scale_box.scale())
# The default values come from Options > Cartographic Tools, part Predefined scales
示例14: on_scale_changed
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def on_scale_changed():
print(scale_widget.scale(),
QgsScaleWidget.toString(scale_widget.scale()))
print(scale_widget.scaleString(),
QgsScaleWidget.toDouble(scale_widget.scaleString()))
print(scale_widget.showCurrentScaleButton())
print("Scale changed")
iface.mapCanvas().zoomScale(1 / scale_widget.scale())
示例15: __init__
# 需要导入模块: from qgis.utils import iface [as 别名]
# 或者: from qgis.utils.iface import mapCanvas [as 别名]
def __init__(self, parent=None):
''' Constructor '''
super().__init__(parent)
self.surface = VideoWidgetSurface(self)
self.setAttribute(Qt.WA_OpaquePaintEvent)
self.Tracking_Video_RubberBand = QRubberBand(QRubberBand.Rectangle, self)
self.Censure_RubberBand = QRubberBand(QRubberBand.Rectangle, self)
color_blue = QColor(Qt.blue)
color_black = QColor(Qt.black)
color_amber = QColor(252, 215, 108)
pal_blue = QPalette()
pal_blue.setBrush(QPalette.Highlight, QBrush(color_blue))
self.Tracking_Video_RubberBand.setPalette(pal_blue)
pal_black = QPalette()
pal_black.setBrush(QPalette.Highlight, QBrush(color_black))
self.Censure_RubberBand.setPalette(pal_black)
self._interaction = InteractionState()
self._filterSatate = FilterState()
self._isinit = False
self._MGRS = False
self.gt = None
self.drawCesure = []
self.poly_coordinates, self.drawPtPos, self.drawLines, self.drawMeasureDistance, self.drawMeasureArea, self.drawPolygon = [], [], [], [], [], []
# Draw Polygon Canvas Rubberband
self.poly_Canvas_RubberBand = QgsRubberBand(
iface.mapCanvas(), True) # Polygon type
# set rubber band style
self.poly_Canvas_RubberBand.setColor(color_amber)
self.poly_Canvas_RubberBand.setWidth(3)
# Tracking Canvas Rubberband
self.Track_Canvas_RubberBand = QgsRubberBand(
iface.mapCanvas(), QgsWkbTypes.LineGeometry)
# set rubber band style
self.Track_Canvas_RubberBand.setColor(color_blue)
self.Track_Canvas_RubberBand.setWidth(5)
# Cursor Canvas Rubberband
self.Cursor_Canvas_RubberBand = QgsRubberBand(
iface.mapCanvas(), QgsWkbTypes.PointGeometry)
self.Cursor_Canvas_RubberBand.setWidth(4)
self.Cursor_Canvas_RubberBand.setColor(QColor(255, 100, 100, 250))
self.Cursor_Canvas_RubberBand.setIcon(QgsRubberBand.ICON_FULL_DIAMOND)
self.parent = parent.parent()
palette = self.palette()
palette.setColor(QPalette.Background, Qt.transparent)
self.setPalette(palette)
self.origin, self.dragPos = QPoint(), QPoint()
self.tapTimer = QBasicTimer()
self.brush = QBrush(color_black)
self.blue_Pen = QPen(color_blue, 3)