uniapp怎么使用高德地图点击地图打点
时间: 2025-05-14 21:19:03 浏览: 43
### UniApp 使用高德地图 API 实现点击地图添加标记点
#### 准备工作
为了在 UniApp 中集成高德地图并实现点击地图添加标记点功能,需先完成以下准备工作:
- 注册高德开放平台账号,并创建应用获取 Key[^1]。
#### 创建项目结构
确保项目的 `pages.json` 文件中已配置好页面路径。接着,在相应页面目录下新建 HTML 文件用于承载地图实例化逻辑。
#### 页面布局设计
编辑 `.vue` 组件文件中的模板部分,定义 WebView 容器来加载外部 HTML 文档:
```html
<template>
<view class="container">
<!-- 使用 web-view 来嵌入自定义 html -->
<web-view :src="'./path/to/map.html'"></web-view>
</view>
</template>
<script>
export default {
data() {
return {};
}
};
</script>
```
#### 编写地图HTML代码
在上述提到的 `map.html` 文件内编写如下 JavaScript 和 HTML 结构以初始化地图对象并与之交互:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Map Page</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
#container {
width: 100vw;
height: calc(100vh - 20px);
}
</style>
<script src="//webapi.amap.com/maps?v=2.0&key=您的KEY"></script>
</head>
<body>
<div id="container"></div>
<button onclick="clearMarkers()">清除所有标注</button>
<script type="text/javascript">
var map, markerArr = [];
function initMap() {
// 初始化地图对象 设置中心点坐标以及缩放级别
map = new AMap.Map('container', {
zoom: 10,
center: [116.397428, 39.90923],
resizeEnable: true
});
addClickEvent();
}
function addMarker(lnglat) {
let lngLatObj = typeof lnglat === 'string' ? lnglat.split(',') : lnglat;
const marker = new AMap.Marker({
position: new AMap.LngLat(...lngLatObj),
title: "新增位置"
});
marker.setMap(map); // 将 Marker 添加至 Map 上显示出来
markerArr.push(marker);
console.log(`Added marker at ${lngLatObj}`);
}
function clearMarkers(){
while (markerArr.length){
markerArr.pop().setMap(null);
}
}
function addClickEvent(){
map.on('click',(e)=>{
addMarker([e.lnglat.getLng(), e.lnglat.getLat()]);
})
}
window.onload = initMap;
</script>
</body>
</html>
```
此段脚本实现了当用户单击地图任意处时自动于该地点放置一个新的标记点;同时提供了一个按钮用来清空当前所有的标记点[^2]。
阅读全文
相关推荐


















