uniapp-微信小程序地图功能实现

appid获取:

  1. 测试号:在微信开发者工具内点击“导入”随便选一个空文件夹 然后 点击测试号就能看到自己的appId了

  1. 在微信公众开发平台内获取:获取小程序appid

需要地图授权的key:

腾讯地图Key获取,创建一个应用添加一个key就行,然后在 样式应用内给刚刚创建的key设置绑定样式。

  1. 添加key

  1. 设置绑定样式

功能实现(有appid和绑定了地图key 直接跳转到这一步):

<template>
    <view>
        <map id="map" class="map_style" :latitude="latitude" :longitude="longitude" :show-location="true" :scale="scale"
            layer-style="1" :markers="markers" @tap="handleGetLongitudeLatitude" @markertap="handleClickMarker">
            <!-- 定位、缩进按钮  -->
            <cover-view class="cover-view">

                <cover-view class="cover-view-image cover-view-image-position" @click="handleCurrenPosition">
                    <cover-image class="cover-image cover-image-position" src="@/static/position.png"></cover-image>
                    <cover-view style="font-size: 10px;">
                        定位
                    </cover-view>
                </cover-view>

                <cover-view class="cover-view-image-scale">
                    <cover-view class="cover-view-image" @click="handleClickEnlarge">
                        <cover-image class="cover-image cover-image-enlarge" src="@/static/enlarge.png"></cover-image>
                    </cover-view>

                    <cover-view class="cover-view-image " @click="handleClickShrink">
                        <cover-image class="cover-image cover-image-shrink" src="@/static/shrink.png"></cover-image>
                    </cover-view>

                </cover-view>
            </cover-view>
        </map>
    </view>
</template>

