首页 > 编程语言 >微信小程序配置地图,城市选择,地铁图,路线规划

微信小程序配置地图,城市选择,地铁图,路线规划

时间:2023-03-09 16:55:20浏览次数:58  
标签:插件 const 微信 路线 点击 地铁 referer location key

微信小程序之地图选地、城市选择、地铁图、路线规划

一、简介

腾讯位置服务为微信小程序提供了基础的标点能力、线和圆的绘制接口等地图组件和位置展示、地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品。 在此基础上,腾讯位置服务微信小程序JavaScript SDK是专为小程序开发者提供的LBS数据服务工具包,可以在小程序中调用腾讯位置服务的POI检索、关键词输入提示、地址解析、逆地址解析、行政区划和距离计算等数据服务,让您的小程序更强大!

 在微信小程序中使用腾讯地图服务大致需要进行如下几个过程:

二、开通腾讯位置服务

登录进入小程序后台,选择 “开发 - 开发工具 - 腾讯位置服务”

点击腾讯位置服务

点击 “开通”,进入授权扫码界面,使用微信扫码进行授权

如果已经有账号了,可以绑定现有账号

三、插件申请接入

 

 点击服务,进入微信服务市场

点击开发者资源

点击插件,然后在搜索框中搜索“腾讯位置服务”

点击“腾讯地图服务地图选点”

点击“添加插件”

打开微信扫码,然后再次点击“添加插件”

选择小程序后点击确定。

此时,在微信公众平台中点击设置----第三方设置----插件管理,就可以看到腾讯服务地图选点

同理,我们可以在微信服务市场中一次性添加多个插件,如腾讯位置服务地铁图,腾讯位置服务路线规划,最终如下所示:

点击“腾讯位置服务地图选点”右侧的详情

地图选点appId

点击”开发文档“

第一步插件申请接入已经完成

四、申请开发者密钥和开通webserviceAPI服务

访问https://lbs.qq.com/dev/console/application/mine,进入如下页面

点击“个人中心”----我的信息,在这里注册成个人开放者或进行企业认证

点击“应用管理”----我的应用,

点击“添加Key”,进入如下界面

小程序插件需要使用WebService API的部分服务,所以需要给使用该功能的KEY配置相应权限。

勾选WebServiceAPI和微信小程序,输入微信小程序的APPID,勾选同意协议,点击添加,进入如下页面,此时会生成密钥。

五、使用插件"地图选点"

1、引入插件包

在app.json中添加

复制代码
// app.json
{
  "plugins": {
    "chooseLocation": {
      "version": "1.0.10",
      "provider": "wx76a9a06e5b4e693e"
    }
  }
}
复制代码

其中,provider填写你自己的appId,如下所示

复制代码
{
    "pages": [
        "pages/home/home",
        "pages/index/index",
        "pages/logs/logs",
        "pages/login/index",
        "pages/location/location"
    ],
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "Weixin",
        "navigationBarTextStyle": "black"
    },
    "style": "v2",
    "sitemapLocation": "sitemap.json",
    "lazyCodeLoading": "requiredComponents",
    "plugins": {
        "chooseLocation": {
          "version": "1.0.10",
          "provider": "wx76a9a06e5b4e693e"
        }
      }
}
复制代码 2、设置定位授权

地图选点插件需要小程序提供定位授权才能够正常使用定位功能:

复制代码
// app.json
{
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序定位"
    }
  }
}
复制代码

如下所示:

复制代码
{
    "pages": [
        "pages/home/home",
        "pages/index/index",
        "pages/logs/logs",
        "pages/login/index",
        "pages/location/location"
    ],
    "window": {
        "backgroundTextStyle": "light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "Weixin",
        "navigationBarTextStyle": "black"
    },
    "style": "v2",
    "sitemapLocation": "sitemap.json",
    "lazyCodeLoading": "requiredComponents",
    "plugins": {
        "chooseLocation": {
          "version": "1.0.10",
          "provider": "wx76a9a06e5b4e693e"
        }
      },
      "permission": {
        "scope.userLocation": {
          "desc": "你的位置信息将用于小程序定位"
        }
      }
}
复制代码

