根据后台数据标点

简介: 根据后台数据标点

1 引言

小程序地图标点可以自己写死也可以根据后台数据自动标点,实现根据后台数据标点便于后期小程序的维护

2 问题

1、根据后台数据返回的经纬度,将标记点渲染到地图上

2、点击各个标记点,显示其一些详细信息

3 方法

思路比较简单,获取后台数据后用for循环遍历经纬度并将其放入markers中即可。这里我们用wx.request获取极速数据API的加油站数据。

wx.request的属性如下:

详情请进RequestTask | 微信开放文档 (qq.com)查看。

极速数据API:

详情请进加油站查询API接口_免费数据接口 - 极速数据 (jisuapi.com)查看。

index.wxml

<map
style="width:100%;height:500px"
markers="{{markers}}"
latitude="{{markers[0].latitude}}" longitude="{{markers[0].longitude}}"
></map>
var app=getApp();
Page({
/**
  * 页面的初始数据
  */
data: {
   markers:[],
},
/**
  * 生命周期函数--监听页面加载
  */
onLoad: function (options) {
var that=this;
//获得后台数据,并显示标记  
   wx.request({
     url: 'https://api.jisuapi.com/oilstation/nearby?appkey=' + app.globalData.appkey,
     data:{//请求的参数
       lat:latitude,
       lng: longitude,
       distance:10000,
     },
     success:function(res){//请求成功之后执行的方法
       var result=res.data.result;
       console.log('结果是:',result)//在控制台打印出请求结果
       for(var i=0;i<result.length;i++){//用for循环将返回的经纬度放入markers中
         let lat=result[i].lat; //取出每条数据中的参数
         let lng=result[i].lng;
         let name=result[i].name;
         let address = result[i].address;
         let tel = result[i].tel;
         var index="markers["+(i)+"]";
         that.setData({
           [index]:{
             latitude: lat,
             longitude: lng,
             iconPath: "../../image/site.png",//标记点的图标
             width: 30,
             height: 30,
             callout: {
               content: name+'\n'+address+'\n'+tel,//显示相关信息
               color: 'red',
               fontSize: 13,
               borderRadius: 5,
               borderWidth: 1,
               borderColor: '#0000ff',
               padding: 2,
               display: 'BYCLICK'
             }
           },
         })
       }
     }
   })
},
})

app.js

//app.js
App({
onLaunch: function () {
},
globalData: {
   userInfo: null,
   appkey:'8bfb05c835c756bc'//你申请的appkey
}
})

使用wx.request需要在详情 ==> 本地设置 中打开【不校验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书】

如图:

4 实验结果与讨论

最终结果如图:

控制台打印的后台数据:

5 结语

根据后台在地图上标点的重点是拿到数据后如何处理,这里我们用for循环将其放入markers中,总体上较为简单。下期将介绍如何计算自己位置与标记点之间的距离

目录
相关文章
|
2月前
|
前端开发 JavaScript 安全
前端JS实现密码校验键盘横竖、26字母、相同字母、相同数字、密码包含用户名、数字 字母不能连续 不能相同三个、不能横向 竖向 连续三个 包含字符、不能有中文符号
该 JavaScript 代码实现了一个严格的密码校验功能,确保密码满足多种安全要求,包括长度、字符类型、不包含中文及特殊字符、不与用户名相似等。通过多个辅助函数,如 `validateFormat` 检查密码格式,`isHasChinaCharFun` 检测中文符号,`getCharAll` 生成键盘组合,以及 `checkPasswordFun` 综合验证密码的有效性和安全性。此工具对于提高用户账户的安全性非常有用。
87 0
|
7月前
如何给视频中插入视频,字幕,以及去掉前后广告
如何给视频中插入视频,字幕,以及去掉前后广告
|
前端开发
前端切图:用正则替换手机号码
前端切图:用正则替换手机号码
55 0
|
小程序
微信小程序连续显示多个空格
微信小程序连续显示多个空格
375 0
微信小程序连续显示多个空格
|
JavaScript
jquery自动监测输入字数,自动截取,输入框
jquery自动监测输入字数,自动截取,输入框
百度脑图中如果想输入换行符本身(\n)怎么输入
百度脑图中如果想输入换行符本身(\n)怎么输入
百度脑图中如果想输入换行符本身(\n)怎么输入
|
前端开发
有关后端返回的是数字信息 但是前端需要显示字符串(汉字)的信息问题
有关后端返回的是数字信息 但是前端需要显示字符串(汉字)的信息问题
469 0
后台生成一个随机的英文与数字组合的验证码
后台生成一个随机的英文与数字组合的验证码
164 0
|
Java Windows 前端开发
【前台 乱码】 前台单独乱码+后台往前台传输的数据乱码
解决方法: 第一:      这句话是加在每个页面的最上面,在之前加的  并且  request.setCharacterEncoding("gb2312");第二:   配置Tomcat的 server.xml。
1021 1
|
自然语言处理 前端开发 UED
浅谈移动端过长文本溢出显示省略号的实现方案
本文通过图文并茂的方式,由浅入深地讲述了多种文本过长场景下显示省略号的背景和解决方案。
1172 0