6 votos

Carga y visualización de una capa de SQL Server utilizando PyQGIS

Estoy teniendo un paso en la utilización de pyqgis desde dentro de la QGIS consola de python para cargar una capa de SQL Server y de la pantalla. Yo siento que soy parte del camino, pero estoy teniendo un problema real de conseguir la capa a la pantalla.

Me he cargado la capa, aparece en las capas muelle, pero no aparece nada en la ventana del mapa (incluso después de seleccionar el zoom a la capa de medida y comprobación de los estilos). Lo que también es raro es que si puedo abrir los atributos hay datos de allí y me puede salvar la capa como un shapefile, vuelve a abrir y aparece bien. Hay algo que me falta? Aquí está mi código:

from PyQt4.QtCore import QFileInfo,QSettings
from qgis.core import QgsRasterLayer, QgsCoordinateReferenceSystem
from qgis.gui import *
from PyQt4.QtCore import *

s = QSettings()
oldValidation = str(s.value( "/Projections/defaultBehaviour", "useGlobal" ))
s.setValue( "/Projections/defaultBehaviour", "useGlobal" )

uri = "MSSQL:server=My_Server;database=My_Database;tables=dbo.My_View;trusted_connection=yes"
vlayer = QgsVectorLayer(uri, "my_table", "ogr")

vlayer.setCrs( QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId) )

s.setValue( "/Projections/defaultBehaviour", oldValidation )

QgsMapLayerRegistry.instance().addMapLayer(vlayer)

1voto

Stuart Puntos 9

Poner este extremo de que el código de la última línea:

QgsMapLayerRegistry.instance().addMapLayer(vlayer)

Si esto no es trabajo. Usted probablemente sin marcar la Render off en la parte inferior de la barra de estado justo después de donde coordina la muestra:

enter image description here

0voto

Ivan Petrushev Puntos 158

Trate de añadir: iface.mapCanvas().refresh() como última línea.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X