Salve a tutti, ho bisogno di una mano per il seguente quesito, una mano concettuale per favore:
"dovresti studiare un modo per aggiungere ad ogni tratto di strada compreso tra due nodi, il più più piccolo e il più grande numero civico. Fare ciò con l'obiettivo di poter associare a ciascun segmento viario i residenti (nome, cognome e altro presenti in un file.xls)..."
ho uno stradario .shp, file anagrafico .xls ma concettualmente mi sto incartando....
partendo da xls, fai una pivot (selezionando nel foglio di partenza le colonne STRADA e CIVICO) in cui la prima colonna a sx riporti la strada (o codice tratto, se una strada è composta da n tratti >1), della seconda colonna il valore minimo dei civico e nella terza colonna il valore massimo del civico.
Totale dovresti avere per ogni riga del nuovo foglio xls
CODICE STRADA/STRADA + MIN CIVICO + MAX CIVICO
Attacchi ad ogni stratto dello shp la tabella appena generata.
Spero di avere centrato l'obiettivo 1 --> "aggiungere ad ogni tratto di strada compreso tra due nodi, il più piccolo e il più grande numero civico"
Quando fatto, parliamo dell'obiettivo 2 di cui però devi specificare con quale sw voui la visualizzazione.
Buon lavoro
Alberto
cari saluti Alberto -------------------------------- Un vincente trova sempre una strada... Un perdente trova sempre una scusa!!!
grazie....solo ora ho avuto possibilità di ripsonderti e di provare ad usare le tabelle pivot, a me sconosciute ma ce la farò.... ti farò sapere quanto prima...
buona sera a tutti, ritorno a scrivere del mio problema ora che ho più chiara la situazione. - ho un file anagrafe.xls, contenente appunto l'anagrafica della città, con nome, cognome,eccc via e numero civico... - ho poi uno shape poligonale EDIFICI - uno shape lineare STRADE, con identificativo della strada, e id_tratto (iniziale e finale) - uno shape puntuale con i numeri civici. hp fatto un pò di prove e con varie elaborazioni ottengo: interrogando lo shape civici, riesco (avendo impostato una relazione nel progetto) a visualizzare le persone che abitano a quel civico. l'obiettivo che mi si chiede di raggiungere è però più complesso: "riuscire interrogando il tratto di strada, a sapere chi sono le persone che vi abitano, o comunque quante ne sono. premetto, non ho mai lavorato con i database. Devo praticamente associare ID tratto a tutti i numeri civici che "ci si affacciano"? ok, potrei farlo manualmente, anche se..che fatica....e poi? come procedo? grazie a tutti
il "caso" si dovrebbe risolvere portando, permettimi il termine poco tecnico ma efficace, sullo shp dei civici anche l'attributo "ID-tratto".
Hai quindi due possibili strade in funzione della struttura delle banche dati disponibili:
nel menù testuale "Vettore>Strumenti di geoprocessing>Unione" in pratica trasferisci il dato ID-tratto dallo shp strade anche allo shp civici+residenti. qui ti serve che le geometrie si intersechino (i civici devono cadere "dentro" i poligoni strada.
nel menù testuale "Vettore>Strumenti di gestione dati>Unisci attributi per posizione" fai circa lo stesso lavoro. Qui puoi lavorare un poco sulle prossimità. Da verificare nei punti di cambio del tratto di strada
per ultimo, ma bisogna vedere se fattibile o si genera solo pasticcio ulteriore, in relazione alla distanza del punto "civico" dalla strada, potresti lavorare sul buffer del tratto di strada anziché sul tratto stesso.
devi ora vedere tu se le banche dati possono "dialogare" tra loro in relazione all'azione che hai scelto.
ti allego il file con le schermate
credo ci aiuteresti inviando, a mo' di esempio, un estratto degli shp strade e civici (per quest'ultimo anche xls)
buon lavoro
cari saluti Alberto -------------------------------- Un vincente trova sempre una strada... Un perdente trova sempre una scusa!!!
Buongiorno, diciamo che avevo già provato ad utilizzare unisci attributi per posizione, ma si creano una seri di errori. io dispongo di una shape puntuale dei civici, estratto da un dwg... po ho shape anagrafe facilmente modificabile, allego estratto... grazie a tutti
alla fine ho fatto prima con il geoalgoritmo di QGIS che trovi nella sezione "Vector analysis tools" alla voce distance to nearest hub
lo trovi attivando il pannello "strumenti" (in visualizza>pannelli)
al termine della procedura si genera un nuovo shp "Distanza dal centro" trovi nella tabella dello shp dei civici una nuova colonna denominata "hubname" che ti indica il numero tratto
se gli ID tratto non sono univoci (non ho controllato) magari ti conviene costruire (prima e sulla tabella dello shp stradario) un codice composto da [COD ANA+ID TRATTO] ed usare quello per "battezzare" i civici
infine, nella finestra proprietà del nuovo shp "distanza dal centro" scegli il comando join ed unisci il campo hubname col campo ID_TRATTO. Troverai riportati i campi dello stradario (da cui poter scegliere, per ogni civico, l'ID TRATTO)
esagerando, ma qui devi definire tu col tuo committente cosa vi serve, puoi scaricarti il plugin "spreadsheet layers" con cui importarti l'anagrafe e trattarla come sopra per poterla collegare, tramite join, agli shp appena generati.
Attenta alle chiavi di relazione tra le tabelle (come dicevo, occhio all'ID tratto, che sia univoco)
vedi in allegato la serie di finestre
buon lavoro
cari saluti Alberto -------------------------------- Un vincente trova sempre una strada... Un perdente trova sempre una scusa!!!
ciao, grazie per i suggerimenti. Non so in cosa sbaglio, ma mi ritrovo dei civici a cui sono associate le strade sbagliate!!!!!!
qual è il principio dell'algoritmo? ps per quanto concerne il .xls dell'angrafica, mi servirebbe poter interrogare il tratto di strada e anche solo a video avere l'elenco dei residenti.... grazie