效果图

在index.html中引入

百度地图开放平台 去申请你的ak 非常的简单可以自己百度 一下

  <!-- 这个用官网给的有好多警告 更具百度的把 https://api.map.baidu.com/getscript?v=2.0&ak=xxxxxxxxxxxxxxxxxxxxx 换为这个就没有那么多 报错了 -->
<script
type="text/javascript"
src="https://api.map.baidu.com/getscript?v=2.0&ak=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" // 这个替换为你自己申请的ak
></script>

创建一个组件

<template>
<div style="width: 100%; height: 440px;">
<!-- 显示小地址小框框 -->
<div class="ipt">
<div class="address">
{{ address }}
</div>
<!-- 支持模糊查询 -->
<input type="text" id="suggestId" placeholder="搜索地名" />
</div>
<!-- 地图 -->
<div id="map" :style="{ width: '100%', height: 400 + 'px' }">
</div>
</div>
</template> <script setup lang="ts">
import { onMounted, defineProps, ref, defineEmits } from 'vue'
// 传入的中心点 刷新页面加载的点
const props = defineProps({
latitude: {
type: String,
default: () => {
return '40.083402'
},
},
longitude: {
type: String,
default: () => {
return '113.368374'
},
}
})
// 传出地址
const emits = defineEmits(['addressData'])
// 显示地址
const address = ref('')
// 引入的地图的api
const BMap = (window as any).BMap
onMounted(() => {
// 创建地图实例
var map = new BMap.Map('map')
// 这个创建地理服务的 下面是把定位转换为详细文字地址
var geoc = new BMap.Geocoder();
//建立一个自动完成的对象 主要关键字查询
var ac = new BMap.Autocomplete(
{
// suggestId 是输入框id
"input": "suggestId"
// 这个是地图实例
, "location": map
});
// 下拉列表里的内容确认发生的事件 ()
ac.addEventListener('onconfirm', function (e: any) {
// 把城市啥的拼接起来
const myValue =
e.item.value.province +
e.item.value.city +
e.item.value.district +
e.item.value.street +
e.item.value.business
// 搜索
// 搜索结束执行的函数
const mySearchFun = () => {
// 传入定位函数的经纬度
getAddOverlay(local.getResults().getPoi(0).point)
// 定位中心点
map.centerAndZoom(local.getResults().getPoi(0).point, 15)
}
// 创建一个搜索的实例
var local = new BMap.LocalSearch(map, {
//搜索成功后的回调
onSearchComplete: mySearchFun,
})
// 传入搜索位置的关键字
local.search(myValue)
}) // 下面是开始定位的
var point = new BMap.Point(props.longitude, props.latitude) // 定位
getAddOverlay(point)
map.centerAndZoom(point, 5) // 中心点位 15是级别
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
// 当地图点击的时候发生的事件
map.addEventListener('click', function (e: any) {
// 创建标点
getAddOverlay(new BMap.Point(e.point.lng, e.point.lat))
})
// 定位点的函数
function getAddOverlay(point: any) {
// 清空地图上所有的标准当然你想要多个点的话可以不清除
map.clearOverlays()
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 添加到地图
// 把定位转换为详细文字地址
geoc.getLocation(point, (rs: any) => {
// 显示到页面上
address.value = rs.address
})
// 把位置传出
emits('addressData', point)
}
}) </script> <style lang="scss" >
.anchorBL {
display: none;
}
</style>
<style lang="scss" scoped>
.ipt {
position: relative;
display: flex;
justify-content: flex-end;
width: 100%;
min-width: 300px;
height: 25px;
margin-bottom: 10px; #suggestId {
width: 40%;
min-width: 250px;
padding: 5px 10px;
outline: none;
font-size: 13px;
font-family: monospace;
color: #606266;
border-radius: 4px;
border: 1px solid #ddd;
} .address {
position: absolute;
width: 300px;
height: 20px;
font-size: 12px;
left: 0;
bottom: 0;
}
}
</style>

在父组件引入

  <center-map @addressData="addressData" :latitude="latitude" :longitude="longitude"></center-map>

  

