2013-03-25 14 views
23

Đối với bất kỳ ai đã quen thuộc với Leaflet, bạn có biết cách tự động thay đổi màu của đa giác không? Ví dụ, phải mất một vòng tròn được định nghĩa như thế này:Tự động thay đổi màu của đa giác trong tờ rơi?

window.circle = L.circle([51.508, -0.11], 500, { 
color: 'red', 
fillColor: '#ffffff', 
    fillOpacity: 0.5 
}).addTo(map); 

Rồi sau đó, sau khi người dùng nhấp vào một nút ở đâu đó trên một giao diện (ví dụ), tôi muốn thay đổi màu sắc của vòng tròn như thế này:

window.circle.options.fillColor = "#dddddd"; 

Mã thay đổi giá trị cho window.circle.options.fillColor, nhưng thay đổi không được phản ánh bởi thay đổi màu của đa giác trên bản đồ. Tôi đã tìm kiếm xung quanh nhưng không tìm thấy gì cả. Bất kỳ ý tưởng?

Cảm ơn.

Trả lời

34

L.Circle kéo dài L.Path (http://leafletjs.com/reference.html#path), có phương pháp setStyle(<Path options> object), và bạn có thể áp dụng phong cách mới như window.circle.setStyle({fillColor: '#dddddd'});

+0

Hoạt động hoàn hảo. Cảm ơn! – Owen

+4

Điều này dường như hoạt động tốt để thay đổi giao diện. Tuy nhiên, khi tôi thử nó, nó dường như không được phản ánh trong lớp đó trong mã để tôi có thể tiết kiệm. Tôi có phải bằng cách nào đó cập nhật lớp sau khi tôi đặt phong cách? – Josh

1

Nếu bạn đang tìm kiếm một cái gì đó như thế này:

const circle = L.circle([lat, lng], { 
    style: style, 
    onEachFeature: onEachFeature, 
}); 

Những tùy chọn có sẵn cho GeoJSON dữ liệu tức là: L.geojson() .....: D

Vì vậy, đối với đa giác. Hãy thử,

circle.setStyle({ 
    color: 'red' 

});

Các vấn đề liên quan