根据后台数据标点

简介: 根据后台数据标点

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中,总体上较为简单。下期将介绍如何计算自己位置与标记点之间的距离

目录
相关文章
|
1月前
|
前端开发 JavaScript 安全
前端JS实现密码校验键盘横竖、26字母、相同字母、相同数字、密码包含用户名、数字 字母不能连续 不能相同三个、不能横向 竖向 连续三个 包含字符、不能有中文符号
该 JavaScript 代码实现了一个严格的密码校验功能,确保密码满足多种安全要求,包括长度、字符类型、不包含中文及特殊字符、不与用户名相似等。通过多个辅助函数,如 `validateFormat` 检查密码格式,`isHasChinaCharFun` 检测中文符号,`getCharAll` 生成键盘组合,以及 `checkPasswordFun` 综合验证密码的有效性和安全性。此工具对于提高用户账户的安全性非常有用。
27 0
|
前端开发
前端切图:用正则替换手机号码
前端切图:用正则替换手机号码
52 0
|
小程序
微信小程序连续显示多个空格
微信小程序连续显示多个空格
363 0
微信小程序连续显示多个空格
零基础VB教程034期:统计与分离字符串文本中的数字字母等
零基础VB教程034期:统计与分离字符串文本中的数字字母等
109 0
|
前端开发
有关后端返回的是数字信息 但是前端需要显示字符串(汉字)的信息问题
有关后端返回的是数字信息 但是前端需要显示字符串(汉字)的信息问题
461 0
|
JavaScript Java Apache
java后台对前端输入的特殊字符进行转义
转自:http://www.cnblogs.com/yangzhilong/p/5667165.html     java后台对前端输入的特殊字符进行转义   HTML: 常见的帮助类有2个:一个是spring的HtmlUtils,另外一个是apache.
2927 0
|
Java Windows 前端开发
【前台 乱码】 前台单独乱码+后台往前台传输的数据乱码
解决方法: 第一:      这句话是加在每个页面的最上面,在之前加的  并且  request.setCharacterEncoding("gb2312");第二:   配置Tomcat的 server.xml。
1016 1
条码打印软件如何实现二维码内容换行显示
制作公司二维码名片的时候往往会涵盖:公司名称,地址,电话,网址等等,通过微信扫描就可以轻松实现公司信息的呈现。如果制作的二维码名片中的信息可以换行显示,那么是不是会比较清晰明了呢,下面看一下二维码名片中的内容换行和不换行的对比效果,如下图:   通过图片可以看到,二维码名片中的内容换行显示会更简洁,也更容易辨认。
2084 0
|
容器
第125天:移动端-空白字符问题解决办法
1、当我们想使用百分比来进行两个盒子的并排 代码: 1 DOCTYPE html> 2 3 4 5 6 html, 7 body { 8 margin: 0; 9 padding: 0; 10 } 11 12 .
1073 0