准备:使用了高德地图,所以需要前往 高德开放平台 申请appkey(安卓,iOS各一个)。申请过程不做介绍。
:
新建页面:
页面模板中放入地图组件:
脚本中定义页面内全局变量 地图对象 :
页面 onReady 时获取 地图对象 :
上面用到的api,可查看 uniapp接口文档--createmapcontext
获取中心点经纬度并反编码:
有关上面用到的api,可查看 5+app的接口文档--maps
可尝试拨动地图位置,改变地图中心点位置。点击 确定 :
1首先需要在manifestorjson里,将Maps(地图)的勾打上。如图
2在APP SDK配置里设置,将高德定位地图勾打上,再填上地图应用KEY。如图
3第二步需要到高德地图上注册开发者,申请权限。
如果是测试用,则安全码那可以直接填HBUILDERX提供的码:BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58。Package就是打包时名称。按“获取KEY”后,即可获取KEY值,将其填入第二步即可。
就是小程序上方由胶囊占据的bar,就叫titleBar。
因为我们可以在胶囊左侧写标题和其他一些东西。这些东西要跟胶囊中线对齐。
首先我们要撑起statusBar的高度,也就是最顶部的那个bar。这个bar的高度很容易取得。
unigetMenuButtonBoundingClientRect()top取得的是胶囊距离视口顶部的距离,减掉statusBar的高度,就是胶囊离statusBar下沿的距离。这个距离乘以2,加上胶囊自身高度,就是titleBar的高度。
见红色部分。
开发者工具中会有略微错位,无妨,以真机为准。
我们希望胶囊左侧空白区域与胶囊有间距,而且间距最好是等于胶囊到右边边线的距离。这个前提下,左侧空白区域的宽度怎么算?
写成组件就是这样:
用法:
演示如何使用作用域插槽:
二、使用步骤
1uniapp开发map说明
使用uniapp是因为它是一个使用vuejs开发所有前端应用的框架,开发者编写一套代码,可以发布到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,表示为多边形)
点击属性
@markertap-表示点击标记点时触发,edetail={markerId}
@labeltap-表示点击label时触发,edetail = {markerId}
@callouttap-表示点击标记点对应的气泡时触发,edetail = {markerId}
@controltap-表示点击控件时触发,edetail = {controlId}
@regionchange-表示视野发生变化时触发
@tap-表示点击地图时触发; App-nuve、微信小程序29支持返回经纬度
@updated-表示在地图渲染更新完成时触发
我们在写map组件时,组件的宽/高推荐写直接量,比如说是 750rpx,不要设置百分比值,在uni-app中只支持gcj02坐标。 介绍markers属性-类型为数组Array
由之前描述可知,markers属性类型为Array,表示标记点用于在地图上显示标记的位置。这个数组属性,它里面有它的对象配置属性,分别是:
id,表示标记点id,类型为Number,必填项,marker点击事件回调会返回此id,建议为每个marker设置上Number类型id,保证更新marker时有更好的性能。
latitude,纬度,类型Number,必填项,浮点数,范围 -90 ~ 90
longitude,经度,类型Number,必填项,浮点数,范围 -180 ~ 180
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} 表示底边中点
marker 上的气泡 callout(Object类型) marker数组 上属性 callout 对象使用属性:
content,文本,String
color,文本颜色,String
fontSize,文字大小,Number
borderRadius,callout边框圆角,Number
bgColor,背景色,String
padding,文本边缘留白,Number
display,'BYCLICK':点击显示; 'ALWAYS':常显,String
textAlign,文本对齐方式。有效值: left, right, center,String
marker 上的标签 label(Object类型)
content,文本,String
color,文本颜色,String
fontSize,文字大小,Number
x,label的坐标,原点是 marker 对应的经纬度,Number
y,label的坐标,原点是 marker 对应的经纬度,Number
borderWidth,边框宽度,Number
borderColor,边框颜色,String
borderRadius,边框圆角,Number
bgColor,背景色,String
padding,文本边缘留白,Number
textAlign,文本对齐方式。有效值: left, right, center,String
polyline polyline表示指定一系列坐标点,从数组第一项连线至最后一项
points,经纬度数组,类型为Array,必填,如:[{latitude: 0, longitude: 0}]
color,线的颜色,类型为String,不必填,如:#0000AA
width,线的宽度,类型为Number,不必填
dottedLine,是否虚线,类型为Boolean,不必填,默认值false
arrowLine,带箭头的线,类型为Boolean,不必填,默认值为false
arrowIconPath,更换箭头图标,类型为String,不必填,在arrowLine为true时,默认带箭头的线时生效
borderColor,线的边框颜色,类型为String,不必填
borderWidth,线的厚度,类型为Number,不必填
polygon polygon指定一系列坐标点,根据points坐标数据生成闭合多边形
points,经纬度数组,array,必填,如:[{latitude: 0, longitude: 0}]
strokeWidth,描边的宽度,Number,否
strokeColor 描边的颜色,String,否
fillColor,填充颜色,String,否
zIndex,设置多边形 Z 轴数值,Number,否
circles circles在地图上显示圆
latitude,纬度,Number,必填,浮点数,范围 -90 ~ 90
longitude,经度,Number,必填,浮点数,范围-180 ~ 180
color,描边的颜色,String,不必填,如:#0000AA
fillColor,填充颜色,String,不必填,如:#0000AA
radius,半径,Number,必填
strokeWidth,描边的宽度,Number,不必填
controls controls在地图上显示控件,控件不随着地图移动
id,控件id,Number,不必填,在控件点击事件回调会返回此id
position,控件在地图的位置,Object,必填,控件相对地图位置
iconPath,显示的图标,String,必填,项目目录下的路径,支持相对路径写法,以'/'开头则表示相对项目根目录;也支持临时路径
clickable,是否可点击,Boolean,不必填,默认不可点击
position
left,距离地图的左边界多远,Number,不必填,默认为0
top,距离地图的上边界多远,Number,不必填,默认为0
width,控件宽度,Number,不必填,默认为宽度
height,控件高度,Number,不必填,默认为高度
注意在uniapp中地图组件的经纬度必填,如果不填,经纬度则默认值是北京的经纬度。 2uniapp使用map组件 基本使用方法 使用uniapp开发中的map组件,基本使用方法:
代码如下(示例):
<map :scale="scale" style="width: 100%; height: 100%;"
enable-3D="false" show-compass="false" enable-overlooking="false"
:enable-satellite="false" :enable-traffic="false" show-location="false"
:latitude="latitude" :longitude="longitude" :markers="covers">
</map>
markers属性的使用,代码如下(示例):
markers: [{
id: 1, // Number
title: '1', // String-标注点名
rotate: 180, // Number - 顺时针旋转的角度,范围 0 ~ 360,默认为 0
alpha: 05, // 默认1,无透明,范围 0 ~ 1
latitude: 39899,
longitude: 11639742,
width: 30,
height: 30,
// callout: {
// display: "BYCLICK",
// padding: 10,
// borderRadius: 5,
// content: '',
// },
// anchor: {},
iconPath: '///static/locationpng', // 显示的图标
}, {
id: 2,
title: '2', // String
latitude: 3990,
longitude: 11639,
callout: {
color: '#007AFF', // 文本颜色
bgColor: '#563BFF', // 背景色
display: "ALWAYS", // 'BYCLICK':点击显示; 'ALWAYS':常显
fontSize: 15,
textAlign: 'left', // 文本对齐方式。有效值: left, right, center
padding: 10, // 文本边缘留白
borderRadius: 5,
content: '腾讯地图',
},
label: {
content: 'Jeskson',
color: '#000000',
fontSize: 12,
borderWidth: 12,
borderColor: '#007AFF',
borderRadius: 5,
padding: 5,
textAlign: 'center',
bgColor: '#563BFF',
},
iconPath: '///static/locationpng'
}]
最近在做一个uniapp的项目的时候,碰到了一个Tab选项卡的需求,我立马就想到了曾经在视频里看到的利用swiper实现丝滑选项卡的功能。
但是很遗憾,我并没有光看就会的本事,本着遇事不决先百度的原则,就在百度找了一篇真实有用,但是有小小bug的,下面是原po地址:
uni-app使用swiper切换页面每个滑块高度自适应
懒得点的可以接着往下看哈,我也会把详细步骤以及碰到的bug贴出来。下面是我改造后的效果图
首先就是Tab选项卡的点击切换块,这里我是用了小程序自带的scroll-view来实现的,同时给该元素添加scroll-into-view属性来实现点击跟踪(其实这效果不是特别好,我期望的效果是点击这个的时候还留点位置给上一个,但是我太菜了加上为了省事所以就直接用这个了)
scroll-into-view的用法可自行查阅官方文档
接着是swiper标签块,这里因为实现都一样,所以我就直接把原博客那边的贴过来了,大家根据自己的需求更改类名及swiper-item内部的组件即可
这里有个注意点,就是要给swiper-item内部的组件(盒子)一个相同的类名,后面获取高度时需要用到。
初始数据方面,这里我也把我的初始数据贴出来,大家根据需求自行修改即可
后面的方法本来想一个个贴的,但是发现好像有点乱,所以就直接全贴出来了,里面的逻辑大伙应该能理清吧哈哈
到这里js部分也结束了,最后是css部分,我就是在这里踩坑的。原博最后面说要给swiper-item里面的组件设置一个min-height: 100%。这样设置之后就会有个问题,也就是
因此大家在初始化css数据的时候需要注意一下,这里我也把我的初始css贴出来,大家根据需求自行修改即可
到这里这一块的内容就全部结束了,噢对了关于setSwiperHeight里面获取dom元素的方法,也就是
unicreateSelectorQuery() 。这玩意说实话我也搞不太懂,总之就跟selectorQuery选择器差不多,CVM大法:复制粘贴,然后修改数据即可。
第一次正经写文还是很紧张的哈哈,希望能帮到有需要的人。谢谢各位
以上就是关于uniapp地图拾取中心点坐标经纬度并进行反编码全部的内容,包括:uniapp地图拾取中心点坐标经纬度并进行反编码、uni-app开发app怎么做定位授权处理、uniapp小程序获取titleBar的高度和宽度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)