使用uniapp是因为它是一个使用vue.js开发所有前端应用的框架,开发者编写一套代码,可以发布到ios,android,web以及各种小程序,快应用等多个平台。使用map地图组件开发,地图组件用于展示地图(使用的时腾讯地图),说一下它的属性有:
longitude(类型为Number,没有默认值,表示中心经度)latitude(类型为Number,没有默认值,表示中心纬度)scale(类型为Number,默认值为16,缩放级别取值范围为5-18)markers(类型为Array数组,类型为数组即表示地图上可以有多个,没有默认值,表示标记点)polyline(类型为Array数组,没有默认值,表示路线,数组上的所有点连成线)circles(类型Array数组,表示圆)controls(类型Array数组,表示控件)include-points(类型Array数组,表示缩放视野已包含所有给定的坐标点)enable-3D(类型为Boolean,默认值为false,表示是否显示3D搂块)show-compass(类型为Boolean,默认值为false,表示为是否显示指南针)enable-overlooking(类型为Boolean,默认值为false,表示为是否开启俯视)enable-satellite(类型为Boolean,默认值为false,表示为是否开启卫星图)enable-traffic(类型为Boolean,默认值为false,表示为是否开启实时路况)show-location(类型为Boolean,表示显示带有方向的当前定位点)polygons(类型Array,表示为多边形)
点击属性
我们在写map组件时,组件的宽/高推荐写直接量,比如说是750rpx,不要设置百分比值,在uni-app中只支持gcj02坐标。
介绍markers属性-类型为数组Array
由之前描述可知,markers属性类型为Array,表示标记点用于在地图上显示标记的位置。这个数组属性,它里面有它的对象配置属性,分别是:
marker上的气泡callout(Object类型)marker数组上属性callout对象使用属性:
marker上的标签label(Object类型)
polyline
polyline表示指定一系列坐标点,从数组第一项连线至最后一项
circlescircles在地图上显示圆
注意在uniapp中地图组件的经纬度必填,如果不填,经纬度则默认值是北京的经纬度。
使用uniapp开发中的map组件,基本使用方法:代码如下(示例):
controls:[{//在地图上显示控件,控件不随着地图移动id:1,//控件id iconPath:'../../static/icon.png',//显示的图标 position:{ //控件在地图的位置 left:15, top:15, width:50, height:50},}],地址搜索uni-app只支持gcj02坐标
uni.getLocation(OBJECT)中的object参数
OBJECT参数说明
对于success返回参数说明:
address地址信息说明
uni.chooseLocation(OBJECT)打开地图选择位置。
success返回参数说明:
代码如下(示例):
uni.getNetworkType(OBJECT)获取网络类型。
uni.createMapContext(mapId,this)创建并返回map上下文mapContext对象。在自定义组件下,第二个参数传入组件实例this,以操作组件内组件。
mapContext-mapContext通过mapId跟一个组件绑定,通过它可以操作对应的组件。
该对象得方法列表:
successFunction不必填,接口调用成功的回调函数,res={longitude:"经度",latitude:"纬度"}
moveToLocation的OBJECT参数列表-可不必填
translateMarker的OBJECT参数列表
腾讯(推荐)
varmap=newqq.maps.Map(document.getElement('container'),{center,//坐标,即最初显示的地图中心zoom//缩放级别,即显示的比例})给地图添加事件
qq.maps.event.addListener(map,'click',function(res){//res即点击后的位置信息})添加标记
varmarker=newqq.maps.Marker({position,//标记点的位置,也可以是通过IP获取到的坐标map,//标记在哪个地图上animation,//标记显示时的动画效果title,//鼠标悬浮到标记上时的标题draggable//是否可拖拽})创建信息窗口
varinfo=newqq.maps.InfoWindow({map,//标记在哪个地图上content//信息窗口的内容})覆盖物
varpolyline=newqq.maps.Polyline({map,//标记在哪个地图上path,//一个坐标数组,折线、多边形就是依靠这些坐标数组来成形的strokeColor,//折线颜色strokeDashStyle,//折线样式strokeWeight,//折线宽度editable,//折线是否可编辑clickable//是否可点击})单个标注点
在mounted生命周期或者从后台接口获得信息后调用初始化地图方法
1.我申请了开发者密钥key2.开通webserviceAPI服务:控制台->key管理->设置(使用该功能的key)->勾选webserviceAPI->保存(小程序SDK需要用到webserviceAPI的部分服务,所以使用该功能的KEY需要具备相应的权限)日调用量:1万次/Key----并发数:5次/key/秒。