Utilizo OpenLayers 2.13.1 junto con GeoServer y PostgreSQL
Tengo un código para una capa vectorial en mi OpenLayers así
//style for layer
var style_d = new OpenLayers.Style({
'fillColor': '${p_color}',
'fillOpacity': .8,
'fontColor': 'black',
'pointRadius': 8,
'strokeColor': 'black',
'strokeWidth': 1,
'fontFamily': 'Arial',
'fontSize': 10,
'label': '${p_name}',
'labelAlign': 'tc',
'labelSelect': true,
'labelXOffset': 4,
'labelYOffset':4,
},
{
context: {
label:function(feature) {
if(feature.attributes['p_name']) {
return feature.attributes.p_name;
} else {
return '';
}
}
},
});
//style for layer - when click a geometry
var style_select = new OpenLayers.Style({
'fillColor': '${p_color}',
'fillOpacity': .4,
'fontColor': 'black',
'pointRadius': 5,
'strokeColor': 'black',
'strokeWidth': .5,
'fontFamily': 'Arial',
'fontSize': 10,
'label': '${p_name}',
'labelAlign': 'tc',
'labelSelect': true,
'labelXOffset': 4,
'labelYOffset':4,
},
{
context: {
label:function(feature) {
if(feature.attributes['p_name']) {
return feature.attributes.p_name;
} else {
return '';
}
}
}
});
//Add a select feature control for pins
var select_feature_control = new OpenLayers.Control.SelectFeature(mylayer, {multiple: false,toggle: true});
map.addControl(select_feature_control);
//Activate the control
select_feature_control.activate();
//do stuff when clicked
function selected_feature(event){
document.getElementById("wesmes").innerHTML="Loading";
sf = event.feature.fid;
var sfs = sf.split(".");
var sff = sfs[1];
//call a function
}
Problema :
Si hay un polígono o una línea en el mapa puedo hacer clic derecho sobre ellos y todo funciona.
Si hay un punto, tengo que hacer clic fuera del punto, cerca de él, para que se haga clic y activar el function selected_feature(event)
etc, etc. Si hago clic en el punto, no pasa nada
¿Cómo puedo solucionarlo? ¿Por qué ocurre esto? Creo que es un problema de estilo. Si lo desea, puedo proporcionar más código