现场演示!
导言
墨水图 是基于 打开标签 ,并将根据给定的JSON规格生成PNG格式的地图.
墨水图 可以处理长期运行的工作(例如300 dpi中的A0格式)并提供一个跟踪工作进度的API. 在用户浏览器支持的情况下,它使用背景中的服务人员 屏幕外凸起,如果没有,则会无缝地倒回主线.
请注意: 墨水图 已完全获得 法国生态环境部 作为其笛卡尔网络绘图工具箱的一部分,在此托管: https://adullyact.net/projects/descartes/ 互联网档案馆的存檔,存档日期2013-12-02
使用量
基础
要将图书馆纳入您的项目:
$ npm install --save @camptocamp/inkmap
然后从 inkmap 软件包 :
import { print, downloadBlob } from '@camptocamp/inkmap';
print({
layers: [ ... ],
projection: 'EPSG:4326',
...
}).then(downloadBlob);
高级
墨水图 通过使用由监察员提供的可观察设备,提供高级工作监测 rxjs (韩语) 图书馆.
可观察者与应许是不同的,因为他们能爽约 多个值 而不是仅仅一个,而且非常适合进度报告.
使用可观察的,简单地叫它 subscribe() 作为参数的函数。 此函数在新值释放时会被称为, 例如 :
import { getJobStatus } from '@camptocamp/inkmap';
...
getJobStatus(jobId).subscribe((jobStatus) => {
// do something with the status
});
请注意: 长寿可观察者 (即永远无法完成的可观察者) unsubscribe() 当释放的值不再需要时。 开放订阅可观察器可能会造成内存出漏.
扶持服务人员
墨水图 能够 并将 如果有机会,请使用专门的服务人员从事印刷工作。 这提供了以下条件: 优点 :
- 任务运行在一个单独的线程中, 意味着用户导航不会受到任何 CPU 密集型任务的影响
- 服务员没有绑定在窗口或标签上,因此在标签被关闭时(甚至浏览器被关闭时,视平台而定)工作会继续运行
- 当打印工作完成( 尚未执行) 时, 可能会向用户发送按压通知
为了实现这一点 inkmap-worker.js 位于 dist 文件夹必须在与应用程序相同的路径上发布
使用墨水图。 。 。 .
工人档案可以使用符号链接或实际复制文件的方式发布,例如在应用程序构建管道中.
如果使用 Webpack 来构建应用程序,一个解决方案就是使用 复制 Webpack Plugin 软件包数字 :
export default {
...
plugins: [
new CopyWebpackPlugin([
{
from: 'node_modules/@camptocamp/inkmap/dist/inkmap-worker.js',
to: 'dist'
},
]),
],
...
}
API 密码
重要注意: 所有 API 函数都命名为来自 inkmap 软件包.
见 API 文档 网站.
建筑
在引擎盖下, inkmap 将尝试在它被命名的页面上安装一个服务员。 然后由服务员负责
将所有映射图像和数据装入,将它们组合在一起,并返回应用程序代码.
捐款
见 捐款。 。 。 .