Ciao a tutti! Ho un problema da risolvere, per cercare di automatizzare un processo. ![]() L'idea può essere quella di calcolare un'angolazione rispetto al nord geografico, ma sinceramente non saprei bene come cominciare... Se mi potete aiutare... :) Ovviamente, se avete domande rispetto a quello che dovrebbe essere il risultato, non esitate... Grazie grazie! Cla -- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 750 iscritti al 18.3.2015 |
On Thu, 11 Jun 2015 11:51:12 +0200
Claudia Testanera <[hidden email]> wrote: > Ciao a tutti! > > Ho un problema da risolvere, per cercare di automatizzare un processo. > > Nell'ambito di un progetto, devo individuare l'orientazione delle facciate > di edifici (poligoni) rispetto ad una strada (linea). L'attributo che > indica l'orientazione delle facciate deve essere collegato a dei punti che > sono posizionati su ognuna di esse. > Qui sotto vi mando un immagine del modello che sto realizzando. Sono tutti > oggetti esportabili in shape (strada, edifici - poligono verde, e punti). > penso che prima di trovare soluzioni, debbano essere definiti meglio i termini del problema. Per esempio: definiamo cosa è l'orientamento di un segmento esterno ad una spezzata, rispetto alla spezzata stessa. (la spezzata è la linestring che definisce la strada, il segmento è la facciata, un edificio è composto da tante facciate quanti sono i suoi segmenti, un segmento è la linea che unisce due vertici consecutivi del poligono dell'edificio). detta così dovrei risolvere un problema di uno a molti: un segmento di facciata con molti segmenti (la spezzata) della strada. Devo forse introdurre quindi un concetto di "intorno" per limitare il tratto di strada interessato e fare un linea interpolante? può bastare una operazione del tipo definito qui di seguito? traccio la perpendicolare alla facciata fino ad incrociare in un punto la strada. Se il punto è troppo lontano può essere che la facciata sia con angolo già prossimo ai 90° (allora introduco un livello di classe dell'attributo orientamento, del tipo superiore a tot) Altrimenti: identifico il segmento della strada e confronto allora l'angolo con la perpendicolare (l'orientamento sarà qualcosa tipo 90-angolo). oppure prendo qualche segmento prima e dopo, faccio la media degli angoli e confronto come prima. definiti meglio i termini, non conosco strumenti pronti all'uso, ma della sana e consapevole programmazione :-) spero di esser stato utile ciao, marco -- Marco Guiducci <[hidden email]> Firenze, via di Novoli 26 055 4383194 _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 750 iscritti al 18.3.2015 |
Ciao Claudia, a mio avvivo si potrebbe risolvere (con un pò di ingegno) con l'uso di PostGIS. IN BREVE:
Il giorno 11 giugno 2015 12:44, Marco Guiducci <[hidden email]> ha scritto: On Thu, 11 Jun 2015 11:51:12 +0200 _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 750 iscritti al 18.3.2015 |
In reply to this post by Marco Guiducci-3
Il giorno Thu, 11 Jun 2015 12:44:21 +0200
Marco Guiducci <[hidden email]> ha scritto: > On Thu, 11 Jun 2015 11:51:12 +0200 > Claudia Testanera <[hidden email]> wrote: > > > Ciao a tutti! ciao, aggiungo a caldo alcune osservazioni, sono elucubrazioni che non so se efficaci, tanto meno efficienti: semmai le butti :-) > > Ho un problema da risolvere, per cercare di automatizzare un > > processo. > > > > Nell'ambito di un progetto, devo individuare l'orientazione delle > > facciate di edifici (poligoni) rispetto ad una strada (linea). > > ...... > > .... un edificio è composto da tante facciate > quanti sono i suoi segmenti, un segmento è la linea che unisce due > vertici consecutivi del poligono dell'edificio). detta così dovrei > risolvere un problema di uno a molti: un segmento di facciata con > molti segmenti (la spezzata) della strada....... 1) in computer graphics un problema frequente è quello di scartare le faccie non viste (la cui normale coincide a meno di +- 90gradi con quella del raggio di proiezione) questo mi fa pensare che potresti collocarti in strada davanti all'edificio (intersezione V della normale dal centroide C dell'edificio alla linea strada di cui già parlava Marco se ho letto bene) e calcolare l'angolo fra ogni facciata e il vettore VC (prodotto interno dei vettori) trattenendo solo quelle la cui differenza angolare è > 90gradi (coseno negativo, cioè guardano verso V); 2) un'altra soluzione, forse più vicina al tuo approccio è quella di calcolare l'angolo rispetto al nord delle facciate e della linea strada (sempre prodotto interno del vettore v = (x2-x1,y2-y1) e n = (0,1) e calcolare la differenza ed anche quì scartando / trattenendo quelle superiori / inferiori ad una certa soglia; 3) attenzione al senso di percorrenza dei vettori (lati) che influisce sul valore degli angoli; 4) per evitare il problema del senso di percorrenza dei lati, puoi scartare le facciate con la normale parallele alla linea strada; delle rimanenti potresti poi trattenere solo quelle il cui punto medio è più vicino alla strada (però complica e allunga); 5) attenzione2: puoi conoscere il senso di percorrenza del perimetro dal segno dell'area; però le funzioni predefinite potrebbero dare (proprio per superare il problema del senso di percorrenza del perimetro) il valore assoluto dell'area (sentire quelli più esperti); in questo caso non ti risolverebbero il problema e devi provvedere direttamente :-) 6) attenzione3: ho ragionato nell'ipotesi che ogni facciata coincida con un lato (vettore) ma potrebbe non essere sempre così; nel caso di facciate composte da alcuni segmenti tutto continua a funzionare, ma nel caso di facciate definite ma molti segmenti la situazione potrebbe degenerare; a prima vista la soluzione 1) mi sembra più robusta; se mi venisse altro aggiungo :-) > ..... .. ciao, marco ciao a tutti, giuliano _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 750 iscritti al 18.3.2015 |
Grazie a tutti per i consigli... Rileggendo il mio post, mi sono resa conto di essermi espressa non proprio benissimo... Quello che devo identificare è l'orientazione delle facciate rispetto al nord geografico... Il fatto che l'attributo debba essere cmq associato ai punti sulle facciate rimane... Immagino in questo caso si debba partire dalla determinazione del Nord geografico... Grazie ancora!!! Claudia 2015-06-11 15:27 GMT+02:00 giulianc51 <[hidden email]>: Il giorno Thu, 11 Jun 2015 12:44:21 +0200 -- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 750 iscritti al 18.3.2015 |
Free forum by Nabble | Edit this page |