微信小程序位置服务以及地图选点

2023-02-07  本文已影响0人  遇见wn

简介

定位选点适用于大多位置服务的业务,腾讯官方提供的定位选点功能利用官方插件即可完成,比较方便

准备

1.进入微信公众平台》设置》第三方设置》插件管理》添加插件

image.png
2.点击插件详情,分别查看插件的AppID
image.png
3.打开uniapp项目的配置文件manifest.json,选择“源码视图”,添加在plugins的对象中:
/* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "  ",
        "setting" : {
            "urlCheck" : false,
            "postcss" : false,
            "minified" : true,
            "es6" : true
        },
        "usingComponents" : true,
        "plugins" : {
            // 微信同声传译
            "WechatSI" : {
                "version" : "0.3.5",
                "provider" : "wx069ba97219f66d99"  //插件的appid
            },
            // 腾讯位置服务城市选择器
            "citySelector" : {
                "version" : "1.0.2",
                "provider" : "wx63ffb7b7894e99ae"  //插件的appid
            },
            // 腾讯位置服务地图选点
            "chooseLocation" : {
                "version" : "1.0.10",
                "provider" : "wx76a9a06e5b4e693e"  //插件的appid
            }
        },
        "permission" : {
            "scope.userLocation" : {
                "desc" : "将获取你的具体位置信息,用于小程序位置接口的效果展示"
            }
        },
        "requiredPrivateInfos" : [ "getLocation" ],
        "lazyCodeLoading" : "requiredComponents"
    },

开发

文件头部引入:
const chooseLocation = requirePlugin('chooseLocation');
methods:{
    chooseLocations() {
            const key = '  '; //使用在腾讯位置服务申请的key
            const referer = '  '; //调用插件的app的名称,这个根据自己项目来写
            const location = JSON.stringify({
                latitude: uni.getStorageSync('lat'),
                longitude: uni.getStorageSync('lon')
            });
            const category = '汽车';       //关键字推荐
            wx.navigateTo({
                url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer + '&location=' + location + '&category=' + category
            });
        },
}
onShow:{
    const location = chooseLocation.getLocation(); // 如果点击确认选点按钮,则返回选点结果对象,否则返回null
        console.log(location, 'location'); //打印结果图在下面
        if (location) {
            this.city = location.city + ' ' + location.district + ' ' + location.name;
            //此处可以获取到选择的地点的详细信息
        }
}
*如果需要刷新页面或其他一些其他业务把定位地点重置回当前定位,就需要在逻辑代码中加入:
chooseLocation.setLocation(null);
上一篇下一篇

猜你喜欢

热点阅读