如何在没有浏览器的情况下创建返回canvas .p​​ng的API?

时间:2016-06-03 07:37:22

标签: json node.js api canvas openlayers-3

我需要创建API,它将输入带有功能的json文件,输出将是png image(或base64),它将代表OpenLayers 3 map(canvas.toDataUrl())的画布。我不需要在浏览器中显示地图甚至打开浏览器。只是API作为一些url / api / getMapImage,它将返回输入json的图像。我想使用NodeJS。我已经有了javascript来执行所有必需的操作(比如定义地图,将画布作为图像)。

这可能吗?

1 个答案:

答案 0 :(得分:0)

目前还不是很清楚你想要做什么以及怎么做,没有代码示例和迄今为止你尝试过的信息,所以我只能指出你正确的方向:

有一个node-canvas模块可以让您执行this example

之类的操作
var Canvas = require('canvas')
  , Image = Canvas.Image
  , canvas = new Canvas(200, 200)
  , ctx = canvas.getContext('2d');

ctx.font = '30px Impact';
ctx.rotate(.1);
ctx.fillText("Awesome!", 50, 100);

var te = ctx.measureText('Awesome!');
ctx.strokeStyle = 'rgba(0,0,0,0.5)';
ctx.beginPath();
ctx.lineTo(50, 102);
ctx.lineTo(50 + te.width, 102);
ctx.stroke();

console.log('<img src="' + canvas.toDataURL() + '" />');

您还可以在Node中查看有关网络抓取模块的my recent answer。他们可以访问带有JS的网页,但无需打开浏览器窗口 - 如果您需要其他特定于浏览器的JS运行,它可能会更好地运行。

此外,还有openlayers npm模块对您有用。

如果有这么模糊的问题,很难更具体,但希望你能到达某个地方。