Hi,

thanks for the support.  Now it works.  I can not exactly tell, what was going 
wrong.  But from my testing, I got the impression, that the TSV format is not 
ver fail-save.  Other formats are more robust (I'm using GML now).


All the best,


    Heiner

Am 10.11.2010 um 22:25 schrieb Arnd Wippermann:

> Hi,
> 
> That's an example to show winddirections. 
> 
> http://gis.ibbeck.de/OLClient/examples/windig.html
> 
> Arnd
> 
> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> [mailto:[email protected]] Im Auftrag von Heiner
> Lamprecht
> Gesendet: Mittwoch, 10. November 2010 20:53
> An: [email protected]
> Betreff: Re: [OpenLayers-Users] Using style depending on feature attributes
> 
> Hi,
> 
> I just noticed, that the StyleMap is completely ignored in the download
> scenario.  Even the icon is not used.  The layer uses the default icon
> instead.
> 
> 
> All the best,
> 
> 
>    Heiner
> 
> Am 10.11.2010 um 19:09 schrieb Heiner Lamprecht:
> 
>> Hi,
>> 
>> maybe I have mixed something up.  Here is the JS-code of the page:
>> 
>> --------------------------------------------------------
>>   var map;
>>   var wms;
>>   var vectors;
>>   var selectedId = -1;
>>   var popup;
>> 
>>   function init(createDynamic) {
>>       map = new OpenLayers.Map('map', {
>>           controls: [
>>             new OpenLayers.Control.LayerSwitcher(),
>>             new OpenLayers.Control.Navigation(),
>>             ]
>>       });
>> 
>>       wms = new OpenLayers.Layer.WMS("OpenLayers WMS",
>>           "http://vmap0.tiles.osgeo.org/wms/vmap0";, {layers: 'basic'}
>>       );
>> 
>>       var testStyleMap = new OpenLayers.StyleMap({
>>           "default": {
>>               externalGraphic: "/MapTest/scripts/img/marker-green.png",
>>               graphicHeight: 20,
>>               graphicYOffset: -19,
>>               rotation: "${rot}"
>>           },
>>           "select": {
>>               cursor: "crosshair",
>>               externalGraphic: "/MapTest/scripts/img/marker.png"
>>           }
>>       });
>> 
>>       if (createDynamic) {
>>           /*
>>            * Create set of features dynamically
>>            */
>>           var features = new Array(25);
>>           for (var i=0; i<features.length; i++) {
>>               features[i] = new OpenLayers.Feature.Vector(
>>                   new OpenLayers.Geometry.Point(
>>                       (340 * Math.random()) - 170,
>>                       (160 * Math.random()) - 80
>>                   ), {
>>                       rot: 100 * Math.random() | 0,
>>                       name: "no name",
>>                       description: "no desc"
>>                   }
>>               );
>>           }
>> 
>>           vectors = new OpenLayers.Layer.Vector("Points", {styleMap:
> testStyleMap});
>>           vectors.addFeatures(features);
>>       } else {
>>           /*
>>            * Download features from server
>>            */
>>           vectors = new OpenLayers.Layer.Vector("Points",
>>               {
>>                   strategies: [new OpenLayers.Strategy.BBOX({resFactor:
> 1.1})],
>>                   styleMap: testStyleMap,
>>                   protocol: new OpenLayers.Protocol.HTTP({
>>                       url: "/MapTest/FeatureServlet",
>>                       format: new OpenLayers.Format.Text()
>>                   })
>>               }
>>           );
>>       }
>> 
>>       map.addLayers([wms, vectors]);
>> 
>>       // Interaction; not needed for initial display.
>>       selectControl = new OpenLayers.Control.SelectFeature(vectors);
>>       map.addControl(selectControl);
>>       map.setCenter(
>>           new OpenLayers.LonLat(-71.147, 46.472).transform(
>>               new OpenLayers.Projection("EPSG:4326"),
>>               map.getProjectionObject()
>>           ), 8
>>       );
>>       selectControl.activate();
>>       vectors.events.on({
>>           'featureselected': onFeatureSelect,
>>           'featureunselected': onFeatureUnselect
>>       });
>>   };
>> 
>>   // Needed only for interaction, not for the display.
>>   function onPopupClose(evt) {
>>       try {
>>           // 'this' is the popup.
>>           selectControl.unselect(this.feature);
>>       } catch (e) {}
>>   }
>> 
>>   function onFeatureSelect(evt) {
>>       try {
>>           feature = evt.feature;
>>           popup = new OpenLayers.Popup.FramedCloud("featurePopup",
>>                       feature.geometry.getBounds().getCenterLonLat(),
>>                        new OpenLayers.Size(100,100),
>>                        "<h2>" + feature.attributes.name + "</h2>" +
>>                        feature.attributes.description + "<br/>" +
>>                        "Rotation: <b>" + feature.attributes.rot + "</b>",
>>                        null, true, onPopupClose);
>>           feature.popup = popup;
>>           popup.feature = feature;
>>           map.addPopup(popup);
>>           selectedId = feature.attributes.id;
>>       } catch (e) {}
>>   }
>> 
>>   function onFeatureUnselect(evt) {
>>       try {
>>           feature = evt.feature;
>> 
>>           if (feature.popup) {
>>               popup.feature = null;
>>               map.removePopup(feature.popup);
>>               feature.popup.destroy();
>>               feature.popup = null;
>>           }
>>       } catch (e) {}
>>   }
>> --------------------------------------------------------
>> 
>> If I call init(true), I get rotated icons, if I call init(false), they are
> not rotated.  In both cases, the label is displayed correctly.
>> 
>> Do you know any online examples that try to rotate a image, while loading
> the features dynamically from a server?
>> 
>> 
>> All the best,
>> 
>> 
>>   Heiner
>> 
>> Am 10.11.2010 um 18:04 schrieb Arnd Wippermann:
>> 
>>> Hi,
>>> 
>>> It should work.
>>> 
>>> The styleMap of the layer is used, when new features are added to the
> layer.
>>> If your attributes match the rules in your stylemap, then the 
>>> features should displayed in that way without any further tasks.
>>> 
>>> Arnd
>>> 
>>> 
>>> -----Ursprüngliche Nachricht-----
>>> Von: [email protected]
>>> [mailto:[email protected]] Im Auftrag von 
>>> Heiner Lamprecht
>>> Gesendet: Dienstag, 9. November 2010 22:04
>>> An: [email protected]
>>> Betreff: [OpenLayers-Users] Using style depending on feature 
>>> attributes
>>> 
>>> Dear,
>>> 
>>> I'm quite new to OpenLayers, started with some small tests last weekend.
>>> So, please forgive me, if I ask some stupid questions ;-)
>>> 
>>> At the moment, I want to change the style of a feature according to 
>>> some attribute values.  I looked into the examples (like 
>>> style-rules.html and styles-rotation.html), and it looks quite good.  
>>> My only problem is:  How to use this with dynamically loaded data.
>>> 
>>> If I create the features like in the examples (JS-Code in the page) 
>>> and add them to the layer ("vector.addFeatures(features);"), it 
>>> works.  But I would like to load the features from a server, using 
>>> the text format
>>> (tab-seperated):
>>> 
>>>  var vector = new OpenLayers.Layer.Vector("Points", {
>>>      strategies: [new OpenLayers.Strategy.Fixed()],
>>>      styleMap: new OpenLayers.StyleMap(style),
>>>      protocol: new OpenLayers.Protocol.HTTP({
>>>          url: "/MapTest/FeatureServlet",
>>>          format: new OpenLayers.Format.Text()
>>>      })
>>>  });
>>> 
>>> I can use the feature attributes f.e. in a layer, so in general, they 
>>> are created correctly.
>>> 
>>> Any hints what is going wrong?  Any additional info needed?
>>> 
>>> 
>>> Best regards,
>>> 
>>> 
>>>  Heiner
>>> 
>>> _______________________________________________
>>> Users mailing list
>>> [email protected]
>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>> 
>> 
>> _______________________________________________
>> Users mailing list
>> [email protected]
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>> 
> 
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
> 

_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to