uniapp使用地图
Posted 砚言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp使用地图相关的知识,希望对你有一定的参考价值。
uniapp使用地图
使用内置地图查看定位
效果
实现
<!-- 方法一:点击小程序map地图插件跳转到app中打开 -->
<map @click="mapFun" class='map' :latitude="latitude" :longitude="longitude" :markers="covers" />
<!-- 方法二:点击button等按钮打开 -->
<button type="default" @click="mapFun">唤醒题图</button>
<!-- js中 -->
// 高德地图、腾讯、百度等地图中打开
data()
return
latitude: 39.909,
longitude: 116.39742,
covers: [
latitude: 39.909,
longitude: 116.39742,
width:'50rpx'
]
,
methods:
mapFun()
uni.openLocation(
latitude: this.latitude,, //纬度 - 目的地/坐标点
longitude: this.longitude,, //经度 - 目的地/坐标点
name: "电脑城",
address: "重庆九龙坡"
);
<map>注意事项:
使用map地图插件时,具体注意事项及使用方法,参考 uniapp地图组件官网:
https://uniapp.dcloud.net.cn/component/map.html#map-地图组件
1.
uniapp打开第三方地图
打开第三方地图应用需传入 latitude 和 longitude ,name
直接上代码!!!
toMapAPP(latitude, longitude, name)
let url = "";
if (plus.os.name == "Android") //判断是安卓端
plus.nativeUI.actionSheet( //选择菜单
title: "选择地图应用",
cancel: "取消",
buttons: [
title: "腾讯地图"
,
title: "百度地图"
,
title: "高德地图"
],
,
function(e)
console.log(e);
switch (e.index)
//下面是拼接url,不同系统以及不同地图都有不同的拼接字段
case 1:
//注意referer=xxx的xxx替换成你在腾讯地图开发平台申请的key
url=`qqmap://map/geocodercoord=$latitude,$longitude&referer=I47BZ-QPEWO-HIPWK-SA5DW-F6ZRE-O2FCO`;
break;
case 2:
url = `baidumap://map/marker?location=$latitude,$longitude&title=$name&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
break;
case 3:
url = `androidamap://viewMap?sourceApplication=appname&poiname=$name&lat=$latitude&lon=$longitude&dev=0`;
break;
default:
break;
if (url != "")
url = encodeURI(url);
//plus.runtime.openURL(url,function(e))调起手机APP应用
plus.runtime.openURL(url, function(e)
plus.nativeUI.alert("本机未安装指定的地图应用");
);
)
else
// ios上获取本机是否安装了百度高德地图,需要在manifest里配置
// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
//(如urlschemewhitelist:["iosamap","baidumap"])
//uniapp 里配置
//"ios" :
// "urlschemewhitelist":["iosamap","baidumap"]
// ,
plus.nativeUI.actionSheet(
title: "选择地图应用",
cancel: "取消",
buttons: [
title: "腾讯地图"
,
title: "百度地图"
,
title: "高德地图"
]
, function(e)
switch (e.index)
case 1:
url = `qqmap://map/geocoder?coord=$latitude,$longitude&referer=I47BZ-QPEWO-HIPWK-SA5DW-F6ZRE-O2FCO`;
break;
case 2:
url = `baidumap://map/markerlocation=$latitude,$longitude&title=$name&content=$name&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
break;
case 3:
url = `iosamap://viewMap?sourceApplication=applicationName&poiname=$name&lat=$latitude&lon=$longitude&dev=0`;
break;
default:
break;
if (url != "")
url = encodeURI(url);
plus.runtime.openURL(url, function(e)
plus.nativeUI.alert("本机未安装指定的地图应用");
);
)
其他使用可参考
https://blog.csdn.net/m0_56344602/article/details/123640217?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167214148016800186599855%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167214148016800186599855&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-123640217-null-null.142^v68^wechat,201^v4^add_ask,213^v2^t3_control2&utm_term=uniapp%E5%9C%B0%E5%9B%BE&spm=1018.2226.3001.4187
https://blog.csdn.net/weixin_50343572/article/details/116483501?ops_request_misc=&request_id=&biz_id=102&utm_term=uniapp%E5%9C%B0%E5%9B%BE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-116483501.nonecase&spm=1018.2226.3001.4187
uniapp使用高德地图
uniapp使用高德地图
1、项目前准备
1.1、首先你需要去申请一个属于自己的高德地图key,怎么申请暂不多说需要的去官网看
1.2、链接: 高德地图申请key直通车,点击前往。
有一个uniapp项目。
2、页面创建引入
新建一个uniapp的空白页 使用web-view 渲染html文件页
<web-view src="/hybrid/html/adminr.html"></web-view>
新建一个html文件,头部hede里面引入文件
<!-- 地图 -->
<script type="text/javascript">
//这个地方的securityJsCode是自己的高德安全密钥,用自己的哈
window._AMapSecurityConfig = securityJsCode: '蛋糕吃不完我打包带走,respect'
</script>
<script src="https://webapi.amap.com/loader.js"></script>
<!-- vue -->
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.js"></script
然后在body 里面加一个div 就是我们地图的展示了
<body>
<div id="app">
<div id="container"></div>
</div>
</body>
3、地图实现js
这个地方除了key用自己的就可以直接复制
链接: 官网直通车
AMapLoader.load(
"key": "蛋糕吃不完我打包带走,respect", // 申请好的Web端开发者Key ,一样用自己的
"version": "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
"plugins": ['AMap.Driving'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
"AMapUI": // 是否加载 AMapUI,缺省不加载
"version": '1.1', // AMapUI 版本
"plugins":['overlay/SimpleMarker'], // 需要加载的 AMapUI ui插件
,
"Loca": // 是否加载 Loca, 缺省不加载
"version": '2.0' // Loca 版本
,
).then((AMap)=>
var map = new AMap.Map('container',
center: [118.045616, 24.366646], //经纬度地图一进来显的位置
resizeEnable: true,
zoom: 13 //地图显示的缩放级别
)
);
完成以上步骤 我们就可以获取到一个完整的地图啦 Let me see see
然后我们要给刚刚设置经纬度添加一个标记 不然不知道是哪个位置
4、地图实现单点标记
接着在刚刚的 var map = new AMap.Map下面添加标记
var map = new AMap.Map('container',
center: [118.045616, 24.366646], //经纬度地图一进来显的位置
resizeEnable: true,
zoom: 13 //地图显示的缩放级别
)
// 根据经纬度标记地理位置
var marker = new AMap.Marker(
position: new AMap.LngLat(118.045616, 24.366646),
title: '默认图标' //可以自定义icon图标展示
)
// 将创建的点标记添加到已有的地图实例
map.add(marker)
5、地图实现终点与起点标记
// 构造路线导航类
var driving = new AMap.Driving(
map: map,
);
// 根据起终点经纬度规划驾车导航路线
driving.search(
new AMap.LngLat(118.099481, 24.583817),
new AMap.LngLat(118.045616, 24.366646),
function(status, result)
if (status === 'complete')
console.log('绘制驾车路线完成')
//new AMap.InfoWindow 自定义窗体
else
console.log('获取驾车数据失败:' + result)
);
最终实起点到终点路线
6、最后 上代码~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<title>Document</title>
<!-- 地圖 -->
<script type="text/javascript">
window._AMapSecurityConfig =
securityJsCode: '868c41a6460a22634ecee3efc61abe07',
</script>
<script src="https://webapi.amap.com/loader.js"></script>
<!-- vus -->
<script src="https://cdn.bootcss.com/vue/2.6.11/vue.js"></script>
</head>
<body>
<div id="app">
<div id="container"></div>
</div>
</body>
<script>
new Vue(
el: '#app',
data()
return
,
mounted()
this.initr()
,
methods:
initr()
AMapLoader.load(
"key": "11326b9fd9fdfa988cd15851bc55525a", // 申请好的Web端开发者Key,首次调用 load 时必填
"version": "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
"plugins": ['AMap.Driving'], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
"AMapUI": // 是否加载 AMapUI,缺省不加载
"version": '1.1', // AMapUI 版本
"plugins":['overlay/SimpleMarker'], // 需要加载的 AMapUI ui插件
,
"Loca": // 是否加载 Loca, 缺省不加载
"version": '2.0' // Loca 版本
,
).then((AMap)=>
var map = new AMap.Map('container',
center: [118.045616, 24.366646],
resizeEnable: true,
zoom: 13 //地图显示的缩放级别
);
// // 根据经纬度标记地理位置
// var marker = new AMap.Marker(
// position: new AMap.LngLat(118.045616, 24.366646),
// title: '默认图标' //可以自定义icon图标展示
// );
// // 将创建的点标记添加到已有的地图实例
// map.add(marker);
// 构造路线导航类
var driving = new AMap.Driving(
map: map,
);
// 根据起终点经纬度规划驾车导航路线
driving.search(new AMap.LngLat(118.099481, 24.583817), new AMap.LngLat(118.045616, 24.366646),
function(status, result)
if (status === 'complete')
console.log('绘制驾车路线完成')
// console.log(status,'status')
else
console.log('获取驾车数据失败:' + result)
);
).catch((e)=>
console.error(e); //加载错误提示
);
,
)
</script>
<style scoped>
*
margin: 0;
body,html,#container
width: 100vw;
height: 100vh
#panel
position: fixed;
background-color: white;
max-height: 90%;
overflow-y: auto;
top: 10px;
right: 10px;
width: 280px;
#panel .amap-call
background-color: #009cf9;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
#panel .amap-lib-driving
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
overflow: hidden;
</style>
</html>
以上是关于uniapp使用地图的主要内容,如果未能解决你的问题,请参考以下文章