<script>
    import QQMap from '@/lib/qqmap-wx-jssdk.min.js';
    const key = "WY7BZ-RRY3J-LP5FX-XGWY3-RC2TF-HOFQZ";
    const marksSetting = {
            alpha: 0.8, //标注的透明度
            width: 25, //标注的宽度
            height: 36, //标注的高度

            calloutSetting: {
                color: "#FFFFFF", // 文本颜色 
                fontSize: 14, // 文本字体大小
                borderRadius: 10, // 边框圆角
                borderColor: "#aaff00", //气泡边框颜色
                borderWidth:2, //边框宽度
                bgColor: "#ffc45e", //气泡背景颜色
                padding: 5, //文本边距
                display: "ALWAYS", //'BYCLICK':点击显示(我是没试出效果); 'ALWAYS':常显
                textAlign: "center", //文本对齐方式  有效值:left、center、right
                anchorX: 0, //横向偏移量 向右为正数 ,气泡以标注上方为中心,正数向右偏移  负数向左偏移
                anchorY: 0, //纵向偏移量 向下为正数,气泡以标注上方为中心,正数向下偏移 负数向上偏移
            }
        };

        export default {

            data() {
                return {
                    longitude: "",
                    latitude: "",
                    address: "",
                    scale: 15,


                    markers: [
                        {
                        id: 1,
                        longitude: 114.34707328259367, //经度
                        latitude: 30.500969242060897, //纬度
                        alpha: marksSetting.alpha, //标注的透明度 0~1之间
                        width: marksSetting.width, //标注的宽度
                        height: marksSetting.height, //标注的高度
                        callout: {
                            content: "丽岛花园",
                            color: marksSetting.calloutSetting.color,
                            fontSize: marksSetting.calloutSetting.fontSize,
                            borderRadius: marksSetting.calloutSetting.borderRadius,
                            borderWidth: marksSetting.calloutSetting.borderWidth,
                            borderColor: marksSetting.calloutSetting.borderColor,
                            bgColor: marksSetting.calloutSetting.bgColor,
                            padding: marksSetting.calloutSetting.padding,
                            display: marksSetting.calloutSetting.display,
                            textAlign: marksSetting.calloutSetting.textAlign,
                            anchorX: marksSetting.calloutSetting.anchorX,
                            anchorY: marksSetting.calloutSetting.anchorY,

                        },
                    },
                        {
                        id: 2,
                        longitude: 114.3406549588575,//经度
                        latitude: 30.499375611479607,//纬度
                        alpha: marksSetting.alpha, //标注的透明度 0~1之间
                        width: marksSetting.width, //标注的宽度
                        height: marksSetting.height, //标注的高度
                        callout: {
                            content: "南湖雅苑",
                            color: marksSetting.calloutSetting.color,
                            fontSize: marksSetting.calloutSetting.fontSize,
                            borderRadius: marksSetting.calloutSetting.borderRadius,
                            borderWidth: marksSetting.calloutSetting.borderWidth,
                            borderColor: marksSetting.calloutSetting.borderColor,
                            bgColor: marksSetting.calloutSetting.bgColor,
                            padding: marksSetting.calloutSetting.padding,
                            display: marksSetting.calloutSetting.display,
                            textAlign: marksSetting.calloutSetting.textAlign,
                            anchorX: marksSetting.calloutSetting.anchorX,
                            anchorY: marksSetting.calloutSetting.anchorY,

                        },
                    },
                    ],
                }
            },

            onShow() {
                const that = this;
                uni.getLocation({
                    type: 'wgs84',
                    success: function(res) {

                        that.longitude = res.longitude;
                        that.latitude = res.latitude;

                        that.handleGetAddress();
                    }
                });
            },
            methods: {
                /**
                 * @param {Object} val 返回点击地图地点的经纬度
                 */
                handleGetLongitudeLatitude(param) {
                    console.log("被点击地点的纬度:",param.detail.latitude);
                    console.log("被点击地点的经度:",param.detail.longitude);
                },

                /**
                 * @param {Object} longitude 经度
                 * @param {Object} latitude 纬度
                 */
                handleGetAddress(longitude, latitude) {
                    const that = this;

                    const map = new QQMap({
                        key
                    });

                    map.reverseGeocoder({
                        location: {
                            longitude: this.longitude,
                            latitude: this.latitude
                        },
                        success: function(res) {

                            that.address = res.result.address;
                        }
                    })
                },
                
                handleClickMarker(param){
                    
                    this.markers.forEach((item)=>{
                        
                        if(item.id == param.markerId){
                            item.callout.borderColor="#ffff7f"
                            item.callout.bgColor="#ffa6b2"
                        }
                        
                    })
                },

                handleCurrenPosition() {
                    const that = this;
                    uni.createMapContext("map", this).moveToLocation({
                        longitude: that.longitude,
                        latitude: that.latitude
                    })

                },

                handleClickEnlarge() {
                    this.scale = this.scale == 20 ? this.scale : ++this.scale;
                },

                handleClickShrink() {
                    this.scale = this.scale > 3 ? --this.scale : 3;
                }
            }
        }
</script>

<style>
    @import "./index.css";
</style>
    .map_style {
        width: 750rpx;
        height: 100vh;
    }

    /* 外层盒子样式 */
    .cover-view {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 80rpx;
        color: #484848;
        background-size: 120rpx 120rpx;
        background-position: center center;
        position: absolute;
        bottom: 15vh;
        right: 32rpx;
    }

    /* 定位、扩大、缩小按钮盒子样式 */
    .cover-view-image {
        background: #ffffff;
        width: 80rpx;
        height: 40px;
        margin: 0 auto;
        text-align: center;
    }

    /* 定位盒子额外样式 */
    .cover-view-image-position {
        border-radius: 5px;
    }

    /* 扩大缩小定位额外样式 */
    .cover-view-image-scale {
        margin-top: 20px;
        border-radius: 5px;

    }

    /* 图标大小 */
    .cover-image {
        width: 40rpx;
        height: 40rpx;
        margin-left: 10px;
    }

    /* 定位图标额外样式 */
    .cover-image-position {
        margin-top: 3px;
    }

    /* 缩小图标额外样式 */
    .cover-image-shrink {
        margin-top: 9px;
    }

    /* 扩大图标额外样式 */
    .cover-image-enlarge {
        margin-top: 9px;
    }
    
    
    .top-search {
        position: sticky;
        top: var(--window-top);
        /* // top: 0; // 这个试了也可以达到吸顶效果 */
        z-index: 100;
    }
    
    .search-box {
        display: flex;
        align-items: center;
        padding-top: 16rpx;
        padding-bottom: 16rpx;
    }
    
    
    

