效果图

在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. php注解使用示例

    今天看到php注解的介绍文章很感兴趣,动手实际试了试挺好玩,写这篇文章记录下 php从8开始支持原生注解功能了,我们可以写个小的例子看看注解怎么玩.   先确定我们的任务目标 1.编写一个注解类rou ...

  2. python基础类型,字符串

    python基本类型小结 # str,可以用索引取值,但是不能通过索引改变值, # a = "123" a[0]=10,直接TypeError因为字符串是不可变类型 # list, ...

  3. 解决Halcon转C#时,图像显示的问题

    不知道大家在使用Halcon进行图像处理,由于要连续处理多张图片,转为C#代码的时候,使用了Halcon控件显示图像,但是运行的时候,中间的其他图片没有显示在控件上,之前我一直以为是运行速度快导致看不 ...

  4. mindxdl--common--http_handler.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common this file ...

  5. [ PHP 内核与扩展开发系列] 内存管理 —— 引用计数

    对于 PHP 这种需要同时处理多个请求的程序来说,申请和释放内存的时候应该慎之又慎,一不小心便会酿成大错.另一方面,除了要安全申请和释放内存外,还应该做到内存的最小化使用,因为它可能要处理每秒钟数以千 ...

  6. 让 Serverless 更普惠,阿里云函数计算 FC 宣布全面降价,最大幅度达 37.5%

    11月5日,2022 杭州 · 云栖大会上,阿里云宣布函数计算 FC 开启全面降价,vCPU 单价降幅** 11%,其他的各个独立计费项最高降幅达 37.5%**. 本次云栖大会上,阿里云智能总裁张建 ...

  7. Android Studio打开时报错if you already hava 64-bit JDK installed,define a JAVA_HOME

    出现这个问题不知道改了什么导致的,卸载了重新安装也是不行. 以及到高级设置中进行配置jdk也是无效, 解决方法为需要在路径 C:\Users\你自己的用户名\AppData\Roaming\Googl ...

  8. 关于Linux pyinstaller打包zmq.h报错

    报错信息 6:10: fatal error: zmq.h: No such file or directory #include <zmq.h> ^~~~~~~ compilation ...

  9. Python中内置数据库!SQLite使用指南! ⛵

    作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...

  10. O-MVLL代码混淆方式

    在介绍O-MVLL之前,首先介绍什么是代码混淆以及基于LLVM的代码混淆,O-MVLL项目正是基于此而开发来的. 有关O-MVLL的概括介绍以及安装和基本使用方式,可参见另一篇随笔 https://w ...