希望的功能为:用Echarts中国地图,在一些坐标点上标记散点图,鼠标悬停时能显示该坐标点的数据。期望的实现效果和Echarts案例类似https://echarts.apache.org/examples/zh/editor.html?c=geo-svg-scatter-simple。只是案例上的地图为冰岛的。希望大师能指导以下下面代码有什么问题?怎么修改? 希望修改后的代码实际可用,也算是丰富了宜搭的调取资源。非常感谢!
JSX设定ID为”main“,然后didMount()的代码为: export function didMount() { const script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/echarts@4.9.0/dist/echarts.min.js'; script.async = true; script.onload = () => this.ditu(); document.body.appendChild(script); }
ditu函数的代码为: export function ditu() {
// 坐标分别为北京、广州、重庆的市政府坐标点 const coordinates = [ [116.397128, 39.916527], [113.271431, 23.135336], [106.50394, 29.546977] ];
const data = [ { name: '北京', value: Math.random() * 100 }, { name: '广州', value: Math.random() * 100 }, { name: '重庆', value: Math.random() * 100 } ];
const dom = document.getElementById('main'); const myChart = window.echarts.init(dom);
const option = { tooltip: { trigger: 'item', formatter: '{b}
{c}' }, series: [ { name: '地图散点', type: 'scatter', coordinateSystem: 'geo', data: data.map((item, idx) => { return { name: item.name, value: [...coordinates[idx], item.value] }; }), symbolSize: 10, itemStyle: { color: '#7FFF00' } }, { type: 'map', map: 'china', roam: false, emphasis: { itemStyle: { areaColor: '#d0e1e5' } } } ] };
myChart.setOption(option); }
我觉得你可以考虑用宜搭大屏地图组件来实现,
钉钉宜搭大屏借助阿里云DataV引擎,实现数据可视化的搭建,帮助有数据展示需求的用户快速完成可视化应用搭建。 为馆理者,运营,设计师,研发人员提供完整的可视化搭建工具。同时提供企业经营分析,业务监控,展示汇报,城市指挥等多种业务场景的。
具体你可以去b站关注一位叫苏星河牛通的博主,他视频讲解链接截图如下:
根据提供的代码,我发现可能存在以下问题:
在didMount函数中,创建的script标签的属性async为true,这意味着脚本会异步加载,可能导致echarts.min.js未加载完毕就执行ditu函数,从而导致报错。建议将async属性设置为false,确保echarts.min.js加载完毕后再执行ditu函数。
在ditu函数中,没有对window.echarts进行判断,如果echarts.min.js加载失败或未加载,会导致window.echarts为undefined,从而导致报错。建议在使用window.echarts前先进行判断,例如:
if (typeof window.echarts === 'undefined') {
console.error('echarts未加载');
return;
}
series: [
{
type: 'map',
map: 'china',
roam: false,
emphasis: {
itemStyle: {
areaColor: '#d0e1e5'
}
}
}
],
以上是我对代码的初步分析,希望对您有所帮助。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。