openlayers, highlight features al passaggio su elemento esterno alla mappa

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

openlayers, highlight features al passaggio su elemento esterno alla mappa

Giuseppe Naponiello
Salve a tutti e buon inizio d'anno,
vado subito al sodo: ho una mappa con una serie di elementi puntuali e,
accanto, una tabella con alcune informazioni sugli elementi.
Allo stato attuale delle cose, ogni punto si evidenzia (highlight) al
passaggio del mouse su di esso. Vorrei, invece, che il punto si
evidenziasse al passaggio del mouse sulla corrispondente riga della
tabella.

Sto provando, ma mi sono leggermente incartato :( ...  qualche dritta?

Grazie a tutti per l'aiuto

-beppe-


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: openlayers, highlight features al passaggio su elemento esterno alla mappa

luca.casagrande@gmail.com
Brutalmente e senza ragionarci sopra, potresti:
- creare uno stile del tuo layer di punti in modo da avere una
rappresentazione evidenziata/non evidenziata in funzione di un certo
attributo
- al passaggio del mouse, leggere l'id della riga dalla tabella
- looppare tra le features e per quella che ha id uguale a quello
letto dalla tabella, aggiornare l'attributo in modo che risulti
evidenziata.

Nella doc di OL dovresti trovare maggiori informazioni.

Ciao
Luca


Il 05 gennaio 2011 15:41, beppe <[hidden email]> ha scritto:

> Salve a tutti e buon inizio d'anno,
> vado subito al sodo: ho una mappa con una serie di elementi puntuali e,
> accanto, una tabella con alcune informazioni sugli elementi.
> Allo stato attuale delle cose, ogni punto si evidenzia (highlight) al
> passaggio del mouse su di esso. Vorrei, invece, che il punto si
> evidenziasse al passaggio del mouse sulla corrispondente riga della
> tabella.
>
> Sto provando, ma mi sono leggermente incartato :( ...  qualche dritta?
>
> Grazie a tutti per l'aiuto
>
> -beppe-
>
>
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> [hidden email]
> 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.
> 485 iscritti al 20.11.2010



--
Luca Casagrande
http://www.lucacasagrande.net
twitter: lucacasagrande
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: openlayers, highlight features al passaggio su elemento esterno alla mappa

giohappy
Applicare solo uno stile non è sufficiente, è necessario richiamare ridisegnare la feature.


feat = wfs.getFeatureByFid(fid_della_deature);
(oppure feat = wfs.getFeatureById(id_della_feature);)
vectorlayer.drawFeature(feat,'temporary');

'temporary' è lo stile di selezione standard di OL esposto tramite OpenLayers.Feature.Vector.style

Per deselezionare devi reimpostare a 'default' lo stile e ridisegnare nuovamente. In modo molto banale potresti salvarti una feature temporanea, contente l'ultima feature selezionata, da deselezionare prima di selezionarne una nuova.

Per gestire tutto ciò in maniera elegante converrebbe crearsi un controllino ad hoc, tipo il SelectFeature, con un Handler apposito (invece OpenLayers.Handler.Feature) che si preoccupi di intercettare gli eventi sulla tabella (click, mouseout, ecc.).... Non so quanta esprienza hai con js e OL, non è una cosa complessa cmq.

PS: invece di loopare tu sulle feature, in fase di creazione della tabella attributi registrati per ogni riga FID o ID della feature, così la puoi richiamare direttamente coi metodi dell'esempio.

giovanni



Il giorno 05 gennaio 2011 15:57, [hidden email] <[hidden email]> ha scritto:
Brutalmente e senza ragionarci sopra, potresti:
- creare uno stile del tuo layer di punti in modo da avere una
rappresentazione evidenziata/non evidenziata in funzione di un certo
attributo
- al passaggio del mouse, leggere l'id della riga dalla tabella
- looppare tra le features e per quella che ha id uguale a quello
letto dalla tabella, aggiornare l'attributo in modo che risulti
evidenziata.

Nella doc di OL dovresti trovare maggiori informazioni.

Ciao
Luca


Il 05 gennaio 2011 15:41, beppe <[hidden email]> ha scritto:
> Salve a tutti e buon inizio d'anno,
> vado subito al sodo: ho una mappa con una serie di elementi puntuali e,
> accanto, una tabella con alcune informazioni sugli elementi.
> Allo stato attuale delle cose, ogni punto si evidenzia (highlight) al
> passaggio del mouse su di esso. Vorrei, invece, che il punto si
> evidenziasse al passaggio del mouse sulla corrispondente riga della
> tabella.
>
> Sto provando, ma mi sono leggermente incartato :( ...  qualche dritta?
>
> Grazie a tutti per l'aiuto
>
> -beppe-
>
>
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> [hidden email]
> 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.
> 485 iscritti al 20.11.2010



--
Luca Casagrande
http://www.lucacasagrande.net
twitter: lucacasagrande
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
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.
485 iscritti al 20.11.2010


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: openlayers, highlight features al passaggio su elemento esterno alla mappa

luca.casagrande@gmail.com
Esatto, come suggerito da Giovanni,
è meglio applicare lo stile "evidenziato" solo alla feature che hai
scelto per poi tornare al "default" quando deselezioni la riga della
tabella (due stili e due eventi uno in e l'altro in out).

Ciao
Luca

Il 05 gennaio 2011 19:03, G. Allegri <[hidden email]> ha scritto:

> Applicare solo uno stile non è sufficiente, è necessario richiamare
> ridisegnare la feature.
>
>
> feat = wfs.getFeatureByFid(fid_della_deature);
> (oppure feat = wfs.getFeatureById(id_della_feature);)
> vectorlayer.drawFeature(feat,'temporary');
>
> 'temporary' è lo stile di selezione standard di OL esposto tramite
> OpenLayers.Feature.Vector.style
>
> Per deselezionare devi reimpostare a 'default' lo stile e ridisegnare
> nuovamente. In modo molto banale potresti salvarti una feature temporanea,
> contente l'ultima feature selezionata, da deselezionare prima di
> selezionarne una nuova.
>
> Per gestire tutto ciò in maniera elegante converrebbe crearsi un controllino
> ad hoc, tipo il SelectFeature, con un Handler apposito (invece
> OpenLayers.Handler.Feature) che si preoccupi di intercettare gli eventi
> sulla tabella (click, mouseout, ecc.).... Non so quanta esprienza hai con js
> e OL, non è una cosa complessa cmq.
>
> PS: invece di loopare tu sulle feature, in fase di creazione della tabella
> attributi registrati per ogni riga FID o ID della feature, così la puoi
> richiamare direttamente coi metodi dell'esempio.
>
> giovanni
>
>
>
> Il giorno 05 gennaio 2011 15:57, [hidden email]
> <[hidden email]> ha scritto:
>>
>> Brutalmente e senza ragionarci sopra, potresti:
>> - creare uno stile del tuo layer di punti in modo da avere una
>> rappresentazione evidenziata/non evidenziata in funzione di un certo
>> attributo
>> - al passaggio del mouse, leggere l'id della riga dalla tabella
>> - looppare tra le features e per quella che ha id uguale a quello
>> letto dalla tabella, aggiornare l'attributo in modo che risulti
>> evidenziata.
>>
>> Nella doc di OL dovresti trovare maggiori informazioni.
>>
>> Ciao
>> Luca
>>
>>
>> Il 05 gennaio 2011 15:41, beppe <[hidden email]> ha scritto:
>> > Salve a tutti e buon inizio d'anno,
>> > vado subito al sodo: ho una mappa con una serie di elementi puntuali e,
>> > accanto, una tabella con alcune informazioni sugli elementi.
>> > Allo stato attuale delle cose, ogni punto si evidenzia (highlight) al
>> > passaggio del mouse su di esso. Vorrei, invece, che il punto si
>> > evidenziasse al passaggio del mouse sulla corrispondente riga della
>> > tabella.
>> >
>> > Sto provando, ma mi sono leggermente incartato :( ...  qualche dritta?
>> >
>> > Grazie a tutti per l'aiuto
>> >
>> > -beppe-
>> >
>> >
>> > _______________________________________________
>> > Iscriviti all'associazione GFOSS.it:
>> > http://www.gfoss.it/drupal/iscrizione
>> > [hidden email]
>> > 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.
>> > 485 iscritti al 20.11.2010
>>
>>
>>
>> --
>> Luca Casagrande
>> http://www.lucacasagrande.net
>> twitter: lucacasagrande
>> _______________________________________________
>> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
>> [hidden email]
>> 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.
>> 485 iscritti al 20.11.2010
>



--
Luca Casagrande
http://www.lucacasagrande.net
twitter: lucacasagrande
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
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.
485 iscritti al 20.11.2010
Reply | Threaded
Open this post in threaded view
|

Re: openlayers, highlight features al passaggio su elemento esterno alla mappa

Giuseppe Naponiello
Perfetto, grazie a tutti per le risposte!
Da poco sono stato risucchiato nel fantastico mondo di javascript e
jquery, comunque mi applicherò e proverò a tirare fuori qualcosa, magari
con il vostro aiuto ;)

Grazie ancora

-beppe-

Il giorno gio, 06/01/2011 alle 00.28 +0100, [hidden email] ha
scritto:

> Esatto, come suggerito da Giovanni,
> è meglio applicare lo stile "evidenziato" solo alla feature che hai
> scelto per poi tornare al "default" quando deselezioni la riga della
> tabella (due stili e due eventi uno in e l'altro in out).
>
> Ciao
> Luca
>
> Il 05 gennaio 2011 19:03, G. Allegri <[hidden email]> ha scritto:
> > Applicare solo uno stile non è sufficiente, è necessario richiamare
> > ridisegnare la feature.
> >
> >
> > feat = wfs.getFeatureByFid(fid_della_deature);
> > (oppure feat = wfs.getFeatureById(id_della_feature);)
> > vectorlayer.drawFeature(feat,'temporary');
> >
> > 'temporary' è lo stile di selezione standard di OL esposto tramite
> > OpenLayers.Feature.Vector.style
> >
> > Per deselezionare devi reimpostare a 'default' lo stile e ridisegnare
> > nuovamente. In modo molto banale potresti salvarti una feature temporanea,
> > contente l'ultima feature selezionata, da deselezionare prima di
> > selezionarne una nuova.
> >
> > Per gestire tutto ciò in maniera elegante converrebbe crearsi un controllino
> > ad hoc, tipo il SelectFeature, con un Handler apposito (invece
> > OpenLayers.Handler.Feature) che si preoccupi di intercettare gli eventi
> > sulla tabella (click, mouseout, ecc.).... Non so quanta esprienza hai con js
> > e OL, non è una cosa complessa cmq.
> >
> > PS: invece di loopare tu sulle feature, in fase di creazione della tabella
> > attributi registrati per ogni riga FID o ID della feature, così la puoi
> > richiamare direttamente coi metodi dell'esempio.
> >
> > giovanni
> >
> >
> >
> > Il giorno 05 gennaio 2011 15:57, [hidden email]
> > <[hidden email]> ha scritto:
> >>
> >> Brutalmente e senza ragionarci sopra, potresti:
> >> - creare uno stile del tuo layer di punti in modo da avere una
> >> rappresentazione evidenziata/non evidenziata in funzione di un certo
> >> attributo
> >> - al passaggio del mouse, leggere l'id della riga dalla tabella
> >> - looppare tra le features e per quella che ha id uguale a quello
> >> letto dalla tabella, aggiornare l'attributo in modo che risulti
> >> evidenziata.
> >>
> >> Nella doc di OL dovresti trovare maggiori informazioni.
> >>
> >> Ciao
> >> Luca
> >>
> >>
> >> Il 05 gennaio 2011 15:41, beppe <[hidden email]> ha scritto:
> >> > Salve a tutti e buon inizio d'anno,
> >> > vado subito al sodo: ho una mappa con una serie di elementi puntuali e,
> >> > accanto, una tabella con alcune informazioni sugli elementi.
> >> > Allo stato attuale delle cose, ogni punto si evidenzia (highlight) al
> >> > passaggio del mouse su di esso. Vorrei, invece, che il punto si
> >> > evidenziasse al passaggio del mouse sulla corrispondente riga della
> >> > tabella.
> >> >
> >> > Sto provando, ma mi sono leggermente incartato :( ...  qualche dritta?
> >> >
> >> > Grazie a tutti per l'aiuto
> >> >
> >> > -beppe-
> >> >
> >> >
> >> > _______________________________________________
> >> > Iscriviti all'associazione GFOSS.it:
> >> > http://www.gfoss.it/drupal/iscrizione
> >> > [hidden email]
> >> > 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.
> >> > 485 iscritti al 20.11.2010
> >>
> >>
> >>
> >> --
> >> Luca Casagrande
> >> http://www.lucacasagrande.net
> >> twitter: lucacasagrande
> >> _______________________________________________
> >> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> >> [hidden email]
> >> 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.
> >> 485 iscritti al 20.11.2010
> >
>
>
>


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
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.
485 iscritti al 20.11.2010