[Gfoss] domanda su Openlayers

Salve a tutti.

Voglio visualizzare con Openlayers un file kml contenente dei tracciati, e fin qua nessun problema.
Volevo anche visualizzare delle icone posizionate in corrispondenza di questi tracciati, in modo che seguissero lo zoom e fossero sempre visibili ad ogni livello.
Si può fare? Qualcuno sa dove trovere un esempio da copiare??

Grazie

alberto

On Mon, Apr 18, 2011 at 04:20:15PM +0200, albertobonati wrote:

Voglio visualizzare con Openlayers un file kml contenente dei
tracciati, e fin qua nessun problema.
Volevo anche visualizzare delle icone posizionate in corrispondenza
di questi tracciati, in modo che seguissero lo zoom e fossero sempre
visibili ad ogni livello.

Ti consiglio di seguire lo standard KML e includere in esso le
icone come tag <Placemark>.<icon>. Poi usi lo stile di OpenLayers
per vestire il layer con le stesse icone.

In questo modo prendi due piccioni con una fava: viene un KML che
mostra delle icone (nei programmi che lo supportano), le stesse
che poi vedi anche in OpenLayers.

Sulla documentazione OL cerca il costruttore
OpenLayers.StyleMap(), l'attributo externalGraphic, pointRadius,
ecc.

--
Niccolo Rigacci
Firenze - Italy

Il 18/04/2011 16.28, Niccolo Rigacci ha scritto:

On Mon, Apr 18, 2011 at 04:20:15PM +0200, albertobonati wrote:

Voglio visualizzare con Openlayers un file kml contenente dei
tracciati, e fin qua nessun problema.
Volevo anche visualizzare delle icone posizionate in corrispondenza
di questi tracciati, in modo che seguissero lo zoom e fossero sempre
visibili ad ogni livello.

Ti consiglio di seguire lo standard KML e includere in esso le
icone come tag<Placemark>.<icon>. Poi usi lo stile di OpenLayers
per vestire il layer con le stesse icone.

In questo modo prendi due piccioni con una fava: viene un KML che
mostra delle icone (nei programmi che lo supportano), le stesse
che poi vedi anche in OpenLayers.

Sulla documentazione OL cerca il costruttore
OpenLayers.StyleMap(), l'attributo externalGraphic, pointRadius,
ecc.

Le icone le includo nel file KML, nessun problema per questo e per visualizzarle in un certo punto.
E' il modo di vederle su Openlayers in modo che non siano fisse ma legate all' oggetto in funzione dello zoom che mi è ostico...
Grazie del consiglio comunque, ma se non vedo un esempio non ce la fo....

ciao

On Tue, Apr 19, 2011 at 03:16:28PM +0200, albertobonati wrote:

>
E' il modo di vederle su Openlayers in modo che non siano fisse ma
legate all' oggetto in funzione dello zoom che mi è ostico...
Grazie del consiglio comunque, ma se non vedo un esempio non ce la fo....

Vedi queste due pagine (nella seconda vedi Symbolizer
properties):

http://docs.openlayers.org/library/feature_styling.html
http://dev.openlayers.org/apidocs/files/OpenLayers/Feature/Vector-js.html

gli esempi sono pochi, ma è un inizio.

Legare la dimensione delle icone allo zooom pare che non sia
previsto. Si può quasi certamente intercettare l'evento zoom e
modificare al volo l'attributo pointRadius.

--
Niccolo Rigacci
Firenze - Italy

Il 19 aprile 2011 15:16, albertobonati <albertobonati@libero.it> ha scritto:

Le icone le includo nel file KML, nessun problema per questo e per
visualizzarle in un certo punto.
E' il modo di vederle su Openlayers in modo che non siano fisse ma legate
all' oggetto in funzione dello zoom che mi è ostico...

per lo zoom ecco qui il codice...sostituisci le parti necessarie

      var centraline_style = new OpenLayers.Style(OpenLayers.Util.applyDefaults({
        graphicOpacity: 1,
        fontColor: "red",
        fontWeight: "bold",
        pointRadius: "${scaledSize}",
        label : "${nome}",
        fontSize: "${scaledSize}",
        labelYOffset: "${scaledOffset}",
        labelAlign: "ct",
        externalGraphic: "centraline.png"

      }, OpenLayers.Feature.Vector.style["default"]), {
        context: {
          scaledSize: function() {
            return map.getZoom()*1.25;
          },
          scaledOffset: function(feature) {
            return map.getZoom()*(-1.5);
          }
        }
      });
      var centraline_styleMap = new OpenLayers.StyleMap({"default":
centraline_style});

Grazie del consiglio comunque, ma se non vedo un esempio non ce la fo....

ciao

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org