轻源码

  • QingYuanMa.com
  • 全球最大的互联网技术和资源下载平台
搜索
一起源码网 门户 微信小程序 查看主题

微信小程序MAP地图开发入门(一)

发布者: iis | 发布时间: 2018-5-21 09:52| 查看数: 5036| 评论数: 1|帖子模式

作者:北辰,来自原文地址 
相关文章:跳坑《一百零五》map组件,地图使用相关问题 
根目录下 app.js, app.json, app.wxss解释 

2.1 app.js 小程序的逻辑 
2.2 app.json小程序的公共设置 
2.3 app.wxss 小程序的公共样式表

在app.json 配置个tab ( 类似于iOS tabbar)

  1. {
  2. "pages":[
  3. // 文件所在目录结构
  4. // index.js logs.js setup.js
  5. "pages/index/index",
  6. "pages/logs/logs",
  7. "pages/setup/setup"
  8. ],
  9. // 整个的window
  10. "window":{
  11. // 设置导航栏样式
  12. "backgroundTextStyle":"light",
  13. "navigationBarBackgroundColor": "#fff",
  14. "navigationBarTitleText": "夏小天",
  15. "navigationBarTextStyle":"black"
  16. },
  17. // tabbar对象
  18. "tabBar": {
  19. "color": "#dddddd",
  20. "selectedColor": "#1296db",
  21. "borderStyle": "yellow",
  22. "backgroundColor": "#ffffff",
  23. // 这里是个 .js数组
  24. "list": [
  25. {
  26. "pagePath": "pages/index/index",
  27. "text": "首页",
  28. "iconPath": "pages/images/icon3.png",
  29. "selectedIconPath": "pages/images/icon3.png"
  30. },
  31. {
  32. "pagePath": "pages/logs/logs",
  33. "text": "搜索",
  34. "iconPath": "pages/images/icon1.png",
  35. "selectedIconPath": "pages/images/icon1.png"
  36. },
  37. {
  38. "pagePath": "pages/setup/setup",
  39. "text": "设置",
  40. "iconPath": "pages/images/icon2.png",
  41. "selectedIconPath": "pages/images/icon2.png"
  42. }]}
  43. }

一个页面包含的文件结构包含四个文件 .js文件.json文件 .wxml文件 wuss文件(类似于想要布局出iOS中的一个界面需要view model controller 协同工作)

.js文件 功能类似于 iOS中Controller的作用 起到协同的作用, 也就是页面的逻辑
.json 页面配置 比如我想要配置一下logs界面的导航栏文字 
.wxml 页面结构 (也就是有view btn等控件) 
.wxss 页面样式表(可以配置页面控件的位置, 颜色, 圆角等等属性) 
接下来用地图控件写一个简单界面

.js 进行网络请求, 解析数据, 重新赋值data

  1. // 声明一个数组数组
  2. var dataArray = new Array()
  3. Page({
  4. data: {
  5. // 标注的数组, 这个markers最终会在 .wxml中直接被使用, 初始为空, 后面会通过setData方法对他进行赋值.
  6. markers: [],
  7. // 地图上控件数组
  8. controls: [{
  9. // id号 方便找到是哪个控件
  10. id: 2000,
  11. // 图片路径
  12. iconPath: '/pages/images/tuijian.png',
  13. // 相对于地图的位置
  14. position: {
  15. left: 375 - 120,
  16. top: 50,
  17. width: 100,
  18. height: 40
  19. },
  20. // 是否可以点击
  21. clickable: true
  22. }]
  23. },
  24. // header: {'content-type': 'application/json'}
  25. onLoad: function () {
  26. var that = this
  27. // 调用网络请求, 请求停车场数据
  28. // list: [{ header: '今日热闻' }].concat(res.data.stories)
  29. // 进行一个网络请求
  30. wx.request({
  31. url: '',
  32. data: {},
  33. method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  34. header: { 'content-type': 'application/json' }, // 设置请求的 header
  35. success: function(res){
  36. // success
  37. dataArray = res.data // 数据数组
  38. var markers = new Array()
  39. for (var i = 0; i < dataArray.length; i ++)
  40. {
  41. var dic = dataArray[i]
  42. // console.log(dic.coordinateAmap) // 得到高德经纬度坐标点字符串
  43. // 声明一个对象, 用于放置markers的一些参数, 就是iOS中类或者结构体
  44. var info =
  45. {
  46. iconPath: "",
  47. id: 0,
  48. latitude: 31.237524,
  49. longitude: 121.5128895,
  50. width: 25,
  51. height: 25,
  52. name: ""
  53. };
  54. info.id = i
  55. info.width = 25
  56. info.height = 25
  57. // 通过 , 号分割字符串
  58. var arrLongLa = new Array()
  59. arrLongLa = dic.coordinateAmap.split(",")
  60. var longitude = arrLongLa[0]
  61. var latitude = arrLongLa[1]
  62. // 赋值相关信息
  63. info.latitude = latitude
  64. info.longitude = longitude
  65. info.name = dic.address
  66. // 状态判断
  67. if (dic.status == "空")
  68. {
  69. info.iconPath = "/pages/images/markers_icon3.png"
  70. }else if (dic.status == "忙") {
  71. info.iconPath = "/pages/images/markers_icon1.png"
  72. }else if (dic.status == "满") {
  73. info.iconPath = "/pages/images/markers_icon2.png"
  74. }else if (dic.status == "关") {
  75. }else {
  76. info.iconPath = "/pages/images/markers_icon5.png"
  77. }
  78. // 添加对象到数组
  79. markers.push(info)
  80. }
  81. console.log(markers)
  82. // 执行setData, 对markers进行赋值, 之后在 .wxml中引用
  83. that.setData(
  84. {markers: markers}
  85. )
  86. },
  87. fail: function() {
  88. // fail
  89. },
  90. complete: function() {
  91. // complete
  92. }
  93. })
  94. },
  95. // 地图相关动作的几个方法
  96. regionchange(e) {
  97. console.log(e.type)
  98. },
  99. // markers的点击事件
  100. markertap(e) {
  101. // 点击相应的坐标点取出相应的信息
  102. console.log(dataArray[e.markerId])
  103. console.log(e.markerId)
  104. },
  105. // control的点击事件
  106. controltap(e) {
  107. console.log(e.controlId)
  108. },
  109. })

.json文件页面配置

  1. {
  2. "navigationBarTitleText": "logs"
  3. }

.wxml文件 页面UI

  1. <map id="map" longitude="121.5128895" latitude="31.237524" scale="14" controls="{{controls}}" bindcontroltap="controltap" markers="{{markers}}" bindmarkertap="markertap" polyline="{{polyline}}" bindregionchange="regionchange" show-location style="width: 100%; height: 578px;">
  2. </map>

.wxss 配置位置 
这篇没有使用这个文件, 因为基于地图操作

今天这篇大致 布局了一个如下如所示的界面 

最新评论

小绵羊0123 发表于 2022-6-17 19:03
个人音乐网站源码

轻源码让程序更轻更快

QingYuanMa.com

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

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