Use style.label as placemark name if available. r=pgiraud (closes #2441)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@9977 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Frédéric Junod
2010-01-27 15:27:04 +00:00
parent 1f481f3d38
commit 86eb16a208
2 changed files with 19 additions and 4 deletions

View File

@@ -1020,14 +1020,13 @@ OpenLayers.Format.KML = OpenLayers.Class(OpenLayers.Format.XML, {
createPlacemarkXML: function(feature) {
// Placemark name
var placemarkName = this.createElementNS(this.kmlns, "name");
var name = (feature.attributes.name) ?
feature.attributes.name : feature.id;
var name = feature.style && feature.style.label ? feature.style.label :
feature.attributes.name || feature.id;
placemarkName.appendChild(this.createTextNode(name));
// Placemark description
var placemarkDesc = this.createElementNS(this.kmlns, "description");
var desc = (feature.attributes.description) ?
feature.attributes.description : this.placemarksDesc;
var desc = feature.attributes.description || this.placemarksDesc;
placemarkDesc.appendChild(this.createTextNode(desc));
// Placemark

View File

@@ -195,6 +195,22 @@
t.eq(features[0].attributes.ElevationGain.displayName, "ElevationGain", "read displayName from extendeddata correctly");
}
function test_Format_KML_placemarkName(t) {
t.plan(3);
var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(0,0));
var f = new OpenLayers.Format.KML();
t.eq(f.read(f.write(feature))[0].attributes.name, feature.id, "placemark name from feature.id");
feature.attributes.name = "placemark name from attributes.name";
t.eq(f.read(f.write(feature))[0].attributes.name, feature.attributes.name, "placemark name from attributes.name");
feature.style = {
label: "placemark name from style.label"
};
t.eq(f.read(f.write(feature))[0].attributes.name, feature.style.label, "placemark name from style.label");
}
</script>
</head>
<body>