uni-app中使用地图显示当前的位置

我们现在的需求是,显示用户在地图上所处的位置。
有的小伙伴可能会说,这个是不是需要接入第三方的地图。
其实是不需要的,从目前这个需求来看。
我们只需要引入uni-app提供的内置组件 map 。
然后设置经纬度以及缩放大小就行
下面我们就来简单的演示一下

使用 map 组件显示某一个位置

<template>
<view>
<view class="page-body">
<view class="page-map-box">
<map style="width: 750rpx; height: 600rpx;"
:latitude="latitude"
:longitude="longitude"
:scale="scale"></map>
</view>
</view>
</view>
</template> <script>
export default {
data(){
return {
msg:'12',
latitude: 30.572269, //纬度
longitude: 104.066541, //经度
scale: 14, //地图缩放程度
}
}
}
</script>
<style scoped>
</style>

需要注意的点

第1点:<map> 组件的宽/高推荐写直接量,比如:750rpx,不要设置百分比值。
我尝试过写百分比也是可以正常显示的。
在写百分比的时候注意父盒子的宽高,如果父盒子没有设置宽高,会导致地图显示不出来。
既然官方说了不要写百分比咋们就不要写了。 第2点:谷歌地图使用 wgs84 坐标,其他地图使用 gcj02 坐标,用错坐标类型会显示偏移。

如何显示当前用户所在的位置

