当前位置:网站首页>uniapp | 官方提供的map组件使用问题
uniapp | 官方提供的map组件使用问题
2022-08-02 03:23:00 【呆呆papa】
1、地图SDK的选择
博主在使用uniapp开发地图功能之前,使用过百度地图的SDK开发web地图功能。在最初的开发上希望能够使用百度地图的SDK,但是uniapp在接入地图功能时和web端开发还是有很大区别的,uniapp提供了一个地图组件<map>,因为产品只涉及到APP端,这里使用的是高德地图的SDK(这也是官方的推荐)
注:在真机调试时,APP端的<map>组件使用的就是高德地图,配置其他的SDK会在打包后使用
2、不同页面文件选择
使用uniapp进行APP开发时,可以选择vue页面(后缀为.vue)和nvue页面(后缀为.nvue),<map>组件在两种页面中的差异就是层级问题,因为在开发地图功能时,往往需要在地图之上绘制一些其他内容:
推荐仔细阅读:Uniapp的map组件介绍
使用vue页面开发(存在层级问题)
想要在map组件上添加其他内容:可以使用map组件中的的marker、control和uniapp中的<cover-view>标签;也可以使用subNvue,因为subNvue是原生的页面,和map组件不存在层级问题
注意:uniapp的<cover-view>标签并不支持相互嵌套,在cover-view中能展示的内容非常有限,涉及到复杂的功能,推荐使用vue页面+subNvue混合开发
使用nvue页面开发(不存在层级问题)
使用nvue页面,需要将nvue页面和vue页面一样在pages.json中配置,在nvue页面中不存在层级问题,可以在map组件中随意嵌套标签,但是nvue页面参考的是weex框架,在布局上只支持flex布局,不支持添加阴影,支持的标签和CSS也有限,并不支持SCSS等CSS处理器这里更正一下,nvue页面支持scss
推荐仔细阅读:Uniapp的nvue框架教程
3、开发常见问题总结
问题1:app在打包后地图不显示?
app打包后地图不显示可能是在manifest.json中没有勾选map组件并配置高德地图或者百度地图的秘钥,这种情况下会出现包含地图的页面打开后地图区域显示为白色。
问题2:使用map组件添加markers后不显示?
这种情况通常是我们需要从后端获取定位点信息,将定位动态展示为地图上的marker,此时的markers绑定的数组是动态改变的,在改变markers绑定的数组后,需要对markers所绑定的数组进行重新赋值,例如:
markers=[{
latitude: 获取的纬度,
longitude: 获取的经度,
}]//每次都对markers重新赋值
问题3:Android上的marker正常显示,但是ios上的marker不能显示?
这种情况可能是markers在使用的时候没有配置id属性导致的(亲测),这里建议使用时可以参考Uniapp的hello-uniapp中的用法
问题4:map组件的相关JS API使用无效?
这种情况下,通过uni.createMapContext获取到了地图对象,但是使用相关的API却无效。我们使用map的页面必须是在pages.json配置,并且可以使用路由跳转的页面,否则就会导致相关的JS API使用无效,博主遇到此问题时,是在subNvue页面中使用了相关的JS API。
️️博主也是一个使用uniapp开发的小白,如有不对的地方,谢谢指正!️️
边栏推荐
猜你喜欢
4.14到新公司的一天
DSPE-PEG-DBCO Phospholipid-Polyethylene Glycol-Dibenzocyclooctyne A Linear Heterobifunctional Pegylation Reagent
如何查看一个现有的keil工程之前由什么版本的keil IDE编译
C语言 0长度数组/柔性数组
【 application 】 life many years of operations, what turned scored 12 k + annual bonus salary?
1.8今日学习
简单黑马头条项目
C语言的变长数组
URL URL
Deveco studio Hongmeng app access network detailed process (js)
随机推荐
每日面试题 2022/7/28
每日五道面试题总结 22/7/26
Dynamic proxy tool class
URL模块
微信小程序云开发之券码领取,怎么防止用户领取到相同的数据?
1.8今日学习
小程序 van-cell 换行能左对齐问题
meime模块
SOCKS5
SSM integration
js 取字符串中某位置某特征的值,如华为(Huawei)=>华为
[Mianjing] Mihayou data development on one side and two sides
How to check whether a table is locked in mysql
枚举法方法:(leetcode1300)转变数组后最接近目标值的数组和
npm和package.json
canvas--饼状图
js 数组去重的常用方法
Scientific research reagent DMPE-PEG-Mal dimyristoylphosphatidylethanolamine-polyethylene glycol-maleimide
1.6一些今日学习
C语言 十六进制整数字符串转十进制整数