使用uniapp是因为它是一个使用vue.js开发所有前端应用的框架,开发者编写一套代码,可以发布到ios,android,web以及各种小程序,快应用等多个平台。 使用map地图组件开发,地图组件用于展示地图(使用的时腾讯地图),说一下它的属性有:
longitude(类型为Number,没有默认值,表示中心经度)
latitude(类型为Number,没有默认值,表示中心纬度)
scale(类型为Number,默认值为16,缩放级别取值范围为5-18)
markers(类型为Array数组,类型为数组即表示地图上可以有多个,没有默认值,表示标记点)
polyline(类型为Array数组,没有默认值,表示路线,数组上的所有点连成线)
include-points(类型Array数组,表示缩放视野已包含所有给定的坐标点)
由之前描述可知,markers属性类型为Array,表示标记点用于在地图上显示标记的位置。这个数组属性,它里面有它的对象配置属性,分别是:
id,表示标记点id,类型为Number,必填项,marker点击事件回调会返回此id,建议为每个marker设置上Number类型id,保证更新marker时有更好的性能。
title,标注点名,类型String,不是必填,点击时显示,callout存在时将被忽略
iconPath,显示的图标,类型String,必填项,项目目录下的图片路径
rotate,旋转角度,类型Number,不是必填,顺时针旋转的角度,范围 0 ~ 360,默认为 0
alpha,标注的透明度,类型Number,不是必填,默认1,无透明,范围 0 ~ 1
width,标注图标宽度,类型Number,不是必填,默认为图片实际宽度
height,标注图标高度,类型Number,不是必填,默认为图片实际高度
callout,自定义标记点上方的气泡窗口,类型Object,不是必填 - 可识别换行符
label,为标记点旁边增加标签,类型Object,不是必填 - 可识别换行符
anchor,经纬度在标注图标的锚点,默认底边中点,不是必填,{x, y},x表示横向(0-1),y表示竖向(0-1)。{x: .5, y: 1} 表示底边中点
id,控件id,Number,不必填,在控件点击事件回调会返回此id
position,控件在地图的位置,Object,必填,控件相对地图位置
iconPath,显示的图标,String,必填,项目目录下的图片路径,支持相对路径写法,以’/'开头则表示相对项目根目录;也支持临时路径
clickable,是否可点击,Boolean,不必填,默认不可点击
left,距离地图的左边界多远,Number,不必填,默认为0
top,距离地图的上边界多远,Number,不必填,默认为0
width,控件宽度,Number,不必填,默认为图片宽度
height,控件高度,Number,不必填,默认为图片高度
注意在uniapp中地图组件的经纬度必填,如果不填,经纬度则默认值是北京的经纬度。 2.uniapp使用map组件 基本使用方法 使用uniapp开发中的map组件,基本使用方法:
为了实现多端兼容,综合考虑编译速度、运行性能等因素,uni-app
约定了如下开发规范:
ES6 API 的支持,详见如下表格部分(x
表示不支持,无特殊说明则表示支持):
uni-app支持使用npm安装第三方包。
此文档要求开发者们对npm有一定的了解,因此不会再去介绍npm的基本功能。如若之前未接触过npm,请翻阅进行学习。
若项目之前未使用npm管理依赖(项目根目录下无package.json文件),先在项目根目录执行命令初始化npm工程:
cli项目默认已经有package.json了。HBuilderX创建的项目默认没有,需要通过初始化命令来创建。
在项目根目录执行命令安装npm包:
安装完即可使用npm包,js中引入npm包:
支持微信小程序组件(2.4.7+) |
此文档要求开发者对各端小程序的自定义组件有一定了解,没接触过小程序自定义组件的可以参考:
┌─wxcomponents 微信小程序自定义组件存放目录
│ └──custom 微信小程序自定义组件
├─mycomponents 支付宝小程序自定义组件存放目录
│ └──custom 支付宝小程序自定义组件
├─swancomponents 百度小程序自定义组件存放目录
│ └──custom 百度小程序自定义组件
下面以微信小程序官方自定义组件示例 为例演示小程序自定义组件的使用方式。 其他组件使用示例见GitHub:。 插件市场有一个完整的vant weapp
引用好的示例工程,详见。
vue
的数据和事件绑定方式
详细的小程序转uni-app语法差异可参考文档。
WXS是一套运行在视图层的脚本语言,。
它的特点是运行在视图层。当需要避免逻辑层和渲染层交互通信折损时,可采用wxs。
与wxs类似,百度小程序提供了Filter、阿里小程序提供了SJS,uni-app也支持使用这些功能,并将它们编译到百度和阿里的小程序端。不过它们的功能还不如wxs强大。此外头条系小程序自身不支持类似功能。
App端nvue解决此类需求,不应该使用wxs,而是使用bindingx。
以下是一些使用 WXS 的简单示例,要完整了解 WXS 语法,请参考。本示例使用wxs响应touchmove
事件,减少视图层与逻辑层通信,使滑动更加丝滑。
支付宝小程序,百度小程序官方暂未支持事件响应,不过也可以使用对应的SJS、Filter过滤器实现一些数据处理的操作,以下代码展示了一个时间格式化的小功能
<script>
标签引入
script
的标签属性name
、from
被统一为了module
、src
以便后续实现多平台统一写法
script
标签会分别被打包至对应支持平台,不需要额外写条件编译
HBuilderX 2.2.5
开始,不推荐使用各个小程序自有的引入方式,推荐使用script
标签引入
全称是微信脚本语言,它不够强大。uni-app的app端和h5端做了更多扩展,但扩展后的技术,不再适合使用wxs这个名字了。新的名称叫renderjs
。
本人所在的公司最近在做共享电动车的项目,打开该应用看到的就是一副地图,可以获取附近共享电动车的地址、状态等信息,开发这个应用程序还需要在地图上规划路线、动态显示轨迹、轨迹回放等功能。共享开发的项目功能总会用到LBS(Location Based Service),即基于位置的服务,国内提供地图服务的有百度地图、高德地图、腾讯地图,本文选取的是腾讯位置服务来进行地图功能的开发。
需要申请key,速度快,有基本信息
// 悬浮标记显示信息
为什么要用个性化地图,提高不同场景下地图的展现效果和用户体验。
为什么选择腾讯位置服务个性化地图:
2.验证手机 与 邮箱
3.申请开发密钥(Key)
// 引入SDK核心类,js文件根据自己业务,位置可自行放置 key: '自己申请,我的就不放出来了' //region:'北京', //设置城市名,限制关键词所示的地域范围,非必填参数
//获取表单传入的位置坐标,不填默认当前位置,示例为string格式 * 当get_poi为1时,检索当前位置或者location周边poi数据并在地图显示,可根据需求是否使用 //当get_poi为0时或者为不填默认值时,检索目标位置,按需使用
geocoder – 提供由地址描述到所述位置坐标的转换,与逆地址解析reverseGeocoder()的过程正好相反。
//from参数不填默认当前地址 //获取表单提交的经纬度并设置from和to参数(示例为string格式)
调用获取城市列表接口,效果图如下:
获取城市区县,效果图如下:
腾讯位置服务为微信小程序提供了基础的标点能力、线和圆的绘制接口等地图组件和位置展示、地图选点等地图API位置服务能力支持,使得开发者可以自由地实现自己的微信小程序产品。 在此基础上,腾讯位置服务微信小程序JavaScript
SDK是专为小程序开发者提供的LBS数据服务工具包,可以在小程序中调用腾讯位置服务的POI检索、关键词输入提示、地址解析、逆地址解析、行政区划和距离计算等数据服务,让您的小程序更强大!