2011/11/23 Paolo Corti <pco...@gmail.com>: > 2011/11/23 Colla Diego <diego.co...@arpa.piemonte.it> >> >> Salve a tutti, >> sto cercando di creare in QGIS una connessione dinamica ad un database SQL >> Server 8; attraverso la connessione ODBC presente nella funzione 'Aggiungi >> vettore', la procedura mi permette di selezionare l'origine dati ODBC >> configurata nel Pannello di controllo (Strumenti di amministrazione), si >> connette al database, mi permette di selezionare la tabella o la vista da >> visualizzare, ma viene aggiunto un layer non georiferito, benchè siano >> presenti le colonne X e Y. E' possibile visualizzare la tabella attributi ma >> nn si riesce a spazializzarlo. Interrogando le proprietà (Metadati) >> compaiono le seguenti informazioni: >> > > Ciao > > non ho tempo di provare ne conosco le modalita' di collegamento di > QGIS con data sources ODBC, ma vado a naso. > Immagino che QGIS sfrutti il driver ODBC RDBMS di GDAL [1]. > Da una rapida scorsa alla documentazione indicata, devi avere sul tuo > db una tabella GEOMETRY_COLUMNS che immagino tu non abbia, altrimenti > tutte le tabelle non saranno spazializzate. > > All'interno di tale tabella devi aggiungere un record per ogni tabella > spaziale presente sul tuo database. > Segui comunque in maniera pedissequa le istruzioni presenti. > > NB: e' un driver in sola lettura, quindi non potrai fare editing > > ciao > P > > [1] http://www.gdal.org/ogr/drv_odbc.html
Ho riletto bene la tua domanda, in effetti non stai usando SQL Server col formato spaziale come pensavo, quindi non hai una colonna geometrica, bensi una colonna per le x ed una per le y e la soluzione precedente non e' applicabile. Una cosa che potresti provare pero' e' la seguente: aggiungi una colonna testo sulla tabella (o crea una vista con una nuova colonna). La nuova colonna deve presentare le coordinate in formato wkt [1]. Ad es per un punto con X=10, Y=20, la nuova colonna dovrebbe essere valorizzata a 'POINT (10 20)'. Potresti ad es creare una vista con la seguente query (concettuale, non ho modo di provarla su SQL Server: CREATE MYVIEW AS SELECT COL1, COL2, 'POINT (' + COLX + ' ' + COLY + ')' AS GEOMETRY FROM MYTABLE A questo punto aggiungi il record in questione sulla tabella GEOMETRY_COLUMNS. Da quanto riportato sulla documentazione potrebbe ssere sufficiente usare il parametro table_list, senza necessita' di creare la tabella GEOMETRY_COLUMNS. Facci sapere il risultato ;) P [1] http://en.wikipedia.org/wiki/Well-known_text -- Paolo Corti Geospatial software developer web: http://www.paolocorti.net twitter: @capooti _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione Gfoss@lists.gfoss.it http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. Non inviate messaggi commerciali. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. 540 iscritti al 4.11.2011