echarts geo3d地图中点击地图外部数据列表之后自动显示相对应的地图tooltip
时间: 2024-10-01 09:07:56 浏览: 69
3D地球+自定义tooltip,自定义样式完美显示
在ECharts的Geo3D地图中,为了实现地图外部数据列表点击后自动显示对应地图tooltip的功能,你需要结合echarts本身的事件监听以及一些自定义逻辑。首先,你需要配置Geo3D图,并设置数据绑定。然后,你可以创建一个数据列表,包含每个区域的ID或唯一标识。
步骤如下:
1. 初始化Geo3D图表,例如:
```javascript
var myChart = echarts.init(document.getElementById('main'));
myChart.setOption({
series: [{
type: 'geo3d',
map: 'your_map_name', // 你的地图名称,如'China'
data: yourGeoData, // 区域的数据,包含经纬度和标签信息
tooltip: { // 设置默认的Tooltip
trigger: 'item',
formatter: function (params) {
return params.name;
}
}
}]
});
```
2. 配置地图外的列表,通常是一个div元素,用于存储数据项及其对应的地理区域ID:
```html
<div id="dataList">
<ul>
<!-- 根据实际数据生成li -->
<li data-region-id="area1">区域1</li>
<!-- 更多区域... -->
</ul>
</div>
```
3. 添加事件监听,当用户点击数据列表时,获取对应地区ID并显示对应的tooltip:
```javascript
document.getElementById('dataList').addEventListener('click', function(e) {
var target = e.target; // 获取被点击的对象
if (target.tagName === 'LI') {
var regionId = target.dataset.regionId; // 获取地区ID
myChart.dispatchAction({
type: 'showTip', // 显示tooltip
seriesIndex: 0, // 地图系列索引
dataIndex: find对应地理位置的索引(regionId, yourGeoData), // 找到该地区的索引
});
}
});
// 自定义函数find对应地理位置的索引
function findIndexById(id, data) {
for (let i = 0; i < data.length; i++) {
if (data[i].id === id) return i;
}
return -1; // 如果未找到则返回-1
}
```
阅读全文