如果要显示用户当前所在位置。
我们需要借助一个api来获取。
uni.getLocation(options)获取当前的地理位置、速度
在获取之前,我们需要配置一下。
在HBuilder中的 uniapp项目下点击配置文件manifest.json。
选择微信小程序。填写【位置接口】描述。 或者在unpackage/dist/dev/mp-weixin/app.json中加入如下配置。
配置好后,在小程序的开发工具中看是否被正确编译了。
因为有些时候会出现丢死,此时需要再次重新写入
{
"pages": [
"pages/index/index"
],
"window": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}, "permission": {
"scope.userLocation": {
//描述一下你需要这个接口的原因,这个是必须的要写的。
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
// 你调用的方法,这个也是必须的,否者会出现调用失败
"requiredPrivateInfos": ["getLocation", "chooseLocation"],
"usingComponents": {}
}

uni.getLocation({})获取当前的地理位置、速度

<template>
<view>
<view class="page-body">
<view class="page-map-box">
<map style="width: 750rpx; height: 600rpx;"
:latitude="latitude"
:longitude="longitude"
:scale="scale"></map>
</view>
<view class="btn-position">
<button type="default" @tap="getLocationTap">获取定位</button>
</view>
</view>
</view>
</template> <script>
export default {
data(){
return {
latitude:'' , //纬度
longitude: '', //经度
scale: 14, //地图缩放程度
}
},
methods:{
getLocationTap(){
let that=this;
uni.getLocation({
type: 'gcj02',
success: function (res) {
console.log('经度:' + res.longitude);
console.log('纬度:' + res.latitude);
that.latitude = res.latitude
that.longitude= res.longitude
},
fail: function (res) {
console.log('获取位置信息失败', res);
}
})
}
}
}
</script>
<style scoped>
.page-map-box{
width: 750rpx; height: 600rpx;
}
.btn-position{
margin-top: 10rpx;
}
</style>

标记当前这个点

如果要标记当前的这个点,需要我们借助markers属性。
它接受一个数组,这个数组就是要标记的点。
其中id需要传递,否者会有提示信息。
iconPath是标记的图标地址。可以去阿里矢量图标库中下载一个图片。
width,height是这个图标的大小。
latitude,longitude是经纬度
<template>
<view>
<view class="page-body">
<view class="page-map-box">
<map style="width: 750rpx; height: 600rpx;"
:latitude="latitude"
:longitude="longitude"
:scale="scale"
:markers="markers"
></map>
</view>
<view class="btn-position">
<button type="default" @tap="getLocationTap">获取定位</button>
</view>
</view>
</view>
</template> <script>
export default {
data(){
return {
latitude: '',
longitude: '',
scale: 14, // 设置地图的缩放级别
markers: [ // 设置标记点
{
id:1001,
width:50,
height:50,
latitude: this.latitude*1,
longitude: this.longitude*1,
iconPath: '../../static/weizhi.png',
},
],
}
},
methods:{
getLocationTap(){
let that=this;
uni.getLocation({
type: 'gcj02',
success: function (res) {
console.log('经度:' + res.longitude);
console.log('纬度:' + res.latitude);
that.latitude = res.latitude
that.longitude= res.longitude
},
fail: function (res) {
console.log('获取位置信息失败', res);
}
})
}
}
}
</script>
<style scoped>
.page-map-box{
width: 750rpx; height: 600rpx;
}
.btn-position{
margin-top: 10rpx;
}
</style>

uni-app中使用map的更多相关文章

  1. uni app中使用自定义图标库

    项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...

  2. uni app中关于图片的分包加载

    因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...

  3. 在iOS APP中使用H5显示百度地图时如何支持HTTPS?

    现象: 公司正在开发一个iOSAPP,使用h5显示百度地图,但是发现同样的H5页面,在安卓可以显示出来,在iOS中就显示不出来. 原因分析: 但是现在iOS开发中,苹果已经要求在APP中的所有对外连接 ...

  4. Commons BeanUtils 中对Map的操作

    CSDN学院招募微信小程序讲师啦 程序员简历优化指南! [观点]移动原生App开发 PK HTML 5开发 云端应用征文大赛,秀绝招,赢无人机! Commons BeanUtils 中对Map的操作 ...

  5. 【转】hive优化之--控制hive任务中的map数和reduce数

    一.    控制hive任务中的map数:  1.    通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置 ...

  6. 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面

    此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...

  7. Map java中的map 如何修改Map中的对应元素

    Map java中的map 如何修改Map中的对应元素 Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象.         Map的接口         Map ...

  8. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  9. 【iOS开发】在 App 中加入 AdMob 广告 - 入门介绍与编程技巧

    前言 虽然在App中加入广告来盈利是比较低级的商业化方式,但对于个人开发者或者小团队开发者来说,做出一个简单易用的免费小工具(举个栗子),在里面加入一些广告,如果用的人多,也是可以带来一些可观的收入的 ...

  10. Java中遍历Map集合的四种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

随机推荐

  1. 华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库

    摘要:华为云GaussDB走进北邮,技术专家走进课堂带来数据库前沿资讯. 近期,各地疫情又一次席卷而来,居家隔离成为常态.不过,外出的不便并没有阻挡莘莘学子求知的渴望,线上课堂成为了大多学生上课的主要 ...

  2. vue2升级vue3:vue3创建全局属性和方法

    vue2.x挂载全局是使用Vue.prototype.$xxxx=xxx的形式来挂载,然后通过this.$xxx来获取挂载到全局的变量或者方法 在vue3.x这种方法显然是不行了,vue3中在setu ...

  3. ipa如何安装到iphone

    ​ Sign In - Apple app管理中心: https://appstoreconnect.apple.com/ apple ID管理中心: Manage your Apple ID 工具只 ...

  4. 火山引擎DataLeap背后的支持者 - 工作流编排调度系统FlowX

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景介绍 业务场景 在日常工作中,我们时不时需要对某些逻辑进行重复调度,这时我们就需要一个调度系统.根据不同的调度 ...

  5. Solon 开发进阶,二、体外扩展机制

    Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 Solon 的一个特色:体外扩展机制,用于解决 fatjar 模式部署时的扩展需求.比如 ...

  6. Windows 2016 2019 显示桌面图标

    运行cmd窗口 输入命令 rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 弹出桌面图标设置窗口

  7. Mac 播放 swf Flash文件

    Flash已不再支持,swf 文件彻底打不开了(一些教程),通过PD虚拟,安装 windows 操作系统在里在装了 flash 播放器使用了一段时间,始终不方便.于是找到了如下方法 首先安装:Adob ...

  8. 六、docker数据卷

    系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...

  9. 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)

    前言 ELK 是指 Elasticsearch.Logstash 和 Kibana 这三个开源软件的组合. Elasticsearch 是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询. ...

  10. Keep English Level-01

    state -- 声称,宣称,国家,政府 state-owned -- 国有的 He stated that "hell will break loose,politically and m ...