微信小程序提供的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

.

微信小程序~获取位置信息的更多相关文章

  1. (八)微信小程序---获取定位信息chooseLocation

    微信小程序---获取定位信息  chooseLocation wxml <view bindtap="getlocalPath">{{localPath}}</v ...

  2. 图解微信小程序---获取电影信息

    图解微信小程序---获取电影信息 代码笔记 第一步:编写js文件,调用api获取相对应电影详情信息(注意带入的参数是id不在是榜单的type,电影api的movie后面又斜杠,别忘了,对应的绑定数据的 ...

  3. 微信小程序 获取用户信息并保存登录状态

    微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml

  4. Laravel wxxcx 微信小程序获取用户信息

    wxxcx 是Laravel5微信小程序登录获取用户信息扩展 部署 12345678 # 安装$ composer require iwanli/wxxcx# 注册服务# 在 /config/app. ...

  5. 微信小程序获取用户信息,解密encryptedData 包括敏感数据在内的完整用户信息的加密数据

    package com.iups.wx.wxservice; import java.io.UnsupportedEncodingException; import java.security.Alg ...

  6. 微信小程序 获取用户信息 encryptData解密 C#版本

    最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_ ...

  7. [小程序]微信小程序获取位置展示地图并标注信息

    1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用wx.getLocation获取自己的位置,然后再回调中使用setData ...

  8. 微信小程序获取用户信息

    App({ appData: { userInfo:{ user_portraitUrl: "", user_nick: "", user_gender: 0, ...

  9. 微信小程序获取用户信息“授权失败”场景的处理

    很多的时候我们在处理小程序功能的时候需要用户获取用户信息,但是呢为了信息安全,用户不授权导致授权失败场景:但是小程序第二次不在启动授权信息弹层,为了用户体验,可以用以下方式处理: function i ...

随机推荐

  1. TIBCO Jaspersoft Studio 报表软件使用教程

    Detail 1里面放置动态内容框可以循环遍历数据 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn ...

  2. 十、Spring的@Profile注解

    首先我们来看看spring官方文档对这个注解的解释: The @Profile annotation allows you to indicate that a component is eligib ...

  3. php_mvc实现步骤七

    shop34-5-登录表单 登录功能分析 功能:登录表单 C控制器-动作 back后台admin控制器loginAction动作完成该功能. Application/back/controller/A ...

  4. TCP/IP学习笔记4--网络地址

    "他强由他强,清风拂山岗.他横由他横,明月照大江.世间诸事,敞开心扉,顺其自然." -- 张大千 地址具有两个特性: 1:唯一性 同一个通信网络中的任意两个通信主体不能具有相同的地 ...

  5. 基于卷积神经网络的人脸识别项目_使用Tensorflow-gpu+dilib+sklearn

    https://www.cnblogs.com/31415926535x/p/11001669.html 基于卷积神经网络的人脸识别项目_使用Tensorflow-gpu+dilib+sklearn ...

  6. day33——进程的创建方式、pid、空间隔离、join方法、其他属性、守护进程

    day33 进程创建的两种方式 在windows环境下,开启进程必须在______name______ == "______main______"下面 p.start(): 只是向 ...

  7. 【LEETCODE】51、数组分类,简单级别,题目:581,830,1010,665

    package y2019.Algorithm.array; /** * @ClassName FindUnsortedSubarray * @Description TODO 581. Shorte ...

  8. Helm命令帮助参数

    # helm help The Kubernetes package manager To begin working with Helm, run the 'helm init' command: ...

  9. springboot 实时监控 spring-boot-starter-actuator 包

    对java工程实时监控方式很多,本文主要讲在springboot框架中的监控. springboot框架,自带了actuator监控,在pom中引入jar包即可,如下 1.引入jar <depe ...

  10. Java线程synchronized(一)

    线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的. synchronized:可以在任意对象及方法上加锁,而加锁的这段代码 ...