微信小程序大热,在小程序过程中,我们很多时候都会用到地图。不管是企业的地址,还是商家的配送都会用到地图;

我在刚写地图这一块时,在网上也参考了很多网友的方法,始终有Bug(类似于地图拖拽是画面抖动,无法点击跳转到导航页面等等)

下面的代码是后台动态添加坐标(经度纬度的方法)

我这里有这么一个方法,希望对你有用:
wxml:

<map bindtap="toMap" showLocation id="map" latitude="{{latitude}}" longitude="{{longitude}}" markers="{{markers}}" scale="14">
</map>

js:

var requetNet = require('../../common/js/request.js');
var app = getApp() Page({
data: {
companyMessage: [],
latitude: 0,
longitude: 0,
markers: [{
iconPath: "../../images/consult/ic_position.png",
latitude: 0,
longitude: 0,
width: 17,
height: 35
}],
form_info:[]
},
onLoad: function(t) {
var that = this;
requetNet.send({
url: '/enterprise/info/getRelationInfo.json',
opt: {
loading: true
},
success: function(res) {
var companyMessage = res.data;
that.setData({
companyMessage: companyMessage,
latitude: res.data.addressLatitude,
longitude: res.data.addressLongitude,
});
var markers = that.data.markers;
markers[0].latitude = res.data.addressLatitude;
markers[0].longitude = res.data.addressLongitude;
that.setData({
markers: markers
});
}
});
},
toMap: function() {
var companyMessage = this.data.companyMessage;
wx.openLocation({
latitude: Number(companyMessage.addressLatitude),
longitude: Number(companyMessage.addressLongitude),
name: companyMessage.addressInfo,
scale: 15
});
}
})

request.js

var app;

function requestNet(par) {
if (!app)
app = getApp();
wx.getStorage({
key: 'openId',
success: function(res) {
var openId = "";
if (res.data && res.data.openId)
openId = res.data.openId;
startReq(par, openId);
},
fail: function() {
startReq(par, "");
}
});
} function startReq(par, openId) {
var data = par.data || {};
try {
data.openId = openId;
} catch (e) {}
var opt = par.opt;
if (opt && opt.loading === true) {
wx.showLoading({
title: '加载中',
mask: true
});
}
wx.request({
url: app.globalData.url + par.url,
data: data,
header: {
'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
// 'applicationType': app.globalData.applicationType || ""
},
method: 'POST',
success: function(res) {
wx.hideLoading();
if (res.statusCode != 200) {
wx.showToast({
title: "网络连接失败",
icon: 'none',
duration: 2000
});
return;
}
res = res.data; var success = par.success;
var code = res.code;
if (opt && opt.mustOK === false) {
success && success(res);
return;
}
if (code == 200) {
success && success(res);
return;
}
wx.showToast({
title: res.msg || "提示",
icon: 'none',
duration: 2000
});
},
fail: function() {
wx.hideLoading();
var fail = par.fail;
if (fail) {
fail && fail();
} else {
wx.showToast({
title: "网络连接错误,请检查网络",
icon: 'none',
duration: 2000
});
}
},
complete: function() { }
});
}
module.exports = {
send: requestNet
}

wxss

#map {
width: 100%;
height: 350rpx;
}

有不妥的地方,请指出!

未经作者同意,不得转载或者复制!

微信小程序引入腾讯地图API方法的更多相关文章

  1. 微信小程序 使用腾讯地图SDK详解及实现步骤

    信小程序 使用腾讯地图SDK详解及实现步骤    微信小程序JavaScript SDK: 官方文档:http://lbs.qq.com/qqmap_wx_jssdk/index.html 步骤: 1 ...

  2. 微信小程序城市定位(百度地图API)

    概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...

  3. 微信小程序 - 调用腾讯地图插件

    1. 登录公众号平台 https://mp.weixin.qq.com/ 2. 设置->第三方服务->添加插件->输入插件名称->申请 3. 项目中使用 3.1 app.jso ...

  4. 微信小程序集成腾讯云 IM SDK

    微信小程序集成腾讯云 IM SDK 1.背景 因业务功能需求需要接入IM(即时聊天)功能,一开始想到的是使用 WebSocket 来实现这个功能,然天意捉弄(哈哈)服务器版本太低不支持 wx 协议(也 ...

  5. 微信小程序引入md5.js

    今天给大家安利一下微信小程序引入md5.js的方法,不多说 md5.js在下面 直接复制到项目的utils/md5.js即可 /* * A JavaScript implementation of t ...

  6. uni-app开发微信小程序引入UI组件库(Vant-weapp)步骤

    uni-app开发微信小程序引入UI组件库(Vant-weapp)步骤 这里以vant-weapp为例 uni-app官方文档介绍引入组件的方法 1. 新建相关目录 根目录下创建 wxcomponen ...

  7. 微信小程序引入ECharts组件

    首先打开ECharts网页 https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8 ...

  8. 微信小程序自动去除input空格的方法

    当用户输入账号或者密码的时候,可能会有输入空格的情况,但是实际需要是不能够有空格的,所以我们要做一个去除空格,并且适应所有input的name参数的方法,下面请看源码: wxml: <input ...

  9. 微信小程序调用用百度地图天气功能

    #小程序之调用百度地图天气功能 本篇博客主要介绍小程序在百度地图中获取天气信息,如有不全请指出.下面先上效果图 主要内容 百度地图API的个人密钥,也就是AK 请求百度地图API接口数据 获取到的信息 ...

随机推荐

  1. NoVNC安装部署

    noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控制面板中,比如 Op ...

  2. des 加密解密工具类

    最近在做des的双对称加密解密,特此记录一下. des对称加密,是一种比较传统的加密方式,其加密运算.解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码 ...

  3. C++ 继承函数

    #include <iostream> using namespace std; class passport { public: passport() //默认构造 { } passpo ...

  4. C++ 理解类 和 类中的public、protected、private

    我们要明确,不只是C++有类,很多语言也会用到类,因为现在很多都是面向对象编程... 在c++中,关于类的理解,个人理解是这样的,具有共同属性的一个集合被称为类, 比如说人这个集合,具有性别,年龄,出 ...

  5. PPP协议(简述)

    PPP协议(链路层协议):用于点对点信道.互联网用户通常需要连接到某个ISP(运营商)之后才能接入到互联网,PPP协议是用户计算机和ISP(运营商)进行通信时所使用的数据链路层协议.该协议可支持同一时 ...

  6. [BUG]微信浏览器 iOS input 失焦页面不回弹

    描述 ios13. ios中,input唤醒软键盘后,body整体会向上滚动,如果input框输入完成确定后,如果页面在最底部则不回弹,导致fixed布局实际效果上移,fixed布局内按钮点不到. 如 ...

  7. Docker基本概念及架构

    一.Docker基本概念 Docker是一个开源的容器引擎,基于Go 语言并遵从 Apache2.0 协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

  8. 动手建立jdbc连接

    工具:Idea  Navicat 环境:jdk 1.8  mysql-5.7.27-winx64 创建一个project 打开navicat开启连接. 在idea中导入数据库. 导入好后可以开始连接了 ...

  9. EPX-Studio操作多线程的方法

    procedure TF1167908962.Button1Click(Sender: TObject); begin ThIndex := ; EPXThread1.StartThread; EPX ...

  10. Mysql 查询天、周,月,季度、年的数据

    Mysql 查询天.周,月,季度.年的数据 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 ...