- Install
ptvsd
using the same Python interpreter Qgis uses. E.g. on Windows:
C:\OSGeo4W64\apps\Python37\python.exe -m pip install ptvsd==4.3.2
- Add a debug configuration to
launch.json
:
{
"name": "Python: Remote Attach",
settings=QSettings() | |
test=settings.allKeys() | |
errorcounter=0 | |
for i in test: | |
if(u'Projections/EPSG:25832/EPSG:31467_coordinateOp' in i): | |
if settings.value(i)!=u'+proj=pipeline +step +inv +proj=utm +zone=32 +ellps=GRS80 +step +inv +proj=hgridshift +grids=BWTA2017.gsb +step +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel': | |
errorcounter+=1 | |
else: | |
settings.setValue('Projections/EPSG:25832/EPSG:31467_coordinateOp',u'+proj=pipeline +step +inv +proj=utm +zone=32 +ellps=GRS80 +step +inv +proj=hgridshift +grids=BWTA2017.gsb +step +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel') |
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
# vim: ft=python ts=4 sw=4 expandtab | |
# | |
# Copyright (c) 2013 Reed Kraft-Murphy <[email protected]> | |
# | |
# Permission is hereby granted, free of charge, to any person obtaining a copy | |
# of this software and associated documentation files (the "Software"), to deal | |
# in the Software without restriction, including without limitation the rights | |
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
layer = QgsProject.instance().mapLayer('[% @layer_id %]') | |
from qgis.core import Qgis, QgsVectorFileWriter | |
exportpath="D:/loeschen/test.gpx" | |
error, error_string = QgsVectorFileWriter.writeAsVectorFormat( layer, | |
exportpath, | |
"UTF-8", | |
layer.crs(), | |
"GPX", | |
onlySelected=True) |
from qgis.core import * | |
from qgis.gui import * | |
@qgsfunction(args='auto', group='Custom') | |
def eindeutige_legende1( layername, feature, parent,context): | |
try: | |
project = QgsProject.instance() | |
ausgabe=None | |
legendenlayer = QgsExpressionContextUtils.projectScope(project).variable('eindeutig') |
from qgis.core import * | |
from qgis.gui import * | |
import os.path | |
@qgsfunction(args='auto', group='Custom',usesgeometry=False) | |
def layername_aus_pfad(current_path, feature, parent): | |
""" | |
Layername aus dem Pfad ermitteln | |
current_path: an die Funktion uebergebener pfad, wie z.B. layer_by_path('D:\loeschen\gemarkungen.shp') | |
""" | |
path=os.path.normpath(current_path) |
Kategorisierter Stil per PyQGIS: größtenteils basierend auf: https://gis.stackexchange.com/a/382742/67477 | |
# Code für die QGIS Konsole: | |
styling_layer = iface.activeLayer() # Hinweis: im Plugin self.iface.activeLayer() | |
spalten_name = 'DRUCKSTUFE' | |
rampen_name = 'Greens' | |
field_index = styling_layer.fields().indexFromName(spalten_name) |
# for testing in QGIS console | |
style_name = 'Druckstufen' | |
layer=iface.activeLayer() | |
stylemanager = layer.styleManager() | |
current_style = stylemanager.currentStyle() | |
#print(curr_style) | |
# stil nur wechseln wenn nicht schon aktuell eingestellt | |
if style_name != current_style: | |
stylemanager.setCurrentStyle(style_name) |
ptvsd
using the same Python interpreter Qgis uses.
E.g. on Windows:C:\OSGeo4W64\apps\Python37\python.exe -m pip install ptvsd==4.3.2
launch.json
:{
"name": "Python: Remote Attach",
A windows version inspired by this lovely gist: https://gist.github.com/AsgerPetersen/9ea79ae4139f4977c31dd6ede2297f90
In QGIS install the plugin debugvs
.
The debugvs
plugin needs the python module ptvsd
to function. This module is not installed by default.