Skip to content

圆形

地图圆形组件,表示地图上的多个圆形,可以自定义每个圆形的样式。

基础示例

vue
<template>
  <tlbs-map
    ref="mapRef"
    api-key="OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"
    :center="center"
    :zoom="zoom"
    :control="control"
    @click="onClick"
    @map_inited="onMapInited"
  >
    <tlbs-multi-circle
      ref="circleRef"
      :geometries="geometries"
      :styles="styles"
      :options="options"
    />
    <div class="control-container">
      <button @click.stop="getLayerInstance">
        打印圆形图实例
      </button>
    </div>
  </tlbs-map>
</template>

<script lang="ts">
import { defineComponent, ref } from 'vue-demi';

export default defineComponent({
  name: 'CircleDemo',
  setup() {
    const mapRef = ref(null);
    const circleRef = ref(null);
    const center = ref({ lat: 39.91799, lng: 116.397027 });
    const zoom = ref(15);

    const onMapInited = () => {
      // 地图加载完成后,可以获取地图实例、窗口实例,调用地图实例、窗口实例方法
      console.log(mapRef.value.map);
      console.log(circleRef.value.circle);
    };

    const getLayerInstance = () => {
      // 可以获取窗口实例,调用窗口实例方法
      console.log(circleRef.value.circle);
    };
    const onClick = (e: Event) => {
      console.log(e);
    };
    return {
      center,
      zoom,
      onClick,
      onMapInited,
      getLayerInstance,
      control: {
        scale: {},
        zoom: {
          position: 'topRight',
        },
      },
      mapRef,
      circleRef,
      geometries: [
        { styleId: 'circle', radius: 500,  center: { lat: 39.91799, lng: 116.397027 } },
      ],
      styles: {
        circle: {
          color: 'rgba(41,91,255,0.16)',
          showBorder: true,
          borderColor: 'rgba(41,91,255,1)',
          borderWidth: 2,
        },
      },
      options: {
        zIndex: 1,
      },
    };
  },
});
</script>

props

名称类型说明
idString图层 id,参考官网文档
styles{ [key: string]: TMap.MultiCircleStyleHash }圆形的相关样式,参考官网文档
geometriesTMap.CircleGeometry[]圆形数据数组,参考官网文档
optionsTMap.MultiCircleOptions除了上述属性的其他配置参数,参考TMap.MultiCircleOptions

TMap.MultiCircleOptions

属性名称类型说明
zIndexNumber图层绘制顺序

事件

名称参数说明
clickGeometryOverlayEvent点击事件
dblclickGeometryOverlayEvent双击事件
mousedownGeometryOverlayEvent鼠标在地图区域中左键按下时触发,只在桌面浏览器中触发
mouseupGeometryOverlayEvent鼠标在地图区域中左键按下又弹起时触发,只在桌面浏览器中触发
mousemoveGeometryOverlayEvent鼠标在地图上移动时触发,只在桌面浏览器中触发
hoverGeometryOverlayEvent鼠标在图层上悬停对象改变时触发,事件对象中的geometry属性会指向交互位置所在图形的CircleGeometry,无图形时事件对象为null,只在桌面浏览器中触发
touchstartGeometryOverlayEvent在地图区域触摸开始时触发,只在移动浏览器中触发
touchmoveGeometryOverlayEvent在地图区域触摸移动时触发,只在移动浏览器中触发
touchendGeometryOverlayEvent在地图区域触摸结束时触发,只在移动浏览器中触发

组件实例属性

名称类型说明
circleTMap.MultiCircle圆形实例。实例方法参考TMap.MultiCircle方法

TMap.MultiCircle方法

方法返回值说明
setMap(map:Map)this设置地图对象,如果map为null意味着将多圆同时从地图中移除
setZIndex(zIndex: Number)this设置图层绘制顺序
setGeometries(geometries:CircleGeometry[])this更新多圆数据,如果参数为null或undefined不会做任何处理
setStyles(styles:MultiCircleStyleHash)this设置MultiCircle图层相关样式信息,如果参数为null或undefined不会做任何处理
setVisible(visible: Boolean)this设置图层是否可见。
getMap()Map获取地图对象,若为空返回null
getGeometries()CircleGeometry[]获取多圆数据
getStyles()MultiCircleStyleHash获取图层相关样式信息
getVisible()visible获取可见状态
getZIndex()Number获取图层绘制顺序
getGeometryById(id:String)CircleGeometry根据多圆数据id来获取点数据
updateGeometries(geometry: CircleGeometry[])this更新多圆数据,如果geometry的id存在于集合中,会更新对id的数据,如果之前不存在于集合中,会作为新的圆添加到集合中;如果参数为null或undefined不会做任何处理
add(geometries: CircleGeometry[])this向图层中添加圆,如果geometry的id已经存在集合中,则该geometry不会被重复添加,如果geometry没有id或者id不存在于集合中会被添加到集合,没有id的geometry会被赋予一个唯一id;如果要添加到集合中的多边形存在重复id,这些多边形会被重新分配id;如果参数为null或undefined不会做任何处理
remove(ids: String[])this移除指定id的圆,如果参数为null或undefined不会做任何处理
destroy()销毁图层对象