微信小程序~获取位置信息

微信小程序提供的getlocation来获取用户的定位,能够得到用户的经纬度信息

(注:getloaction需要用户授权scope.userLocation)结合map组件能够得到用户的详细定位

<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" 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: 0,
      latitude: 40.002607,
      longitude: 116.487847,
      callout:{
        content:‘气泡名称‘,
        color: ‘#FF0000‘,
        fontSize: 15,
        borderRadius: 10,
        display: ‘ALWAYS‘,
      },
      width: 35,
      height: 45
    }],
    ... //省略代码
    }
参数名 参数类型 必传 描述
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:2,
            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: 50,
            fillColor:‘#7cb5ec88‘,
            strokeWidth:1
        }]
    }
})
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: 1,
            iconPath: ‘../../img/marker_yellow.png‘,
            position: {
                left: 10,
                top: 360,
                width: 35,
                height: 35
            },
            clickable: true
        }]
    }
}),
controltap: function (e) {
    console.log(e.controlId); # 控件id 1
}
#可以通过在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

.

原文地址:https://www.cnblogs.com/jianxian/p/11108223.html

时间: 2024-11-05 21:33:46

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

微信小程序-获取用户信息和openid,session_key,

1:微信小程序获取用户信息:比如常用的 avatarUrl (用户头像),nickName (用户名称) 等等, (1):获取用户信息调用 wx.getUserInfo 代码如下: 直接请求接口就可以了,随后把数据存放到storage中,下次直接取 就不用再请求接口,, 2:获取 openid (1):请求wx.login 接口,代码如下: url:是微信提供的 appid:是小程序的appid secret:是小程序开发设置的 AppSecret 只要获取到这两项,用户信息可以用于页面,ope

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

最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_key 前端先调 wx.login 得到code传输到后端,后端通过接口 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authoriza

微信小程序获取用户信息及手机号 进行微信登录

一.wxml页面 <view wx:if="{{config.tipsshow1}}" class='dialog-container'> <view class='dialog-mask'></view> <view class='dialog-info'> <view class='dialog-title'>login prompt</view> <view class='dialog-content'

微信小程序 获取位置、移动选点、逆地址解析

WGS-84 地心坐标系,即GPS原始坐标体系.在中国,任何一个地图产品都不允许使用GPS坐标,据说是为了保密.GoogleEarth及GPS芯片使用. 1.GCJ-02火星坐标系,国测局02年发布的坐标体系,它是一种对经纬度数据的加密算法,即加入随机的偏差.高德.腾讯.Google中国地图使用.国内最广泛使用的坐标体系: 2.其他坐标体系:一般都是由GCJ-02进过偏移算法得到的.这种体系就根据每个公司的不同,坐标体系都不一样了.比如,百度的BD-09坐标.搜狗坐标等 本回答由网友推荐 wxm

微信小程序获取用户信息流程

获取用户信息与其他授权不太一样,其他授权会自动弹出对话框,请求获取用户授权,但获取用户信息不回,需要引导用户点击授权按钮同意授权获取用户基本信息 1.前端页面要有授权登录按钮 <button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo" > 授权登录 </button> <view wx:else>请升

微信小程序 - 获取用户信息的几种方式

1. 老接口(上线使用-测试用button先获取用户信息) 1 // 登录 2 wx.login({ 3 success: res => { 4 // 发送 res.code 到后台换取 openId, sessionKey, unionId 5 // 也就是发送到后端,后端通过接口发送到前端,前端接收用户信息等.... 6 wx.setStorageSync('code', res.code); 7 console.log(wx.getStorageSync('code')) 8 9 // 获

微信小程序获取位置

获取位置 getLocation wx.getLocation({ type: 'wgs84', success (res) { const latitude = res.latitude const longitude = res.longitude const speed = res.speed const accuracy = res.accuracy } }) wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 打开地图 wx.getLocat

微信小程序-获取当前位置和城市名

微信小程序-获取当前城市位置 1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting: 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数): 3,微信没有将经纬度直接转换为地理位置,借用腾讯位置服务中关于微信小程序的地理转换JS SDK 的API(返回信息中包括国家,省,市,区,经纬度等地理位置)步骤描述清楚以后,下面就开始按步骤操作了:(本文仅仅讲述如何获取用户地理位置的授权) 图示为获取用户地理位置授权弹窗 在用户首次进入某页面(

微信小程序获取输入框(input)内容

微信小程序---获取输入框(input)内容 wxml <input placeholder="请输入手机号码" maxlength="11" type="tel" bindinput="getInput" /> js Page({ data:{ getInput: null }, getInput:function(){//方法1 this.data.getInput = e.detail.value; }, /