更新记录

1.0.0(2025-03-13)

初步完善功能


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.94 app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

地图组件 ly-map


1 初始化

默认填充父布局


<ly-map ref="map" map-key="天地图key"/>

2 组件说明

支持参数
参数 类型 说明
mapKey String 天地图官网申请的key,必填否则地图不能正确出来
lonlat Array 地图初始位置,默认值[111.668097, 40.825417]
zoom Number 地图初始缩放等级,默认值16
showCenterIcon Boolean 是否在地图中间显示图标, 默认值 false不显示
showLocationIcon Boolean 是否在地图右下角显示定位图标, 默认值 false不显示
支持事件
事件 说明
onLoaded 当地图加载完成时
onLocation 点击右下角定位按钮时
onStartDrag 当地图开始拖拽时
onEndDrag 当地图结束拖拽时
支持方法
方法 说明
setCenter(lon:number, lat:number,zoom:Number) 将地图的中心点变换到指定的地理坐标,如果同时指定了缩放等级,则同时缩放到指定的等级
参数说明:
lon:地图的中心点经度
lat:地图的中心点纬度
zoom:地图的比例尺级别
setType(type:Number) 设置地图显示类型
参数说明:
type:要设置的地图展示类型 0矢量地图 1卫星地图 其它显示矢量地图
setMarkers(Array\<Object>) 将标注添加到地图中,支持多个标注同时添加,标注Object格式见下表
setZoom(zoom:Number) 将视图缩放到指定的缩放等级,中心点坐标不变
参数说明:
zoom:地图的比例尺级别
resize() 重置地图展示区域尺寸
标注Object 格式说明
key value 说明
icon String 标注显示图标的路径,支持网络图片
width Number 标注图标宽度
height Number 标注图标高度
lon Number 标注显示的位置经度
lat Number 标注显示的位置纬度

示例代码

完整代码如下

<template>
    <view class="map-page-wrapper">
        <view class="map-box">
            <ly-map ref="map1"
                    map-key="天地图key"
                    :lonlat="[111.668097, 40.825417]"
                    :zoom="16"
                    show-center-icon
                    show-location-icon
                    :on-location="location"
                    :on-loaded="loadMap1"
                    :on-start-drag="startDrag"
                    :on-end-drag="endDrag"/>
        </view>
        <view class="map-box">
            <ly-map ref="map2"
                    map-key="天地图key"
                    show-center-icon
                    show-location-icon
                    :on-location="location"
                    :on-loaded="loadMap2"
                    :on-start-drag="startDrag"
                    :on-end-drag="endDrag"/>
        </view>
    </view>
</template>
<script>
import icon from './icon.png';

export default {
    data() {
        return {
        };
    },
    mounted() {
        // 绑定组件
        this.map1 = this.$refs.map1;
        this.map2 = this.$refs.map2;
    },
    methods: {
        location() {
            console.log("点击定位按钮回调");
        },
        loadMap1() {
            // 设置多个标注
            this.map1.setMarkers([
                {
                    icon: icon,
                    width: 24,
                    height: 27,
                    lon: 111.668020,
                    lat: 40.82540,
                },
                {
                    icon: icon,
                    width: 24,
                    height: 27,
                    lon: 111.667000,
                    lat: 40.8250,
                }
            ]);
            // 设置地图类型
            console.log("地图1创建完成");
        },
        loadMap2() {
            // 重置地图大小
            this.map2.resize();
            // 设置中心位置
            this.map2.setCenter(116.3912314,39.90733450);
            // 设置地图类型 0矢量地图 1卫星地图
            this.map2.setType(1);
            // 设置缩放
            this.map2.setZoom(16);
            // 设置地图类型
            console.log("地图2创建完成");
        },
        startDrag() {
            console.log("开始地图拖拽");
        },
        endDrag() {
            console.log("结束地图拖拽");
        },
    }
};
</script>

<style lang="scss">
.map-page-wrapper {
    width: 100%;
    height: calc(100vh - env(safe-area-inset-bottom));

    .map-box{
        width: 100%;
        height:50%;
    }
}
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问