Funzioni personalizzate QGIS non visualizzate in Field Calculator


10

Sto usando Essen e sto cercando di seguire il meraviglioso tutorial di Anita Graser Contorni illuminati . Ho creato la azimuthfunzione e l'ho caricata, ma nella scheda delle espressioni non viene visualizzato nulla, nemmeno Personalizzato con la funzione predefinita! L'espressione esiste come azimuth.pyin C :\Users\Max\.qgis2\python\expressionscon il .pycfile associato . Il riavvio di QGIS non fa alcuna differenza

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


2
Presumo che ti ricordi di premere il pulsante "Carica"? Ho anche scoperto che alcuni script più vecchi causavano problemi quando ho provato a riallocarli in un nuovo gruppo: non ho riscontrato errori di sintassi, ma la correzione manuale del rientro dall'uso di TAB su 4 spazi ha risolto questo problema. Potrebbe valere la pena verificarlo, soprattutto se hai inserito il codice? (Vedo che stai usando 2 spazi per il rientro). Il marker di piega (il segno meno dopo il numero di riga) sembra ok ...
Steven Kay,

@StevenKay Grazie Steven per la prima volta ho un errore sul codice ed è relativo al rientro. Non ne ero a conoscenza e sì, avevo incollato il codice in. Solo per confermare, ci dovrebbero sempre essere 4 spazi all'inizio di una riga - noto che l'editor di funzioni fa un rientro automatico?
Max

@Max - Suggerirei vivamente di utilizzare un editor di testo per correggere il rientro e incollarlo nella finestra dell'espressione. Un certo numero di questi editor evidenzierà se il rientro è errato. Ci sono molti editor di testo là fuori, ad esempio, adoro usare Sublime ;)
Joseph,

1
@Joseph Grazie lo farò - apprezzo molto tutta l'assistenza
Max

@Max Hai mai risolto questo? Provo lo stesso. Le mie funzioni personalizzate non si caricano all'avvio di qgis, quindi devo accedere alla scheda dell'editor delle funzioni e premere "carica" ​​prima che le funzioni personalizzate vengano visualizzate nella scheda dell'editor delle espressioni.
joskal

Risposte:


11

Non chiamare la funzione in azimuthquanto esiste già una funzione matematica chiamata questo.

Invece dagli un altro nome come azi():

Script di esempio

E ora dovresti essere in grado di chiamarlo:

Espressione personalizzata


grazie per questo, non ero a conoscenza della funzione matematica. Tuttavia, non viene ancora visualizzato nella scheda espressioni una volta creata e caricata. Come ho detto in precedenza, non esiste alcun titolo chiamato "Personalizzato", quindi per il prossimo passo del tutorial sono un po 'pieno (questa è la prima volta che utilizzo espressioni e funzioni in QGIS ... forse il mio ultimo se posso' Per finire questo tutorial!)
Max

@Max - Quale versione di QGIS stai usando? Hai preso in considerazione l'aggiornamento alla versione più recente? Ho provato questo su QGIS 2.14.3-Essen e ha caricato bene.
Joseph,

L'ho provato su 2.14.8 Essen e 2.16.3. Penso che disinstallerò e reinstallerò - Uso OSGeo per l'installazione e mi chiedo se forse qualcosa è rovinato da qualche parte?
Max

@Max - Potrebbe essere. Prima di reinstallare, provare a eliminare la C:/Users/You/.qgis2/python/expressionscartella (o eseguire il backup di tutti gli script utilizzati).
Joseph,

1
Max
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.