加了之后才能获取到小程序的定位

官方示例:

复制代码
const key = ''; //使用在腾讯位置服务申请的key
const referer = ''; //调用插件的app的名称
const location = JSON.stringify({
  latitude: 39.89631551,
  longitude: 116.323459711
});
const category = '生活服务,娱乐休闲';

wx.navigateTo({
  url: `plugin://chooseLocation/index?key=${key}&referer=${referer}&location=${location}&category=${category}`
});
复制代码

key为上一步中的密钥,referer为小程序的名称。

新建demo页面

demo.wxml文件内容如下:

<!--pages/demo/demo.wxml-->
<view>位置信息: {{ address.address }} </view>
<button type="primary" bindtap="chooseAddress">选取位置</button>

demo.js

复制代码
// 导入插件
const chooseLocation = requirePlugin('chooseLocation');
Page({
    data: {
        address: {},//选点后的位置地址信息
        location: {} // 定位信息
    },
    onl oad() {
        var that = this
        wx.getLocation({
            success(res) {
                console.log(res)
                that.setData({
                    location: res
                })
            }
        })
    },
    // 从地图选点插件返回后,在页面的onShow生命周期函数中能够调用插件接口,取得选点结果对象
    onShow() {
        const location = chooseLocation.getLocation(); // 如果点击确认选点按钮,则返回选点结果对象,否则返回null
        console.log("location==>",location);
        if(location !=null){
            this.setData({
                address:location
            })
        }
    },
    chooseAddress() {
        const key = 'GGZBZ-JXMLJ-3OMFH-FRRBR-DIDB3-TZFEM'; //使用在腾讯位置服务申请的key,如果不清楚如何申请,请回顾我们的小程序基础教程
        const referer = 'miniprogram-1'; //调用插件的app的名称
        const location = JSON.stringify({
            latitude: this.data.location.latitude, // 纬度
            longitude: this.data.location.longitude // 经度
        });
        // 自定义分类
        const category = '生活服务';
        wx.navigateTo({
            url: `plugin://chooseLocation/index?key=${key}&referer=${referer}&location=${location}&category=${category}`
        });
    }
})
复制代码

效果如下:

点击"选取位置"

输入框中输入武汉站,效果如下:

六、使用插件"城市选择"

 

点击详情

这里的城市选择器APPID,后面会用到

点击开发文档

第一步已经完成

1、引入插件包

复制代码
// app.json
{
  "plugins": {
    "citySelector": {
      "version": "1.0.2",
      "provider": "wx63ffb7b7894e99ae"
    }
  }
}
复制代码

如下所示

复制代码
"plugins": {
        "chooseLocation": {
            "version": "1.0.10",
            "provider": "wx76a9a06e5b4e693e"
        },
        "citySelector": {
            "version": "1.0.2",
            "provider": "wx63ffb7b7894e99ae"
          }
    },
复制代码

2、设置定位授权:

城市选择器插件需要小程序提供定位授权才能够正常使用定位功能:

复制代码
// app.json
{
  "permission": {
    "scope.userFuzzyLocation": {
      "desc": "你的位置信息将用于小程序定位"
    }
  }
}
复制代码

如下所示:

复制代码
"permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序定位"
        },
        "scope.userFuzzyLocation": {
            "desc": "你的位置信息将用于小程序定位"
          }
    }
复制代码

插件调用官方示例:

复制代码
const key = ''; // 使用在腾讯位置服务申请的key
const referer = ''; // 调用插件的app的名称
const hotCitys = ''; // 用户自定义的的热门城市

wx.navigateTo({
  url: `plugin://citySelector/index?key=${key}&referer=${referer}&hotCitys=${hotCitys}`,
})
复制代码