效果展示:

AJiu~~
关注 关注
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于腾讯地图微信小程序电子围栏.zip
12-03
【基于腾讯地图微信小程序电子围栏.zip】这个压缩包包含了一个使用uni-app框架开发的微信小程序项目,该项目的核心功能是实现基于腾讯地图的电子围栏功能。在电子围栏技术中,它允许用户在地图上划定特定区域,当...
uniapp实现微信小程序用户实时位置定位并显示地图
热门推荐
m0_58991732的博客
02-06 1万+
目前,我们可以通过一些现成的api来实现此功能。下面我将介绍一下通过腾讯位置服务来实现此功能的具体操作流程。需将以上代码中的key,换成自己刚刚配置的key。进入到manifest.json文件中。
uniapp小程序端使用腾讯地图
weixin_53156345的博客
05-18 8985
注册并登录后点击选择进入后按照 Hello world!中的步骤进行。
uniapp小程序,使用腾讯地图获取定位
最新发布
JavaScritp
09-11 1145
本篇文章分享一下在实际开发小程序时遇到的需要获取用户当前位置的问题,在小程序开发过程中经常使用到获取定位功能。uniapp官方也提供了相应的API供我们使用。官网获取位置的详细介绍这里就不再讲述了,大家可以点击上方链接去官网查看。我们本次开发的是小程序,需要注意的是,小程序获取定位使用的是腾讯位置服务,所以需要申请腾讯位置服务的SDK。
UniApp微信小程序地图使用指南
qq_40649554的博客
02-27 1587
UniApp中集成微信小程序地图功能,可以为用户提供位置展示、导航、路线规划等丰富的交互体验。本技术文档将指导你如何在UniApp微信小程序中集成和使用地图功能
uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开
Shimeng_1989的博客
07-21 7540
uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开
Uni-app 调用微信地图导航功能【有图】
H_jrqn的博客
09-21 1670
Uni-app 调用微信地图导航功能【有图】
微信小程序页面渲染实现方法
10-16
微信小程序页面渲染是通过一套标记语言WXML(WeiXin Markup Language)结合WXSS(WeiXin Style Sheets)和JavaScript逻辑实现的。页面渲染指的是将数据和视图结合,通过各种条件渲染和列表渲染来动态展示页面内容。 ...
微信小程序+腾讯地图开发实现路径规划绘制
10-16
微信小程序与腾讯地图的结合使用是一个相当热门的领域,尤其在实现路径规划和导航功能方面。微信小程序为腾讯地图提供了一个便捷的接入平台,通过腾讯地图提供的API,开发者可以实现路径规划绘制等功能。 首先,...
微信小程序 腾讯地图显示偏差问题解决
10-16
在开发微信小程序时,经常需要集成地图功能,腾讯地图是一个常用的选择。然而,在实际应用中,开发者可能会遇到地图显示偏差的问题,尤其是在使用不同地图API获取的经纬度数据时。本文主要探讨了微信小程序中腾讯...
微信小程序结合百度地图开发
06-18
针对微信小程序和百度地图的结合,便于使用微信小程序的时候定位到当前的位置,还有针对尝试微信小程序地图融合时候的坑,请多多探讨
微信小程序开发:实现地图导航功能
吃不胖.
08-15 4744
地图导航功能是近年来移动应用中极为常见的功能之一,它能够为用户提供准确的地理位置信息以及最佳的路线规划,帮助用户快速准确地找到目的地。微信小程序开发中的地图导航功能,需要通过多种技术手段综合实现,包括地图API、定位、路线规划、搜索服务等,下面将详细介绍这些技术手段的实现。开发者可以通过腾讯地图API中提供的搜索服务接口,实现关键字搜索功能。在用户授权后,开发者可以通过小程序API中提供的接口,获取用户当前的位置信息。腾讯地图API提供了地图交互的接口,开发者可以在小程序中调用该接口,实现地图交互功能。
uniapp微信小程序实现地图展示控件
逆水行舟 不进则退
11-30 3836
uniapp微信小程序实现地图上展示控件按钮
uniapp微信小程序地图实现绘制polygon(保姆级教程 全网最全!!!)
逆水行舟 不进则退
12-01 5036
uniapp微信小程序中在map上实现polygon的绘制。全网最全保姆级教程,不会你来砸我!!!
uni-app微信小程序打开第三方地图
lxyoucan的博客
10-30 3247
微信小程序地图
小程序地图uniapp开发微信小程序,显示地图功能,且点击后打开高德或腾讯地图
weixin_48596030的博客
06-22 8610
uniapp开发微信小程序,显示地图功能,且点击后打开高德或腾讯地图
uniapp 微信小程序开发笔记---使用腾讯地图
qq_44864468的博客
01-15 917
5、需要在manifest.json--》源码视图 mp-weixin修改配置。4、下载引入文件并在微信公众号平台添加合法域名便可以开始使用了。2、应用管理--》我的应用---》点击创建应用 进行创建。开发:uniapp + vue3 + 微信小程序。3、输入小程序id完成后便可以获取到key。1、登录腾讯地图,点击控制台。6、创建libs文件夹将。这样一来便可以使用了。
uniapp开发小程序解析经纬度获取当前位置信息(腾讯地图二)
weixin_53339757的博客
03-27 7114
uniapp开发小程序解析经纬度换取详细中文地址
uniapp开发微信小程序 实现地图导航
03-28
1. 在uniapp项目中安装uniapp插件:uni-simple-router和@dcloudio/vue-cli-plugin-uni-mp-weixin 2. 在微信公众平台中创建小程序,并获取AppID ...具体实现过程可参考uniapp官方文档和微信小程序开发文档。
写文章

