ลองหาวิธีนั้นนี่ มาตั้งนานว่า จะทำงานอย่างไรในการใช้งาน Attribute replacement
ใน Doc บอกง่าย ๆ
var defaultStyle = new OpenLayers.Style({
‘pointRadius’: 10,
‘externalGraphic’: ‘${thumbnail}’
});
เวลาทำการทสร้าง Style ใช้แบบข้างบนไม่มีปัญหา แต่หากต้อง modified ค่าระหว่างทาง หรือ vector นี้ใช้กับ หลายชนิด ชั้น ข้อมูละก็จะมีปัญหา
มาเจอ link ข้างล่างมีประโยชน์ ในการใช้ context
new OpenLayers.Style({
fillColor: ‘blue’,
strokeColor: ‘navy’,
strokeWidth: 3,
pointRadius: 9,
fillOpacity: 0.6,
strokeOpacity: 0.75,
label: ‘${label}’,
fontColor: “black”,
fontFamily: “Arial”,
fontSize: 11
},
{
context: {
label:function(feature) {
if(feature.attributes['p_name']) {
return feature.attributes.p_name;
} else {
return ”;
}
}
}
});
จึงเจอทางออก
http://gis.stackexchange.com/questions/70299/provide-an-alternative-label-when-styling-vector-layer-with-openlayers