Files
openlayers/examples/osm-vector-tiles.js
Tim Schaub 054af09032 Make code prettier
This updates ESLint and our shared eslint-config-openlayers to use Prettier.  Most formatting changes were automatically applied with this:

    npm run lint -- --fix

A few manual changes were required:

 * In `examples/offscreen-canvas.js`, the `//eslint-disable-line` comment needed to be moved to the appropriate line to disable the error about the `'worker-loader!./offscreen-canvas.worker.js'` import.
 * In `examples/webpack/exapmle-builder.js`, spaces could not be added after a couple `function`s for some reason.  While editing this, I reworked `ExampleBuilder` to be a class.
 * In `src/ol/format/WMSGetFeatureInfo.js`, the `// @ts-ignore` comment needed to be moved down one line so it applied to the `parsersNS` argument.
2020-04-06 12:54:09 -06:00

96 lines
2.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import Map from '../src/ol/Map.js';
import TopoJSON from '../src/ol/format/TopoJSON.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 {Fill, Stroke, Style} from '../src/ol/style.js';
import {fromLonLat} from '../src/ol/proj.js';
const key = 'uZNs91nMR-muUTP99MyBSg';
const roadStyleCache = {};
const roadColor = {
'major_road': '#776',
'minor_road': '#ccb',
'highway': '#f39',
};
const buildingStyle = new Style({
fill: new Fill({
color: '#666',
opacity: 0.4,
}),
stroke: new Stroke({
color: '#444',
width: 1,
}),
});
const waterStyle = new Style({
fill: new Fill({
color: '#9db9e8',
}),
});
const roadStyle = function (feature) {
const kind = feature.get('kind');
const railway = feature.get('railway');
const sort_key = feature.get('sort_key');
const styleKey = kind + '/' + railway + '/' + sort_key;
let style = roadStyleCache[styleKey];
if (!style) {
let color, width;
if (railway) {
color = '#7de';
width = 1;
} else {
color = roadColor[kind];
width = kind == 'highway' ? 1.5 : 1;
}
style = new Style({
stroke: new Stroke({
color: color,
width: width,
}),
zIndex: sort_key,
});
roadStyleCache[styleKey] = style;
}
return style;
};
const map = new Map({
layers: [
new VectorTileLayer({
source: new VectorTileSource({
attributions:
'© OpenStreetMap contributors, Whos On First, ' +
'Natural Earth, and openstreetmapdata.com',
format: new TopoJSON({
layerName: 'layer',
layers: ['water', 'roads', 'buildings'],
}),
maxZoom: 19,
url:
'https://tile.nextzen.org/tilezen/vector/v1/all/{z}/{x}/{y}.topojson?api_key=' +
key,
}),
style: function (feature, resolution) {
switch (feature.get('layer')) {
case 'water':
return waterStyle;
case 'roads':
return roadStyle(feature);
case 'buildings':
return resolution < 10 ? buildingStyle : null;
default:
return null;
}
},
}),
],
target: 'map',
view: new View({
center: fromLonLat([-74.0064, 40.7142]),
maxZoom: 19,
zoom: 15,
}),
});