Appearance
散点图
地图散点图组件,散点图是用以展示海量独立数据点的可视化类型,支持圆形图形或用户自定义图标。目前支持百万级的数据点展示。
基础示例
vue
<template>
<tlbs-map
ref="mapRef"
api-key="OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"
:center="center"
:zoom="zoom"
:control="control"
@map_inited="onMapInited"
>
<tlbs-dot
ref="dotRef"
:data="dotData"
:styles="styles"
:select-options="selectOptions"
@click="onClick"
/>
<div class="control-container">
<button @click.stop="getLayerInstance">
打印散点图实例
</button>
</div>
</tlbs-map>
</template>
<script lang="ts">
import { defineComponent, onMounted, ref } from 'vue-demi';
export default defineComponent({
name: 'DotDemo',
setup() {
const mapRef = ref(null);
const dotRef = ref(null);
const center = ref({ lat: 39.984104, lng: 116.307503 });
const zoom = ref(8);
const dotData = ref([]);
onMounted(async () => {
await loadDotData();
dotData.value = (window as any).pointData || [];
});
const onClick = (e: TMap.visualization.VisualEvent) => {
console.log(e.detail.dot);
};
const onMapInited = () => {
// 地图加载完成后,可以获取地图实例、散点图实例,调用地图实例、散点图实例方法
console.log(mapRef.value.map);
console.log(dotRef.value.dot);
};
const getLayerInstance = () => {
// 可以获取散点图实例,调用散点图实例方法
console.log(dotRef.value.dot);
};
return {
center,
zoom,
control: {
scale: {},
zoom: {
position: 'topRight',
},
},
mapRef,
dotRef,
dotData,
styles: {
type: 'circle', // 圆形样式
fillColor: '#1CD5FF', // 填充颜色
radius: 5, // 原型半径
},
selectOptions: { // 拾取配置
action: 'hover', // 拾取动作
style: {
type: 'circle', // 圆形样式
fillColor: '#1CD5FF', // 填充颜色
radius: 5, // 原型半径
},
enableHighlight: false, // 是否使用高亮效果
},
onClick,
onMapInited,
getLayerInstance,
};
},
});
const loadDotData = () => new Promise((resolve) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://mapapi.qq.com/web/lbs/visualizationApi/demo/data/Dot.js';
script.addEventListener('load', () => {
resolve('loaded');
});
document.body.appendChild(script);
});
</script>props
| 名称 | 类型 | 说明 |
|---|---|---|
| data | TMap.visualization.DotPoint[] | 散点数据,DotPoint类型参考官网文档 |
| styles | Object | 散点图样式集合,key-value形式。key对应数据中的styleId,value为样式对象,需符合 CircleDotStyle 或 ImageDotStyle 对象规范,参考官网文档。 |
| selectOptions | TMap.visualization.VisualSelectOptions | 拾取配置,可设置拾取动作、选中样式、是否使用高亮效果,其中选中样式需符合CircleDotStyle或ImageDotStyle对象规范,参考官网文档。 |
| enableBloom | Boolean | 散点图呈现泛光效果,默认为false,参考官网文档。 |
| options | TMap.visualization.DotOptions | 除了上述属性的其他配置参数,参考TMap.visualization.DotOptions |
TMap.visualization.DotOptions
| 属性名称 | 类型 | 说明 |
|---|---|---|
| faceTo | String | 散点固定的朝向,可取map(贴地)或screen(直立),默认为screen。 |
| selectOptions | VisualSelectOptions | 拾取配置,可设置拾取动作、选中样式、是否使用高亮效果,其中选中样式需符合CircleDotStyle或ImageDotStyle对象规范。 |
| animation | RadiatedAnimationOptions | BeatingAnimationOptions | 散点动画参数 (1.1.0及以上版本即将下线,请使用processAnimation设置动画属性)。 |
| enableBloom | Boolean | 散点图呈现泛光效果,默认为false。 |
| toggleAnimation | AnimationOptions | 开关动画配置参数,不配置则无开关动画效果,支持animationType为‘fade’淡入淡出一种类型,默认为‘fade’淡入淡出 |
| processAnimation | DotAnimationOptions | 过程动画配置参数,不配置则无过程动画 |
| zIndex | Number | 图层绘制顺序。 |
| minZoom | Number | 图层最小缩放层级,当地图缩放层级小于该值时该图层不显示,默认为3。 |
| maxZoom | Number | 图层最大缩放层级,当地图缩放层级大于该值时该图层不显示,默认为20。 |
事件
| 名称 | 参数 | 说明 |
|---|---|---|
| click | evt: TMap.VisualEvent | 点击散点时触发,参考官网文档 |
| hover | evt: TMap.VisualEvent | 鼠标悬停目标改变时触发,若悬停在图形外部,则返回结果中的拾取对象为null,参考官网文档 |
组件实例属性
| 名称 | 类型 | 说明 |
|---|---|---|
| dot | TMap.visualization.Dot | 散点图图层实例。实例方法参考TMap.visualization.Dot方法 |
TMap.visualization.Dot方法
| 方法 | 返回值 | 说明 |
|---|---|---|
| setStyles(styles: Object) | this | 设置样式集合,styles为key-value形式。key对应数据中的styleId,value为样式对象,需符合DotCircleStyle或DotImageStyle对象规范。 |
| setFaceTo(faceTo: String) | this | 设置散点朝向,可取map(贴地)或screen(直立)。 |
| setData(dataList:DotPoint[]) | this | 设置数据。 |
| getData() | DotPoint[] | 获取数据。 |
| setZIndex(zIndex: Number) | this | 设置图层绘制顺序。 |
| getZIndex() | Number | 获取图层绘制顺序。 |
| setMinZoom(minZoom: Number) | this | 设置图层最小缩放层级,当地图缩放层级小于该值时该图层不显示。 |
| getMinZoom() | Number | 获取图层最小缩放层级。 |
| setMaxZoom(maxZoom: Number) | this | 设置图层最大缩放层级,当地图缩放层级大于该值时该图层不显示。 |
| getMaxZoom() | Number | 获取图层最大缩放层级。 |
| addTo(map:Map) | this | 添加至指定地图实例。 |
| updateAnimation(type:String,animationOptions:AnimationOptions) | this | 更新指定类别动画参数,type支持'toggle','process'。 |
| getAnimation(type:String) | AnimationOptions | 获取指定类型的动画参数,type支持'toggle','process'。 |
| getSelectOptions() | VisualSelectOptions | 获取拾取配置。 |
| setSelectOptions(selectOptions: VisualSelectOptions) | this | 设置拾取配置。 |
| show() | this | 显示图层。 |
| hide() | this | 隐藏图层。 |
| remove() | this | 从地图中删除图层。 |
| destroy() | this | 销毁图层对象。 |