¿Cómo cambiar el color predeterminado utilizado por los holadores abiertos?


8

¿Es posible cambiar el color de highlightCtrl cuando uso onselectedHover? El valor predeterminado es azul claro.

Quiero cambiarlo a otro, por ejemplo. ¿rojo? ¿Alguien sabe dónde se define este valor?


Problema resuelto !! Acabo de agregar un nuevo estilo en OpenLayers.StyleMap. Tenía estilos específicos para: 'predeterminado', 'seleccionar' y ahora he agregado también 'temporal', que es responsable del estilo más destacado de Ctrl. Espero que esto también sea útil para alguien más.
Alex

Respuestas:


19

Cuando define su capa, también puede especificar sus styleMaps:

_layer = new OpenLayers.Layer.Vector("My Layer Name", {
    styleMap: new OpenLayers.StyleMap({
        "default": new OpenLayers.Style({
            strokeColor: "#ff0000",
            strokeOpacity: .7,
            strokeWidth: 1,
            fillColor: "#ff0000",
            fillOpacity: 0,
            cursor: "pointer"
        }),
        "temporary": new OpenLayers.Style({
            strokeColor: "#ffff33",
            strokeOpacity: .9,
            strokeWidth: 2,
            fillColor: "#ffff33",
            fillOpacity: .3,
            cursor: "pointer"
        }),
        "select": new OpenLayers.Style({
            strokeColor: "#0033ff",
            strokeOpacity: .7,
            strokeWidth: 2,
            fillColor: "#0033ff",
            fillOpacity: 0,
            graphicZIndex: 2,
            cursor: "pointer"
        })
    })
});

Luego especifique su renderintent:

_highlightControl = new OpenLayers.Control.SelectFeature(layer, {
    hover: true,
    highlightOnly: true,
    renderIntent: "temporary"
});

gracias, como mencioné antes, resolví el problema, exactamente como dices, gracias de todos modos
Alex

77
@ Alex: Como eres nuevo aquí, déjame explicarte cómo funciona esto. Si logras resolver tu propia respuesta, contéstala. Y marque la respuesta como 'respondida'. Has hecho un comentario que carece de ejemplo y explicación adecuada. Me imaginé que si alguien que realiza la búsqueda tiene la misma pregunta que usted, agradecerá tener una respuesta que les sea útil.
CaptDragon

1

La otra forma es editar directamente el archivo style.css en el directorio ol / Theme / default de su biblioteca Openlayers. Busque este código y edítelo:

.olHandlerBoxSelectFeature {
border: 2px solid blue;
position: absolute;
background-color: white;
opacity: 0.50;
font-size: 1px;
filter: alpha(opacity=50);}   

Espero que esto te sea útil.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.