Wie ändere ich die Standardfarbe, die von Openlayern verwendet wird?


8

Es ist möglich, die Farbe von HighlightCtrl zu ändern, wenn ich onselectedHover? Die Standardeinstellung ist hellblau.

Ich möchte es in ein anderes ändern, z. rot? Weiß jemand, wo dieser Wert definiert ist?


Problem gelöst !! Ich habe gerade einen neuen Stil in OpenLayers.StyleMap hinzugefügt. Ich hatte bestimmte Stile für: 'Standard', 'Auswählen' und jetzt habe ich auch 'Temporär' hinzugefügt, was für den HighlightCtrl-Stil verantwortlich ist. Hoffe, das ist auch für jemand anderen hilfreich.
Alex

Antworten:


19

Wenn Sie Ihre Ebene definieren, können Sie auch Ihre styleMaps angeben:

_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"
        })
    })
});

Geben Sie dann Folgendes an renderintent:

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

danke, wie ich bereits erwähnte, habe ich das Problem gelöst, genau wie du sagst, trotzdem danke
Alex

7
@ Alex: Da du neu hier bist, lass mich erklären, wie das funktioniert. Wenn Sie Ihre eigene Antwort lösen können, beantworten Sie sie. Und markieren Sie die Antwort als "beantwortet". Sie haben einen Kommentar abgegeben, dem ein Beispiel und eine angemessene Erklärung fehlen. Ich dachte mir, wenn jemand, der sucht, dieselbe Frage hat wie Sie, wird er es zu schätzen wissen, eine Antwort zu haben, die für ihn hilfreich ist.
CaptDragon

1

Die andere Möglichkeit besteht darin, das style.css-Archiv direkt im Verzeichnis ol / Theme / default Ihrer Openlayers-Bibliothek zu bearbeiten. Suchen Sie nach diesem Code und bearbeiten Sie ihn:

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

Ich hoffe, das wird Ihnen nützlich sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.