效果图

在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. 一键部署haproxy脚本

    HAPROXY_VERSION=2.6.6 HAPROXY_FILE=haproxy-${HAPROXY_VERSION}.tar.gz #HAPROXY_FILE=haproxy-2.2.12.ta ...

  2. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块

    这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号 ...

  3. Rock18框架之整体框架介绍

    1. 总体框架图 2.框架能解决哪些问题? 问题1: 自动化设备包含龙门架.机械手.伺服.步进等电机.IO控制.定位及纠偏.界面展示等部分.其中硬件(伺服.IO等)是需要更换的,硬件的更换不影响整套系 ...

  4. VirtualBox 下 CentOS7 静态 IP 的配置 → 多次踩坑总结,蚌埠住了!

    开心一刻 一个消化不良的病人向医生抱怨:我近来很不正常,吃什么拉什么,吃黄瓜拉黄瓜,吃西瓜拉西瓜,怎样才能恢复正常呢? 医生沉默片刻:那你只能吃屎了 环境准备 VirtualBox 6.1 网络连接方 ...

  5. CSS选择器大全48式

    00.CSS选择器 CSS的选择器分类如下图,其中最最常用的就是基础选择器中的三种:元素选择器.类选择器.id选择器.伪类选择器就是元素的不同行为.状态,或逻辑.然后不同的选择器组合,基于不同的组合关 ...

  6. 基于docker和cri-dockerd部署kubernetes v1.25.3

    基于docker和cri-dockerd部署kubernetes v1.25.3 1.环境准备 1-1.主机清单 主机名 IP地址 系统版本 k8s-master01 k8s-master01.wan ...

  7. Dubbo-聊聊通信模块设计

    前言 Dubbo源码阅读分享系列文章,欢迎大家关注点赞 SPI实现部分 Dubbo-SPI机制 Dubbo-Adaptive实现原理 Dubbo-Activate实现原理 Dubbo SPI-Wrap ...

  8. Flask框架:如何运用Ajax轮询动态绘图

    摘要:Ajax是异步JavaScript和XML可用于前后端交互. 本文分享自华为云社区<Flask框架:运用Ajax轮询动态绘图>,作者:LyShark. Ajax是异步JavaScri ...

  9. 万字干货_JDK动态代理及其源码解析 拿捏了

    目录 代理模式 静态代理 静态代理和动态代理的区别?什么是静态.动态? 静态代理的使用步骤 示例 静态代理的缺陷 解决静态代理的缺陷的思路 JDK动态代理 JDK 动态代理类使用步骤 示例 底层原理 ...

  10. Hashcat使用指南

    Hashcat使用指南 免责声明: 0×01 Hashcat破解linux shadow的密码-首先了解shadow文件到底是什么? 0×02 hashcat的使用 参数补充: -m 参数 -a 参数 ...