Làm cách nào để thay đổi màu mặc định được sử dụng bởi các lớp mở di chuột?


8

Có thể thay đổi màu của highlightCtrl khi tôi sử dụng onselectedHover không? Mặc định là màu xanh nhạt.

Tôi muốn thay đổi nó sang một cái khác, vd. màu đỏ? Có ai biết giá trị này được xác định ở đâu không?


Vấn đề đã được giải quyết !! Tôi vừa thêm phong cách mới trong OpenLayers.StyleMap. Tôi đã có các kiểu cụ thể cho: 'mặc định', 'chọn' và bây giờ tôi cũng đã thêm 'tạm thời', chịu trách nhiệm cho kiểu highlightCtrl. Hy vọng điều này là hữu ích cho người khác quá.
Alex

Câu trả lời:


19

Khi bạn xác định lớp của mình, bạn cũng có thể chỉ định styleMaps của mình:

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

Sau đó chỉ định renderintent:

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

cảm ơn, như tôi đã đề cập trước khi tôi giải quyết vấn đề, chính xác như bạn nói, dù sao cũng cảm ơn
Alex

7
@Alex: Vì bạn là người mới ở đây, hãy để tôi giải thích cách thức hoạt động của nó. Nếu bạn có thể giải quyết câu trả lời của riêng bạn, sau đó trả lời nó. Và đánh dấu câu trả lời là 'đã trả lời'. Bạn đã đưa ra một nhận xét thiếu ví dụ và giải thích thích hợp. Tôi hình dung nếu bất cứ ai tìm kiếm có cùng câu hỏi như bạn đã làm, họ sẽ đánh giá cao việc có câu trả lời sẽ hữu ích cho họ.
CaptDragon

1

Một cách khác là chỉnh sửa trực tiếp kho lưu trữ style.css trong thư mục ol / Theme / default của thư viện Openlayers của bạn. Tìm mã này và chỉnh sửa nó:

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

Hy vọng điều này sẽ hữu ích cho bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.