【发布时间】:2018-08-07 03:34:38
【问题描述】:
我有一个 Vue 应用程序,它使用带有 vue-highcart 组件的 highchart 来绘制地图。
我需要根据纬度和经度在这张地图上绘制点,根据Highmaps documentation,我必须使用 Proj4js。
在普通的旧 javascript 中,我只需使用 <script> 将其放入我的页面,但我无法弄清楚如何以 ES6 方式进行操作。我尝试了以下方法:
import Proj4 from 'proj4';
import Highcharts from 'highcharts';
import VueHighcharts from 'vue-highcharts';
import LoadHighmaps from 'highcharts/modules/map';
LoadHighmaps(Highcharts);
Vue.use(VueHighcharts, { Proj4, Highcharts })
// ....
<highmaps :options="options"></highmaps>
而且它不起作用。它默默地失败了。地图已绘制,但地图上未绘制任何点。如果您移除此小提琴上的 Proj4J,您会得到相同的行为:http://jsfiddle.net/r9hugxsu/
有什么帮助吗?提前致谢。
编辑:
我知道我可以简单地将script 标签放在我的 index.html 上。但我只是想知道是否有一种 ES6 方式来执行这种“包含依赖脚本”。
【问题讨论】:
-
你
npm install proj4了吗? (还有其他人呢?) -
是的。在我的
package.json我有"proj4": "^2.4.4"。您认为它应该与该导入一起使用吗?如果我在我的 HTML 上使用script标签,当然,在我捆绑的 vue 应用程序之前,它可以工作。嗯 -
理论上,在不知道该库的情况下,该导入可以工作,是的。
proj4是常规(而非开发)依赖项吗?另外,你能试试import * as Proj4 from 'proj4';吗? -
Proj4 是一个常规依赖项,是的。而
import *也不起作用。这可能没有意义,但是当我将它包含为script时,我有一个名为proj4的全局对象(这是一个函数)。我想它在 highmaps 的某个地方调用proj4(foobar)。但是当我将它作为 ES6 导入时,如果我理解正确,它不会导入到全局。所以 highmaps 必须使用Proj4.proj4(foobar),这就是它失败的地方。这有意义吗? -
我试过
import {proj4} from 'proj4',但效果不佳T_T
标签: highcharts vue.js ecmascript-6 highmaps proj4js