mirror of
https://github.com/maptiler/tileserver-gl.git
synced 2024-09-11 12:05:41 +03:00
chore: apply camelCase to function and variable names
Signed-off-by: Martin d'Allens <martin.dallens@liberty-rider.com>
This commit is contained in:
parent
9a4ef3dedf
commit
36d3e9d356
@ -79,7 +79,7 @@
|
||||
<div class="details">
|
||||
<h3>{{tileJSON.name}}</h3>
|
||||
<div class="identifier">identifier: {{@key}}{{#if formatted_filesize}} | size: {{formatted_filesize}}{{/if}}</div>
|
||||
<div class="identifier">type: {{#is_vector}}vector{{/is_vector}}{{^is_vector}}raster{{/is_vector}} data {{#if source_type}} | ext: {{source_type}}{{/if}}</div>
|
||||
<div class="identifier">type: {{#is_vector}}vector{{/is_vector}}{{^is_vector}}raster{{/is_vector}} data {{#if sourceType}} | ext: {{sourceType}}{{/if}}</div>
|
||||
<p class="services">
|
||||
services: <a href="{{public_url}}data/{{@key}}.json{{&../key_query}}">TileJSON</a>
|
||||
{{#if xyz_link}}
|
||||
|
22
src/main.js
22
src/main.js
@ -9,7 +9,7 @@ import axios from 'axios';
|
||||
import { server } from './server.js';
|
||||
import MBTiles from '@mapbox/mbtiles';
|
||||
import { isValidHttpUrl } from './utils.js';
|
||||
import { PMtilesOpen, GetPMtilesInfo } from './pmtiles_adapter.js';
|
||||
import { openPMtiles, getPMtilesInfo } from './pmtiles_adapter.js';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
@ -62,7 +62,7 @@ const opts = program.opts();
|
||||
|
||||
console.log(`Starting ${packageJson.name} v${packageJson.version}`);
|
||||
|
||||
const StartServer = (configPath, config) => {
|
||||
const startServer = (configPath, config) => {
|
||||
let publicUrl = opts.public_url;
|
||||
if (publicUrl && publicUrl.lastIndexOf('/') !== publicUrl.length - 1) {
|
||||
publicUrl += '/';
|
||||
@ -81,7 +81,7 @@ const StartServer = (configPath, config) => {
|
||||
});
|
||||
};
|
||||
|
||||
const StartWithInputFile = async (inputFile) => {
|
||||
const startWithInputFile = async (inputFile) => {
|
||||
console.log(`[INFO] Automatically creating config file for ${inputFile}`);
|
||||
console.log(`[INFO] Only a basic preview style will be used.`);
|
||||
console.log(
|
||||
@ -123,8 +123,8 @@ const StartWithInputFile = async (inputFile) => {
|
||||
|
||||
const extension = inputFile.split('.').pop().toLowerCase();
|
||||
if (extension === 'pmtiles') {
|
||||
let FileOpenInfo = PMtilesOpen(inputFile);
|
||||
const metadata = await GetPMtilesInfo(FileOpenInfo);
|
||||
const fileOpenInfo = openPMtiles(inputFile);
|
||||
const metadata = await getPMtilesInfo(fileOpenInfo);
|
||||
|
||||
if (
|
||||
metadata.format === 'pbf' &&
|
||||
@ -174,7 +174,7 @@ const StartWithInputFile = async (inputFile) => {
|
||||
console.log('Run with --verbose to see the config file here.');
|
||||
}
|
||||
|
||||
return StartServer(null, config);
|
||||
return startServer(null, config);
|
||||
} else {
|
||||
if (isValidHttpUrl(inputFile)) {
|
||||
console.log(
|
||||
@ -235,7 +235,7 @@ const StartWithInputFile = async (inputFile) => {
|
||||
console.log('Run with --verbose to see the config file here.');
|
||||
}
|
||||
|
||||
return StartServer(null, config);
|
||||
return startServer(null, config);
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -251,7 +251,7 @@ fs.stat(path.resolve(opts.config), async (err, stats) => {
|
||||
}
|
||||
|
||||
if (inputFile) {
|
||||
return StartWithInputFile(inputFile);
|
||||
return startWithInputFile(inputFile);
|
||||
} else {
|
||||
// try to find in the cwd
|
||||
const files = fs.readdirSync(process.cwd());
|
||||
@ -266,7 +266,7 @@ fs.stat(path.resolve(opts.config), async (err, stats) => {
|
||||
}
|
||||
if (inputFile) {
|
||||
console.log(`No input file specified, using ${inputFile}`);
|
||||
return StartWithInputFile(inputFile);
|
||||
return startWithInputFile(inputFile);
|
||||
} else {
|
||||
const url =
|
||||
'https://github.com/maptiler/tileserver-gl/releases/download/v1.3.0/zurich_switzerland.mbtiles';
|
||||
@ -283,7 +283,7 @@ fs.stat(path.resolve(opts.config), async (err, stats) => {
|
||||
});
|
||||
|
||||
response.data.pipe(writer);
|
||||
writer.on('finish', () => StartWithInputFile(filename));
|
||||
writer.on('finish', () => startWithInputFile(filename));
|
||||
writer.on('error', (err) =>
|
||||
console.error(`Error writing file: ${err}`),
|
||||
);
|
||||
@ -294,6 +294,6 @@ fs.stat(path.resolve(opts.config), async (err, stats) => {
|
||||
}
|
||||
} else {
|
||||
console.log(`Using specified config file from ${opts.config}`);
|
||||
return StartServer(opts.config, null);
|
||||
return startServer(opts.config, null);
|
||||
}
|
||||
});
|
||||
|
@ -11,7 +11,7 @@ class PMTilesFileSource {
|
||||
}
|
||||
async getBytes(offset, length) {
|
||||
const buffer = Buffer.alloc(length);
|
||||
await ReadFileBytes(this.fd, buffer, offset);
|
||||
await readFileBytes(this.fd, buffer, offset);
|
||||
const ab = buffer.buffer.slice(
|
||||
buffer.byteOffset,
|
||||
buffer.byteOffset + buffer.byteLength,
|
||||
@ -26,7 +26,7 @@ class PMTilesFileSource {
|
||||
* @param buffer
|
||||
* @param offset
|
||||
*/
|
||||
async function ReadFileBytes(fd, buffer, offset) {
|
||||
async function readFileBytes(fd, buffer, offset) {
|
||||
return new Promise((resolve, reject) => {
|
||||
fs.read(fd, buffer, 0, buffer.length, offset, (err) => {
|
||||
if (err) {
|
||||
@ -41,7 +41,7 @@ async function ReadFileBytes(fd, buffer, offset) {
|
||||
*
|
||||
* @param FilePath
|
||||
*/
|
||||
export function PMtilesOpen(FilePath) {
|
||||
export function openPMtiles(FilePath) {
|
||||
let pmtiles = undefined;
|
||||
|
||||
if (isValidHttpUrl(FilePath)) {
|
||||
@ -59,12 +59,12 @@ export function PMtilesOpen(FilePath) {
|
||||
*
|
||||
* @param pmtiles
|
||||
*/
|
||||
export async function GetPMtilesInfo(pmtiles) {
|
||||
export async function getPMtilesInfo(pmtiles) {
|
||||
const header = await pmtiles.getHeader();
|
||||
const metadata = await pmtiles.getMetadata();
|
||||
|
||||
//Add missing metadata from header
|
||||
metadata['format'] = GetPmtilesTileType(header.tileType).type;
|
||||
metadata['format'] = getPmtilesTileType(header.tileType).type;
|
||||
metadata['minzoom'] = header.minZoom;
|
||||
metadata['maxzoom'] = header.maxZoom;
|
||||
|
||||
@ -103,23 +103,23 @@ export async function GetPMtilesInfo(pmtiles) {
|
||||
* @param x
|
||||
* @param y
|
||||
*/
|
||||
export async function GetPMtilesTile(pmtiles, z, x, y) {
|
||||
export async function getPMtilesTile(pmtiles, z, x, y) {
|
||||
const header = await pmtiles.getHeader();
|
||||
const TileType = GetPmtilesTileType(header.tileType);
|
||||
const tileType = getPmtilesTileType(header.tileType);
|
||||
let zxyTile = await pmtiles.getZxy(z, x, y);
|
||||
if (zxyTile && zxyTile.data) {
|
||||
zxyTile = Buffer.from(zxyTile.data);
|
||||
} else {
|
||||
zxyTile = undefined;
|
||||
}
|
||||
return { data: zxyTile, header: TileType.header };
|
||||
return { data: zxyTile, header: tileType.header };
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param typenum
|
||||
*/
|
||||
function GetPmtilesTileType(typenum) {
|
||||
function getPmtilesTileType(typenum) {
|
||||
let head = {};
|
||||
let tileType;
|
||||
switch (typenum) {
|
||||
|
@ -12,9 +12,9 @@ import { VectorTile } from '@mapbox/vector-tile';
|
||||
|
||||
import { getTileUrls, isValidHttpUrl, fixTileJSONCenter } from './utils.js';
|
||||
import {
|
||||
PMtilesOpen,
|
||||
GetPMtilesInfo,
|
||||
GetPMtilesTile,
|
||||
openPMtiles,
|
||||
getPMtilesInfo,
|
||||
getPMtilesTile,
|
||||
} from './pmtiles_adapter.js';
|
||||
|
||||
export const serve_data = {
|
||||
@ -53,8 +53,8 @@ export const serve_data = {
|
||||
) {
|
||||
return res.status(404).send('Out of bounds');
|
||||
}
|
||||
if (item.source_type === 'pmtiles') {
|
||||
let tileinfo = await GetPMtilesTile(item.source, z, x, y);
|
||||
if (item.sourceType === 'pmtiles') {
|
||||
let tileinfo = await getPMtilesTile(item.source, z, x, y);
|
||||
if (tileinfo == undefined || tileinfo.data == undefined) {
|
||||
return res.status(404).send('Not found');
|
||||
} else {
|
||||
@ -99,7 +99,7 @@ export const serve_data = {
|
||||
|
||||
return res.status(200).send(data);
|
||||
}
|
||||
} else if (item.source_type === 'mbtiles') {
|
||||
} else if (item.sourceType === 'mbtiles') {
|
||||
item.source.getTile(z, x, y, (err, data, headers) => {
|
||||
let isGzipped;
|
||||
if (err) {
|
||||
@ -223,11 +223,11 @@ export const serve_data = {
|
||||
}
|
||||
|
||||
let source;
|
||||
let source_type;
|
||||
let sourceType;
|
||||
if (inputType === 'pmtiles') {
|
||||
source = PMtilesOpen(inputFile);
|
||||
source_type = 'pmtiles';
|
||||
const metadata = await GetPMtilesInfo(source);
|
||||
source = openPMtiles(inputFile);
|
||||
sourceType = 'pmtiles';
|
||||
const metadata = await getPMtilesInfo(source);
|
||||
|
||||
tileJSON['name'] = id;
|
||||
tileJSON['format'] = 'pbf';
|
||||
@ -245,7 +245,7 @@ export const serve_data = {
|
||||
tileJSON = options.dataDecoratorFunc(id, 'tilejson', tileJSON);
|
||||
}
|
||||
} else if (inputType === 'mbtiles') {
|
||||
source_type = 'mbtiles';
|
||||
sourceType = 'mbtiles';
|
||||
const sourceInfoPromise = new Promise((resolve, reject) => {
|
||||
source = new MBTiles(inputFile + '?mode=ro', (err) => {
|
||||
if (err) {
|
||||
@ -285,7 +285,7 @@ export const serve_data = {
|
||||
tileJSON,
|
||||
publicUrl,
|
||||
source,
|
||||
source_type,
|
||||
sourceType,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
@ -25,9 +25,9 @@ import {
|
||||
fixTileJSONCenter,
|
||||
} from './utils.js';
|
||||
import {
|
||||
PMtilesOpen,
|
||||
GetPMtilesInfo,
|
||||
GetPMtilesTile,
|
||||
openPMtiles,
|
||||
getPMtilesInfo,
|
||||
getPMtilesTile,
|
||||
} from './pmtiles_adapter.js';
|
||||
import { renderOverlay, renderWatermark, renderAttribution } from './render.js';
|
||||
|
||||
@ -398,7 +398,7 @@ const respondImage = (
|
||||
if (mode === 'tile' && tileMargin === 0) {
|
||||
pool = item.map.renderers[scale];
|
||||
} else {
|
||||
pool = item.map.renderers_static[scale];
|
||||
pool = item.map.renderersStatic[scale];
|
||||
}
|
||||
pool.acquire((err, renderer) => {
|
||||
const mlglZ = Math.max(0, z - 1);
|
||||
@ -471,14 +471,14 @@ const respondImage = (
|
||||
image.resize(width * scale, height * scale);
|
||||
}
|
||||
|
||||
const composite_array = [];
|
||||
const composites = [];
|
||||
if (overlay) {
|
||||
composite_array.push({ input: overlay });
|
||||
composites.push({ input: overlay });
|
||||
}
|
||||
if (item.watermark) {
|
||||
const canvas = renderWatermark(width, height, scale, item.watermark);
|
||||
|
||||
composite_array.push({ input: canvas.toBuffer() });
|
||||
composites.push({ input: canvas.toBuffer() });
|
||||
}
|
||||
|
||||
if (mode === 'static' && item.staticAttributionText) {
|
||||
@ -489,11 +489,11 @@ const respondImage = (
|
||||
item.staticAttributionText,
|
||||
);
|
||||
|
||||
composite_array.push({ input: canvas.toBuffer() });
|
||||
composites.push({ input: canvas.toBuffer() });
|
||||
}
|
||||
|
||||
if (composite_array.length > 0) {
|
||||
image.composite(composite_array);
|
||||
if (composites.length > 0) {
|
||||
image.composite(composites);
|
||||
}
|
||||
|
||||
const formatQuality = (options.formatQuality || {})[format];
|
||||
@ -847,9 +847,9 @@ export const serve_rendered = {
|
||||
add: async (options, repo, params, id, publicUrl, dataResolver) => {
|
||||
const map = {
|
||||
renderers: [],
|
||||
renderers_static: [],
|
||||
renderersStatic: [],
|
||||
sources: {},
|
||||
source_types: {},
|
||||
sourceTypes: {},
|
||||
};
|
||||
|
||||
let styleJSON;
|
||||
@ -888,7 +888,7 @@ export const serve_rendered = {
|
||||
const parts = req.url.split('/');
|
||||
const sourceId = parts[2];
|
||||
const source = map.sources[sourceId];
|
||||
const source_type = map.source_types[sourceId];
|
||||
const sourceType = map.sourceTypes[sourceId];
|
||||
const sourceInfo = styleJSON.sources[sourceId];
|
||||
|
||||
const z = parts[3] | 0;
|
||||
@ -896,8 +896,8 @@ export const serve_rendered = {
|
||||
const y = parts[5].split('.')[0] | 0;
|
||||
const format = parts[5].split('.')[1];
|
||||
|
||||
if (source_type === 'pmtiles') {
|
||||
let tileinfo = await GetPMtilesTile(source, z, x, y);
|
||||
if (sourceType === 'pmtiles') {
|
||||
let tileinfo = await getPMtilesTile(source, z, x, y);
|
||||
let data = tileinfo.data;
|
||||
let headers = tileinfo.header;
|
||||
if (data == undefined) {
|
||||
@ -931,7 +931,7 @@ export const serve_rendered = {
|
||||
|
||||
callback(null, response);
|
||||
}
|
||||
} else if (source_type === 'mbtiles') {
|
||||
} else if (sourceType === 'mbtiles') {
|
||||
source.getTile(z, x, y, (err, data, headers) => {
|
||||
if (err) {
|
||||
if (options.verbose)
|
||||
@ -1092,7 +1092,7 @@ export const serve_rendered = {
|
||||
|
||||
const queue = [];
|
||||
for (const name of Object.keys(styleJSON.sources)) {
|
||||
let source_type;
|
||||
let sourceType;
|
||||
let source = styleJSON.sources[name];
|
||||
let url = source.url;
|
||||
if (
|
||||
@ -1113,10 +1113,10 @@ export const serve_rendered = {
|
||||
}
|
||||
|
||||
let inputFile;
|
||||
const DataInfo = dataResolver(dataId);
|
||||
if (DataInfo.inputFile) {
|
||||
inputFile = DataInfo.inputFile;
|
||||
source_type = DataInfo.fileType;
|
||||
const dataInfo = dataResolver(dataId);
|
||||
if (dataInfo.inputFile) {
|
||||
inputFile = dataInfo.inputFile;
|
||||
sourceType = dataInfo.fileType;
|
||||
} else {
|
||||
console.error(`ERROR: data "${inputFile}" not found!`);
|
||||
process.exit(1);
|
||||
@ -1129,10 +1129,10 @@ export const serve_rendered = {
|
||||
}
|
||||
}
|
||||
|
||||
if (source_type === 'pmtiles') {
|
||||
map.sources[name] = PMtilesOpen(inputFile);
|
||||
map.source_types[name] = 'pmtiles';
|
||||
const metadata = await GetPMtilesInfo(map.sources[name]);
|
||||
if (sourceType === 'pmtiles') {
|
||||
map.sources[name] = openPMtiles(inputFile);
|
||||
map.sourceTypes[name] = 'pmtiles';
|
||||
const metadata = await getPMtilesInfo(map.sources[name]);
|
||||
|
||||
if (!repoobj.dataProjWGStoInternalWGS && metadata.proj4) {
|
||||
// how to do this for multiple sources with different proj4 defs?
|
||||
@ -1177,7 +1177,7 @@ export const serve_rendered = {
|
||||
console.error(err);
|
||||
return;
|
||||
}
|
||||
map.source_types[name] = 'mbtiles';
|
||||
map.sourceTypes[name] = 'mbtiles';
|
||||
|
||||
if (!repoobj.dataProjWGStoInternalWGS && info.proj4) {
|
||||
// how to do this for multiple sources with different proj4 defs?
|
||||
@ -1236,7 +1236,7 @@ export const serve_rendered = {
|
||||
const minPoolSize = minPoolSizes[i];
|
||||
const maxPoolSize = Math.max(minPoolSize, maxPoolSizes[j]);
|
||||
map.renderers[s] = createPool(s, 'tile', minPoolSize, maxPoolSize);
|
||||
map.renderers_static[s] = createPool(
|
||||
map.renderersStatic[s] = createPool(
|
||||
s,
|
||||
'static',
|
||||
minPoolSize,
|
||||
@ -1250,7 +1250,7 @@ export const serve_rendered = {
|
||||
item.map.renderers.forEach((pool) => {
|
||||
pool.close();
|
||||
});
|
||||
item.map.renderers_static.forEach((pool) => {
|
||||
item.map.renderersStatic.forEach((pool) => {
|
||||
pool.close();
|
||||
});
|
||||
}
|
||||
|
@ -179,15 +179,15 @@ function start(opts) {
|
||||
item,
|
||||
id,
|
||||
opts.publicUrl,
|
||||
(StyleSourceId, protocol) => {
|
||||
(styleSourceId, protocol) => {
|
||||
let dataItemId;
|
||||
for (const id of Object.keys(data)) {
|
||||
if (id === StyleSourceId) {
|
||||
if (id === styleSourceId) {
|
||||
// Style id was found in data ids, return that id
|
||||
dataItemId = id;
|
||||
} else {
|
||||
const fileType = Object.keys(data[id])[0];
|
||||
if (data[id][fileType] === StyleSourceId) {
|
||||
if (data[id][fileType] === styleSourceId) {
|
||||
// Style id was found in data filename, return the id that filename belong to
|
||||
dataItemId = id;
|
||||
}
|
||||
@ -199,21 +199,21 @@ function start(opts) {
|
||||
} else {
|
||||
if (!allowMoreData) {
|
||||
console.log(
|
||||
`ERROR: style "${item.style}" using unknown file "${StyleSourceId}"! Skipping...`,
|
||||
`ERROR: style "${item.style}" using unknown file "${styleSourceId}"! Skipping...`,
|
||||
);
|
||||
return undefined;
|
||||
} else {
|
||||
let id =
|
||||
StyleSourceId.substr(0, StyleSourceId.lastIndexOf('.')) ||
|
||||
StyleSourceId;
|
||||
if (isValidHttpUrl(StyleSourceId)) {
|
||||
styleSourceId.substr(0, styleSourceId.lastIndexOf('.')) ||
|
||||
styleSourceId;
|
||||
if (isValidHttpUrl(styleSourceId)) {
|
||||
id =
|
||||
fnv1a(StyleSourceId) + '_' + id.replace(/^.*\/(.*)$/, '$1');
|
||||
fnv1a(styleSourceId) + '_' + id.replace(/^.*\/(.*)$/, '$1');
|
||||
}
|
||||
while (data[id]) id += '_'; //if the data source id already exists, add a "_" untill it doesn't
|
||||
//Add the new data source to the data array.
|
||||
data[id] = {
|
||||
[protocol]: StyleSourceId,
|
||||
[protocol]: styleSourceId,
|
||||
};
|
||||
|
||||
return id;
|
||||
@ -236,15 +236,15 @@ function start(opts) {
|
||||
item,
|
||||
id,
|
||||
opts.publicUrl,
|
||||
(StyleSourceId) => {
|
||||
function dataResolver(styleSourceId) {
|
||||
let fileType;
|
||||
let inputFile;
|
||||
for (const id of Object.keys(data)) {
|
||||
fileType = Object.keys(data[id])[0];
|
||||
if (StyleSourceId == id) {
|
||||
if (styleSourceId == id) {
|
||||
inputFile = data[id][fileType];
|
||||
break;
|
||||
} else if (data[id][fileType] == StyleSourceId) {
|
||||
} else if (data[id][fileType] == styleSourceId) {
|
||||
inputFile = data[id][fileType];
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user