湖畔开源电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
热搜: 4G NB ZigBee WiFi
查看: 2356|回复: 0

微信小程序入门5--湖畔云GPS定位信息

[复制链接]

88

主题

89

帖子

814

积分

超级版主

Rank: 8Rank: 8

积分
814
发表于 2020-2-25 16:08:44 | 显示全部楼层 |阅读模式
本帖最后由 湖畔科技 于 2020-2-25 16:17 编辑

通过湖畔云GPS定位,获得经纬度信息,通过百度地图转换出相应的位置信息。
过程:
第一步:获取湖畔云GPS定位经纬度信息
第二步:获取ak及下载百度地图微信小程序JavaScript API模块
第三步:实例

第一步:
通过网络请求湖畔云GPS定位经纬度信息的链接,例如:https://www.nnhpiot.com/v1/datapoints/device/86/sensor/82
请求成功后得到经纬度信息:lng、lat。通过如下代码将经纬度信息进行提取并转换成float类型。
  1. latitude: parseFloat(res.data.value.split(',')[0].split(':')[1]),
  2. longitude: parseFloat(res.data.value.split(',')[1].split(':')[1]),
复制代码
第二步:
得到经纬度信息后,将经纬度信息代入到百度地图开放平台提供的逆地理编码的API:
http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的ak&output=json&coordtype=wgs84ll&location=31.225696563611,121.49884033194

该API有两个必须的参数:location、ak。
关于ak的获取及下载百度地图微信小程序JavaScript API模块可见:https://www.nnhpbbs.com/forum.php?mod=viewthread&tid=82&fromuid=3
(查看图片需注册登录)

第三步:
打开快速创建的微信小程序 pages/demo/demo.js 文件,用下面的代码完全替换原代码。
注意替换您的AK!!!否则可能没有效果。
  1. var bmap = require('../../libs/bmap-wx.min.js');  //引入API模块!!!
  2. var wxMarkerData = [];
  3. Page({
  4.   data: {
  5.     markers: [{
  6.       iconPath: '../../img/marker_red.png',
  7.       latitude: 0,
  8.       longitude: 0,
  9.     }],
  10.     latitude: 0,
  11.     longitude: 0,
  12.     address: '',
  13.   },
  14.   onLoad: function() {
  15.     var that = this;  //把this对象复制到临时变量that
  16.     // 新建百度地图对象
  17.     var BMap = new bmap.BMapWX({
  18.       ak: '您的AK'
  19.     });

  20.    wx.request({
  21.       url: 'https://www.nnhpiot.com/v1/datapoints/device/86/sensor/82',
  22.       data: {},
  23.       success: function (res) {
  24.         that.setData({
  25.           latitude: parseFloat(res.data.value.split(',')[0].split(':')[1]),
  26.           longitude: parseFloat(res.data.value.split(',')[1].split(':')[1]),
  27.           'markers[0].latitude': res.data.value.split(',')[0].split(':')[1],
  28.           'markers[0].longitude': res.data.value.split(',')[1].split(':')[1]
  29.           });

  30.         wx.request({
  31.           url: 'http://api.map.baidu.com/reverse_geocoding/v3/?ak=您的AK&output=json&coordtype=wgs84ll&location=' + that.data.latitude + ',' + that.data.longitude,
  32.           data: {},
  33.           success: function (res) {
  34.             that.setData({
  35.               address: res.data.result.formatted_address
  36.             });
  37.           },
  38.         })

  39.       },
  40.     })            

  41.   },
  42. })
复制代码
打开 pages/demo/demo.wxml 文件,用下面的代码完全替换原代码。
  1. <view class="map_container">
  2.   <map class="map" id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location="true" markers="{{markers}}"></map>
  3. </view>
  4. <view class="rgc_info">
  5.   <text>地址:{{address}}</text>
  6. </view>
复制代码
打开 pages/demo/demo.css 文件,用下面的代码完全替换原代码。
  1. .map_container{
  2.     height: 300px;
  3.     width: 100%;
  4. }

  5. .map {
  6.     height: 100%;
  7.     width: 100%;
  8. }
复制代码
在微信开发者工具中,可以临时开启开发环境不校验请求域名、TLS版本及HTTPS证书 选项,跳过服务器域名的校验。

完成效果如下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|官方淘宝店|手机版|湖畔科技官网|加入QQ群|湖畔开源电子论坛 ( 公安备案:45010702001370(交互式论坛) 工信部备案:桂ICP备17008293号 )

GMT+8, 2024-4-20 15:53 , Processed in 0.046166 second(s), 22 queries .

Powered by 湖畔科技

Copyright © 2001-2021

快速回复 返回顶部 返回列表