Ich verwende neueste OL 4-Version. Ich habe mehrere Funktionen auf der Karte (eine Firma -> eine Funktion). Jedes Unternehmen hat eine Kategorie und jede Kategorie hat eine Farbe.Openlayers 4 verwenden Canvas-Muster für Feature-Stil
Stil Feature
var style = new ol.style.Style({
image: new ol.style.RegularShape({
fill: new ol.style.Fill({color: color}),
stroke: new ol.style.Stroke({ color: 'black', width: 2 }),
points: 4,
radius: 10,
angle: Math.PI/4
})
});
Farbe ist eine einfache Zeichenfolge wie: "grün" oder "blau". Das funktioniert gut.
Aber es gibt Firmen mit mehr als einer Kategorie (max 2). Meine Idee war es, eine Leinwand Muster zu verwenden:
var canvas = document.createElement('canvas');
canvas.width = 10;
canvas.height = 10;
var context = canvas.getContext('2d');
context.fillStyle = "black";
context.fillRect(0, 0, 5, 5);
context.fillStyle= "white";
context.fillRect(5,0,5,5);
color = context.createPattern(canvas, "no-repeat");
Und dann verwenden Sie diese Farbe für den Stil des Merkmals:
var style = new ol.style.Style({
fill: new ol.style.Fill({colorlike: color})
});
dies so nicht funktioniert Ich habe versucht, es mit Bildfüllung zu verwenden:
var style = new ol.style.Style({
image: new ol.style.RegularShape({
fill: new ol.style.Fill({colorlike: color})
})
});
Dies hat auch nicht funktioniert. Farbe und Farbe wird nicht funktionieren
Wie verwende ich ein Canvas-Muster für eine OL-Funktion. Ich möchte nur ein Rechteck mit einer anderen Farbe jede Hälfte. Aber ich kann es nicht durch die OL API oder die Beispiele bekommen, weil sie alle Stil auf Layer oder Bildstil verwenden, aber nicht die genaue Art, wie ich es brauche ...
Irgendwelche Ideen?
Dank im Voraus
Haben Sie versucht, mit einer Breite von 5 zwei Schläge zu tun? –
Wie zeichnest du deine Stile? –