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

Rispondere a