vue3和百度地图关键字检索 定位 点击定位的更多相关文章

  1. 百度地图API 显示区域边界及地名定位

    百度地图API 显示区域边界及地名定位 这个定位一共用了两个方法组成 一个是定位绘制区域边界线,另一个是地名定位 原理: 当用户输入省.市.县.区这种大地名时,我们要定位用户输入的这个位置,并显示轮廓 ...

  2. iOS地图集成示例:百度地图POI检索

    一.集成百度地图(傻瓜教程,以网站说明文档为准,此处罗列几项主要步骤) 1.登录  http://lbsyun.baidu.com  百度地图开发者平台,获取SDK和集成文档. 2.百度地图可以提供的 ...

  3. C#的百度地图开发(四)前端显示与定位

    原文:C#的百度地图开发(四)前端显示与定位 有了这些定位信息,那要如何在前端的页面上显示出来呢?这需要用到百度地图的JavaScript的API.下面是示例代码. 前端代码 <%@ Page  ...

  4. iOS真机测试友盟碰到错误linker command failed with exit code 1 (use -v to see invocation) 百度地图的检索失败 sqlite 错误码

    因为友盟不支持bitcode 在模拟器上运行正常,但是在模拟器上就会报错,这是因为xocde7之后增加了一个bitcode,bitcode是被编译程序的一种中间形式的代 码.包含bitcode配置的程 ...

  5. [android] 百度地图开发 (两).所在地的城市定位和城市POI搜索

    一个. 百度地图城市位置和POI搜索知识       上一篇文章"百度地图开发(一)"中讲述了怎样申请百度APIKey及解决显示空白网格的问题.该篇文章主要讲述怎样定位城市位置.定 ...

  6. Android Studio下加入百度地图的使用(二)——定位服务

    上一章(http://www.cnblogs.com/jerehedu/p/4891216.html)中我们已经完成了环境的搭建,这一章我们来研究一下如何使用. 第一步:在xml文件中加入以下权限 & ...

  7. 百度地图api之----根据用户ip定位城市

    LocalCity 这个类是利用用户IP地址去百度数据库里查询得到IP所在的城市,用法如下: var objCity = new BMap.LocalCity(); objCity.get(funct ...

  8. 百度地图Api进阶教程-点击生成和拖动标注4.html

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. 百度地图四(Android百度地图Poi检索开发总结)

    https://blog.csdn.net/wenzhi20102321/article/details/54575999

  10. 开发iOS百度地图大头针可以重复点击

    [self.mapView deselectAnnotation:view.annotation animated:YES];

随机推荐

  1. fastjson反序列化漏洞历史CVE学习整理

    fastjson 1.2.24反序列化漏洞复现 先写一个正常的使用 fastjson的web服务 我们使用 springboot创建 主要是pom.xml 里面要添加fastjson fastjson ...

  2. docker-compose编排启动LNMP

    2-1.docker-compose启动php #生成php镜像  [root@rocky8 data]#vim /data/dockerfile/ubuntu_php/Dockerfile  FRO ...

  3. 一个实用的 vite + vue3 组件库脚手架工具,提升开发效率

    无论是 vue2 全家桶还是 vue3 + vite + TypeScript,组件库的使用几乎大家都会,但自己开发一个独立组件库就不是每个人都掌握的,因为搭建组件库的基础开发环境,就会让很多同学望而 ...

  4. 记录因Sharding Jdbc批量操作引发的一次fullGC

    周五晚上告警群突然收到了一条告警消息,点开一看,应用 fullGC 了. 于是赶紧联系运维下载堆内存快照,进行分析. 内存分析 使用 MemoryAnalyzer 打开堆文件 mat 下载地址:htt ...

  5. ubuntu基本

    ubuntu使用过程中遇到的指令 apt-get更新 当现出net-tools没有可安装候选 的提示时,可能是apt-get需要更新了.通过指令sudo apt install net-tools p ...

  6. Jenkins用户管理

    用户注册和权限管理介绍. 1. 用户注册 进入[系统管理]-[全局安全配置],进行配置: 1.1 安全域 选择[Jenkins专有用户数据库],勾选[允许用户注册],随后[保存] 1.2 用户注册 在 ...

  7. 【笔记】CF1607F Robot on the Board 2 及相关

    题目传送门 记忆化搜索 首先,这题 \(10000\) 组 \(2000\times 2000\) 的数据直接爆搜肯定会超时.想到,如果一个点的答案已经被更新过,之后走到这个点能再多走的点也就确定了, ...

  8. Ubuntu环境下LLVM 15.0 完全编译 附windows编译LLVM master

    1. 预先安装 sudo apt install ninja-build sudo apt install llvm clang # 第一次编译需要 sudo apt-get install libn ...

  9. cv2.imread opencv读取不到图片问题

    解决办法 cv2.imread 路径中包含中文,改为英文 其他 这个问题解决了很久,都属于库的问题

  10. C++使用ODBC连接数据库遇到的问题

    C++使用ODBC连接数据库遇到的问题 1.SQL语句中包含中文无法正常执行的问题 2.字符与宽字符相互转化的问题 C++使用ODBC连接数据库遇到的问题 1.SQL语句中包含中文无法正常执行的问题 ...