小程序模板网

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

发布时间:2017-12-21 10:02 所属栏目:小程序开发教程

在创建MAP(地图)前,请各位小伙伴们认真的去了解微信小程序开发的说明。https://mp.weixin.qq.com/debug/wxadoc/dev/component/map.html#map了解完MAP(地图)里的属性之后,接下来我们就来创建一个简单的MAP(地 ...

 
 
 

在创建MAP(地图)前,请各位小伙伴们认真的去了解微信小程序开发的说明。https://mp.weixin.qq.com/debug/wxadoc/dev/component/map.html#map

了解完MAP(地图)里的属性之后,接下来我们就来创建一个简单的MAP(地图)控件。

第一步:肯定是创建项目、起项目名、项目地址

PS:我这里以index的文件为名

第二步:我们来写 index.wxml 文件的代码

WXML文件代码:

<map id="map4select" longitude="{{longitude}}" latitude="{{latitude}}" markers="{{markers}}" scale="20" style="width:{{map_width}}px;height:{{map_height}}px" bindregionchange="regionchange" controls="{{controls}}">
 </map>

WXML文件的代码写好之后,就要来进行第三步了。

第三步:写 index.js 文件的代码

var app = getApp()

Page({
  data: {
    map_width: 380
    , map_height: 380
  }
  //show current position
  , onLoad: function (options) {
    console.log(options.schedule_id);
    var that = this;
    // 获取定位,并把位置标示出来
    that.setData({
      longitude: 113.324520
      , latitude: 23.099994
      , markers: [
        {
          id: 0
          , iconPath: "../imgs/ic_position.png"
          , longitude: 113.324520
          , latitude: 23.099994
          , width: 30
          , height: 30
        }
      ]
    })
    //set the width and height
    // 动态设置map的宽和高
    wx.getSystemInfo({
      success: function (res) {
        console.log(res.windowWidth);
        that.setData({
          map_width: res.windowWidth
          , map_height: res.windowWidth
          , controls: [{
            id: 1,
            iconPath: '../imgs/ic_location.png',
            position: {
              left: res.windowWidth / 2 - 8  ,
              top: res.windowWidth / 2 - 16 ,
              width: 30,
              height: 30 
            },
            clickable: true
          }]
        })
      }
    })
  }
  //获取中间点的经纬度,并mark出来
  , getLngLat: function () {
    var that = this;
    this.mapCtx = wx.createMapContext("map4select");
    this.mapCtx.getCenterLocation({
      success: function (res) {
        that.setData({
          longitude: 113.324520
          , latitude: 23.099994
          , markers: [
            {
              id: 0
              , iconPath: "../imgs/ic_position.png"
              , longitude: 113.324520
              , latitude: 23.099994
              , width: 30
              , height: 30
            }
          ]
        })
      }
    })
  }
  , regionchange(e) {
    // 地图发生变化的时候,获取中间点,也就是用户选择的位置
    if (e.type == 'end') {
      this.getLngLat()
    }
  }
  , markertap(e) {
    console.log(e)
  }
})

index.js 和 index.wxml 两个文件的代码已经写好,那么我们就来页面上看看效果。

PS:“../imgs/ic_position.png” 和 “../imgs/ic_location.png” 是我在项目里创建的一个名叫imgs文件夹里面的两个定位小图标,各位小伙伴们可以根据自己的需求改换小图标,只需要把小图标放进imgs文件夹里面,小图标的路径引用正确就可以显示出来。



易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/18215.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询