Files
openlayers/rendering/cases/layer-vectortile-rotate-text/main.js
2020-07-11 17:55:34 +02:00

45 lines
1.3 KiB
JavaScript

import MVT from '../../../src/ol/format/MVT.js';
import Map from '../../../src/ol/Map.js';
import VectorTileLayer from '../../../src/ol/layer/VectorTile.js';
import VectorTileSource from '../../../src/ol/source/VectorTile.js';
import View from '../../../src/ol/View.js';
import {Stroke, Style, Text} from '../../../src/ol/style.js';
import {createXYZ} from '../../../src/ol/tilegrid.js';
new Map({
layers: [
new VectorTileLayer({
style: function (feature, resolution) {
const name = feature.get('name');
if (feature.getGeometry().getType() === 'LineString' && name) {
return new Style({
stroke: new Stroke({
width: 2,
color: 'red',
}),
text: new Text({
text: name,
font: 'italic bold 18px Ubuntu',
placement: 'line',
}),
});
}
},
source: new VectorTileSource({
format: new MVT(),
tileGrid: createXYZ(),
url: '/data/tiles/mapbox-streets-v6/{z}/{x}/{y}.vector.pbf',
transition: 0,
}),
}),
],
target: 'map',
view: new View({
center: [1825927.7316762917, 6143091.089223046],
rotation: Math.PI / 2,
zoom: 14,
}),
});
render({message: 'Vector tile layer has upright labels', tolerance: 0.01});