微信小程序~获取位置信息
微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息
(注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位
<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="" show-location style="width: 100%; height: 400rpx;"></map>
onReady:function(){
wx.getLocation({
type: 'wgs84',//默认wgs84是全球定位系统获取的坐标,gcj02是国家测绘局给出的坐标
success: (res) => {
console.log('经度' + res.longitude + ',纬度' + res.latitude);
this.setData({
latitude: res.latitude,
longitude: res.longitude
})
}
})
}

| 参数名 | 参数类型 | 描述 |
|---|---|---|
| longitude | Number | 中心经度 |
| latitude | Number | 中心纬度 |
| scale | Number | 缩放级别,取值范围 5-18(默认16 number) |
| markers | Array | 标记点 |
| polyline | Array | 路线 |
| circle | Array | 圆 |
| controls | Array | 控件 |
| include-points | Array | 缩放视野以及所有给定的坐标点 |
| circle | Boolean | 圆 |
| show-location | EventHandle | 显示带有方向的当前定位点 |
| bindmarkertap | EventHandle | 点击标记点时触发 |
| bindcontroltap | EventHandle | 点击控件时触发 |
| bindregionchange | EventHandle | 视野发生变化时触发 |
| bindtap | EventHandle | 点击地图时触发 |
除了显示基本地图,还可以在地图上添加markers–标注,polyline–折线,circles–圆形,controls–控件。
markers
data: {
markers: [{
iconPath: "../../img/marker_red.png",
id: ,
latitude: 40.002607,
longitude: 116.487847,
callout:{
content:'气泡名称',
color: '#FF0000',
fontSize: ,
borderRadius: ,
display: 'ALWAYS',
},
width: ,
height:
}],
... //省略代码
}
| 参数名 | 参数类型 | 必传 | 描述 |
|---|---|---|---|
| id | Number | N | 标记点id(marker事件回调会返回此id) |
| longitude | Number | Y | 中心经度(浮点数,范围:-180~180) |
| latitude | Number | Y | 中心纬度(浮点数,范围:-90~90) |
| title | String | N | 标注点名 |
| iconPath | String | Y | 显示的图标(项目目录下的图片路径,支持相对路径写法,以‘/’开头,则表示相对小程序的根目录,也支持临时路径) |
| rotate | Number | N | 旋转角度(顺时针旋转的角度,范围:0~360,默认0) |
| alpha | Number | N | 标注的透明度(默认1,无透明) |
| width | Number | N | 标注图标宽度(默认图标实际宽度) |
| height | Number | N | 标注图标高度(默认图标实际高度) |
| callout | Object | N | 自定义标注点上方的气泡窗口 ({content,color,fontSize,borderRadius,bgColor,padding,boxShadow,display}) |
| label | Object | N | 为标记点旁边增加标签({color,font Size,content,x,y},可识别换行符,x,y原点是marker对应的经纬度) |
polyline
指定一系列坐标点,从数组第一项连线至最后一项
| 参数名 | 参数类型 | 必传 | 描述 |
|---|---|---|---|
| points | Array | Y | 经纬度数组([{latitude:0,longitude:0}]) |
| color | String | N | 线的颜色(8位16进制表示,后两位表示alpha值,如:#000000AA) |
| width | Number | N | 线的宽度 |
| dotted'Line | Boolean | N | 是否是虚线(默认false) |
// .wxml
<map id="myMap" style='width:100%;height:50%' longitude="{{longitude}}" latitude="{{latitude}}" polyline='{{polyline}}'/>
// .js
Page({
data: {
polyline:[{
points:[{
latitude:'40.006822',
longitude:'116.481451'
}, {
longitude: '116.487847',
latitude: '40.002607'
}, {
longitude: '116.496507',
latitude: '40.006103'
}, {
latitude:'40.002607',
longitude: '116.587847',
}],
width:,
color:'#000000AA',
dottedLine:false
}]
}
})
circles
在地图上显示圆
| 参数名 | 参数类型 | 必传 | 描述 |
|---|---|---|---|
| longitude | Number | Y | 中心经度(浮点数,范围:-180~180) |
| latitude | Number | Y | 中心纬度(浮点数,范围:-90~90) |
| color | String | N | 描边颜色(8位16进制表示,后两位表示alpha值,如:#000000AA) |
| fill'Color | String | N | 填充颜色(8位16进制表示,后两位表示alpha值,如:#000000AA) |
| strokeWidth | Number | N | 描边宽度 |
| radius | Number | Y | 半径 |
// .wxml
<map id="myMap" style='width:100%;height:50%' longitude="{{longitude}}" latitude="{{latitude}}" circles='{{circles}}'/>
// .js
Page({
data: {
circles:[{
latitude:40.002607,
longitude: 116.587847,
color: '#ee7788aa',
radius: ,
fillColor:'#7cb5ec88',
strokeWidth:
}]
}
})
controls
在地图上显示控件,控件不随地图移动
| 参数名 | 参数类型 | 必传 | 描述 |
|---|---|---|---|
| id | Number | N | 控件id(在控件点击事件回调返回此id) |
| position | Object | Y | 控件在地图的位置(控件相对地图位置) |
| icon'Path | String | Y | 显示的图标(项目路径下的路径,支持相对路径写法,以‘/’开头表示相对小程序的根目录) |
| clickable | Boolean | N | 是否可点击(默认不可点击) |
position
| 参数名 | 参数类型 | 必传 | 描述 |
|---|---|---|---|
| left | Number | N | 距离地图左边界的距离(默认为0) |
| top | Number | N | 距离地图上边界的距离(默认为0) |
| width | Number | N | 控件宽度(默认图片宽度) |
| height | Number | N | 控件高度(默认图片高度) |
// .wxml
<map id="myMap" style='width:100%;height:400px' longitude="{{longitude}}" latitude="{{latitude}}" controls='{{controls}}' bindcontroltap='controltap'/>
// .js
Page({
data: {
controls: [{
id: ,
iconPath: '../../img/marker_yellow.png',
position: {
left: ,
top: ,
width: ,
height:
},
clickable: true
}]
}
}),
controltap: function (e) {
console.log(e.controlId); # 控件id
}
#可以通过在map上添加一个按钮,来实现诸如:定位、状态返回等操作。
#(直接通过布局文件在map上添加view是显示不出来的)
绑定事件
| 参数名 | 参数类型 | 描述 |
|---|---|---|
| bindmarkertap | EventHandel | 点击标记点时触发 |
| bindcontroltap | EventHandel | 点击控件时触发 |
| bindregionchange | EventHandel | 视野发生变化时触发 |
| bindtap | EventHandel | 点击地图时触发 |
BUG
关于经纬度,官方文档上都写的是Number类型。但是通过IDE调试的时候,写成字符串也是可以的。但是在IOS真机上运行时,markers却显示不出来,也不报错。
后来自己对照属性的类型,发现后台传来的经纬度是字符串类型的。而字符串类型的经纬度在IOS真机上经测试就是显示不出来。
所以将字符串转成Number类型即可。
附原始手册地址:http://blog.csdn.net/crazy1235/article/details/55004841
.
微信小程序~获取位置信息的更多相关文章
- (八)微信小程序---获取定位信息chooseLocation
微信小程序---获取定位信息 chooseLocation wxml <view bindtap="getlocalPath">{{localPath}}</v ...
- 图解微信小程序---获取电影信息
图解微信小程序---获取电影信息 代码笔记 第一步:编写js文件,调用api获取相对应电影详情信息(注意带入的参数是id不在是榜单的type,电影api的movie后面又斜杠,别忘了,对应的绑定数据的 ...
- 微信小程序 获取用户信息并保存登录状态
微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml
- Laravel wxxcx 微信小程序获取用户信息
wxxcx 是Laravel5微信小程序登录获取用户信息扩展 部署 12345678 # 安装$ composer require iwanli/wxxcx# 注册服务# 在 /config/app. ...
- 微信小程序获取用户信息,解密encryptedData 包括敏感数据在内的完整用户信息的加密数据
package com.iups.wx.wxservice; import java.io.UnsupportedEncodingException; import java.security.Alg ...
- 微信小程序 获取用户信息 encryptData解密 C#版本
最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_ ...
- [小程序]微信小程序获取位置展示地图并标注信息
1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用wx.getLocation获取自己的位置,然后再回调中使用setData ...
- 微信小程序获取用户信息
App({ appData: { userInfo:{ user_portraitUrl: "", user_nick: "", user_gender: 0, ...
- 微信小程序获取用户信息“授权失败”场景的处理
很多的时候我们在处理小程序功能的时候需要用户获取用户信息,但是呢为了信息安全,用户不授权导致授权失败场景:但是小程序第二次不在启动授权信息弹层,为了用户体验,可以用以下方式处理: function i ...
随机推荐
- Jenkins - 以Docker方式安装启动Jenkins
1 - 官网信息 操作步骤:https://jenkins.io/zh/doc/book/installing/#docker Docker映像地址:https://hub.docker.com/r/ ...
- PCL贪婪投影三角化算法
贪婪投影三角化算法是一种对原始点云进行快速三角化的算法,该算法假设曲面光滑,点云密度变化均匀,不能在三角化的同时对曲面进行平滑和孔洞修复. 方法: (1)将三维点通过法线投影到某一平面 (2)对投影得 ...
- IIS中发布FTP支持断点续传
IIS10中发布FTP默认就是支持断点续传的.
- OpenJudge 1088 滑雪
总时间限制: 1000ms 内存限制: 65536kB 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者 ...
- [转帖]中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作
中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作 http://www.itpub.net/2019/10/31/3942/ 中信银行 gold ...
- 解决python中的Non-UTF-8 code starting with ‘\xbs4’ in file错误
出现错误如下图: 主要原因为编辑python脚本使用的编辑器编码有问题.我使用的编辑器是notepad++,由于没有做Python语言编辑配置,默认使用的是ANSI编码(右下角位置有编码格式),如下: ...
- python多线程一些知识点梳理
学习python的进程和线程以来,对这两个概念一直都处于模糊状态,所以决定花点时间好好学习一下这块知识.以下是我自己在学习过程中形成的一些疑问以及搜集的一些相应的比较好的答案,整理如下,方便复习自查. ...
- k8s yaml格式的pod定义文件完整内容
apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 ...
- Java 哈希表
public int firstUniqChar(String s){ int[] freq=new int[26]; for(int i=0;i<s.length();i++){ freq[s ...
- node-red 安装
介绍 Node-RED背景介绍• Node-Red是IBM公司开发的一个可视化的编程工具.它允许程序员通过组合各部件来编写应用程序.这些部件可以是硬件设备(如:Arduino板子).Web API(如 ...