新建city页面

city.wxml

<view>选择的城市:{{city.name}}</view>
<button type="primary" bindtap="goChooseCity">选择城市</button>

city.js

复制代码
// 引入插件
const citySelector = requirePlugin('citySelector');
Page({
    data: {
        city: '' //选中的城市
    },
    // 从城市选择器插件返回后,在页面的onShow生命周期函数中能够调用插件接口,获取cityInfo结果对象
    onShow() {
        const selectedCity = citySelector.getCity(); // 选择城市后返回城市信息对象,若未选择返回null
        console.log("selectedCity===",selectedCity);
        if(selectedCity!=null){
            this.setData({
                city:selectedCity
            })
        }
    },
    onUnload() {
        // 页面卸载时清空插件数据,防止再次进入页面,getCity返回的是上次的结果
        citySelector.clearCity();
    },
    goChooseCity() {
        const key = 'GGZBZ-JXMLJ-3OMFH-FRRBR-DIDB3-TZFEM'; // 使用在腾讯位置服务申请的key
        const referer = 'miniprogram-1'; // 调用插件的app的名称
        const hotCitys = '武汉'; // 用户自定义的的热门城市
        wx.navigateTo({
            url: `plugin://citySelector/index?key=${key}&referer=${referer}&hotCitys=${hotCitys}`,
        })
    }
})
复制代码

效果如下:

点击”选择城市“,进入如下页面

输入深圳

七、使用插件"地铁图"

 

点击详情,再点击开发文档

第一步已经完成

1、引入插件包

复制代码
"plugins": {
        "chooseLocation": {
            "version": "1.0.10",
            "provider": "wx76a9a06e5b4e693e"
        },
        "citySelector": {
            "version": "1.0.2",
            "provider": "wx63ffb7b7894e99ae"
          },
          "subway": {
            "version": "1.0.13",
            "provider": "wx6aaf93c4435fa1c1"
          }
    },
复制代码

2、设置定位授权:
地铁图插件需要小程序提供定位授权才能够正常使用定位功能:

复制代码
"permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序定位"
        },
        "scope.userFuzzyLocation": {
            "desc": "你的位置信息将用于小程序定位"
          }
    }
复制代码

 

3、使用插件

在js文件中新增调用插件: 

let plugin = requirePlugin("subway");
let key = '';  //使用在腾讯位置服务申请的key
let referer = '';   //调用插件的app的名称
wx.navigateTo({
  url: 'plugin://subway/index?key=' + key + '&referer=' + referer
});

新建subway页面

 subway.wxml

<view class="container">
    <button type="primary" bindtap="trainFind">地铁地铁查询</button>
</view>

subway.js

复制代码
Page({
  data: {

  },
  onl oad: function () {

  },
  trainFind(){
      let plugin = requirePlugin("subway");
      let key = 'GGZBZ-JXMLJ-3OMFH-FRRBR-DIDB3-TZFEM';
      let referer = 'miniprogram-1'; 
      wx.navigateTo({
       url: 'plugin://subway/index?key=' + key + '&referer=' + referer
      });
  }
})
复制代码

效果如下:

点击”地铁查询“按钮

输入起点站和终点站

八、使用插件"路线规划"

 

第一步已经完成

1、引入插件包

复制代码
"plugins": {
        "chooseLocation": {
            "version": "1.0.10",
            "provider": "wx76a9a06e5b4e693e"
        },
        "citySelector": {
            "version": "1.0.2",
            "provider": "wx63ffb7b7894e99ae"
          },
          "subway": {
            "version": "1.0.13",
            "provider": "wx6aaf93c4435fa1c1"
          },
          "routePlan": {
            "version": "1.0.19",
            "provider": "wx50b5593e81dd937a"
          }
    },
复制代码

2、设置定位授权

