||Our Application uses OL to draw features on a map, style them and save it in postgresql(attributes and style as json strings). After that then we load them as KML-files. With polygons and linestrings there is no problem, but with points. When they are styled like below they are not drawn when we load them. Now I was looking for the reason and I found it, I think. It's when a point is styled not the default(or any other) value for pointRadius is used, am I right? If there is no failure in my style than my proposal is to add the following line into the parseFeature-function of OpenLayers.Format.KML, right before
"var feature = new OpenLayers.Feature.Vector(geometry, attributes);":
if ((geometry instanceof OpenLayers.Geometry.Point || geometry instanceof OpenLayers.Geometry.MultiPoint) && this.styles[attributes.styleUrl] && !this.styles[attributes.styleUrl].pointRadius) {
                this.styles[attributes.styleUrl].pointRadius = 6;
    }
Or it could be a better solution to add the default as default to 6 in the parseStyle-function like(would save the if statement, but there would be more useless data in the style-objects):
style["pointRadius "] = 6;
It's a pity that in the parseStyle there is no access to the geometries use the style, but it's clear why it's like that.

|<Style id="style16313">
        <LineStyle>
                <color>FF214365</color>
                <width>1</width>
        </LineStyle>
        <PolyStyle||>
                <color>66563412</color>
                <fill>1</fill>
                <outline>1</outline>
        </PolyStyle>
        <LabelStyle></LabelStyle>
        <IconStyle||></IconStyle>
</Style>|




--
-----------------------------------------------
Slawomir Messner
Forschungszentrum "Deutscher Sprachatlas"

_______________________________________________
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users

Reply via email to