[Gfoss] openlayers, highlight features al passaggio su elemento esterno alla mappa

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 :frowning: ... qualche dritta?

Grazie a tutti per l'aiuto

-beppe-

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 <beppenapo@gmail.com> 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 :frowning: ... qualche dritta?

Grazie a tutti per l'aiuto

-beppe-

_______________________________________________
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.
485 iscritti al 20.11.2010

--
Luca Casagrande
http://www.lucacasagrande.net
twitter: lucacasagrande

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

feat = wfs.getFeatureByFid(fid_della_deature);
(oppure feat = wfs.getFeatureById(id_della_feature):wink:
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, luca.casagrande@gmail.com <luca.casagrande@gmail.com> 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 <beppenapo@gmail.com> 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 :frowning: … qualche dritta?

Grazie a tutti per l’aiuto

-beppe-


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.
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
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.
485 iscritti al 20.11.2010

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 <giohappy@gmail.com> 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):wink:
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, luca.casagrande@gmail.com
<luca.casagrande@gmail.com> 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 <beppenapo@gmail.com> 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 :frowning: ... qualche dritta?
>
> Grazie a tutti per l'aiuto
>
> -beppe-
>
>
> _______________________________________________
> 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.
> 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
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.
485 iscritti al 20.11.2010

--
Luca Casagrande
http://www.lucacasagrande.net
twitter: lucacasagrande

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 :wink:

Grazie ancora

-beppe-

Il giorno gio, 06/01/2011 alle 00.28 +0100, luca.casagrande@gmail.com 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 <giohappy@gmail.com> 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):wink:
> 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, luca.casagrande@gmail.com
> <luca.casagrande@gmail.com> 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 <beppenapo@gmail.com> 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 :frowning: ... qualche dritta?
>> >
>> > Grazie a tutti per l'aiuto
>> >
>> > -beppe-
>> >
>> >
>> > _______________________________________________
>> > 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.
>> > 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
>> 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.
>> 485 iscritti al 20.11.2010
>