复制代码
"permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序定位"
        },
        "scope.userFuzzyLocation": {
            "desc": "你的位置信息将用于小程序定位"
          }
    }
复制代码

3、使用

插件页面调用官方示例:

复制代码
let plugin = requirePlugin('routePlan');
let key = '';  //使用在腾讯位置服务申请的key
let referer = '';   //调用插件的app的名称
let endPoint = JSON.stringify({  //终点
  'name': '北京西站',
  'latitude': 39.894806,
  'longitude': 116.321592
});
wx.navigateTo({
  url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint
});
复制代码

新建plan页面

plan.wxml

<view class="container">
    <button type="primary" bindtap="routePlanning">路线规划</button>
</view>

plan.js

复制代码
Page({
    data: {
  
    },
    onl oad: function () {
  
    },
    routePlanning(){
        let key = 'GGZBZ-JXMLJ-3OMFH-FRRBR-DIDB3-TZFEM';
        let referer = 'miniprogram-1'; 
        let endPoint = JSON.stringify({  //终点
            'name': '吉野家(北京西站北口店)',
            'latitude': 39.89631551,
            'longitude': 116.323459711
        });
        wx.navigateTo({
            url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint
        });
    }
  })
复制代码

效果如下

点击路线规划按钮

标签:插件,const,微信,路线,点击,地铁,referer,location,key
From: https://www.cnblogs.com/qungege/p/17199107.html

相关文章

  • 微信map组件使用
    在第二大学远程实习的学习项目中使用地图组件,记录一下使用场景。地图组件使用map组件提供了地图展示、交互、叠加点线面及文字等功能,同时支持个性化地图样式,可结合地图服......
  • pdf.js 企业微信浏览器无法打开及简单使用
     1.官网地址http://mozilla.github.io/pdf.js/getting_started/2.下载旧版本   3.复制到项目地址中使用<a>标签<ahref="../content/pdfjs-3.4.120-dist/web......
  • 【黄啊码】fastadmin接入微信支付和支付宝支付
    fastadmin插件管理找到这个然后具体如下: 功能介绍此插件是一款基于ThinkPHP5+Easypay进行二次开发的微信支付宝企业支付整合插件,可一键接入微信和支付宝,同时可快速接入Fast......
  • 【黄啊码】怎么零基础学微信小程序
    咱们先理清一下知识脉络:小程序基础知识建立第一个小程序小程序代码的构成wxmlwxssjs小程序运行环境小程序组件小程序API总结 一、小程序基础与传统网页区别1.运......
  • 什么是大前端技术?微信小程序用户占比达25%
    什么是大前端技术?大前端技术(Full-StackDevelopment)是指同时涉及到前端、后端、移动端等多个领域的技术。它既包含了传统前端技术,如HTML、CSS、JavaScript等,也包含了后端......
  • 推荐10个yyds开源微信小程序优秀项目
    推荐10个yyds开源微信小程序优秀项目原创2023-01-1408:00·Echa攻城狮 大家好,我是Echa。昨天有好几个粉丝私信小编,说微信小程序这么流行,这么火,为啥不多分享分......
  • 论文学习路线
    要记得扫一眼参考文献,看看从哪里来的灵感,文章的前身是哪篇两周时间内通过泛读找出自己喜欢的领域内的100篇优秀论文,非常粗略地读和找(最多看到introduction),只看顶会/牛团队/......
  • c++基础学习路线
    c++基础学习路线类和对象c/c++内存管理模板IO流继承多态c++11新特新异常智能指针特殊类设计c++的类型转换STL......
  • 微信小程序校园购物学习笔记
    在第二大学远程实习中学习校园购物的学习笔记1.轮播图轮播图是在网购页面最常见的效果,可以轮换播放图片,或者由用户手动切换。使用swiper滑动视图容器进行制作,其中常用属......
  • 抢先看!界面控件DevExtreme 2023产品路线图曝光
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能......