热门文章

  • js运算精度丢失 9933
  • el-table列字段遍历添加插槽 4443
  • eleUi解决表单中el-select选择器比el-input输入框小的问题 2372
  • uniapp-微信小程序地图功能实现 2123
  • el-table设置高度合计行不显示 1216

分类专栏

  • 数据类型 1篇

最新评论

  • js运算精度丢失

    weixin_58616041: 精度丢失了,后端返回的lang格式长度超长就会有这个问题,返回字符串就可以了

  • js运算精度丢失

    JamesCurtis: 1.12*100也不对

  • uniapp-微信小程序地图功能实现

    椰子堡: 武理的?

  • js运算精度丢失

    athss: 测试了一下,特定值用文章中的高精度方法计算依然结果不够精准,比如actionOperationResult(35.41 , 10) 结果应该是354.1,但打印输出结果是354.09999999999997。出错点应该是用浮点数进行乘法的地方。目前试过的最精准的方法还是操作字符串完全转换成整数后运算的方法,就是来回拼接切割小数点太麻烦了

  • eleUi解决表单中el-select选择器比el-input输入框小的问题

    AJiu~~: 拿el-select举例: [code=html] <el-select v-model="form.orderId" style="width: 100%" @change="handleChangeOrderCode" filterable > <el-option v-for="item in this.orders" :key="item.orderId" :label="item.orderCode" :value="item.orderId" /> </el-select> [/code]

最新文章

  • 雪花Id传递给前端精度丢失问题
  • ArrayList详解
  • 知识回顾:八大基本数据类型,四大引用类型
2023年4篇
2022年6篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司伊宁网站seo优化公司鄂州市网站关键词优化有用吗推推蛙网站优化公司网站优化怎么搞网站优化的目的是干什么网站制作优化仍亿宀云速捷百度网站优化联系方式江苏扬州网站优化泸州百度网站优化推广永安网站优化公司中山网站建设方案优化中山外贸网站优化如何做钱库网站优化公司嘉定区公司网站优化方案武汉网站搜索优化软件排行武汉seo优化网站公司家居行业网站优化宣传自己做网站优化网站搜索引擎优化案例如何优化婚纱摄影网站太仓网站优化多少费用装修网站优化东昌区网站seo优化排名哈尔滨网站关键词百度优化如何优化网站易下拉系统河南平台网站快速排名优化石家庄网站优化推广可靠吗海丰网站优化seo从哪几个方面优化网站长宁区360网站优化价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化