效果图

在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. 常用Linux命令(常年更新)

    Linux后台运行脚本: nohup python -u test.py > out.log 2>&1 & nohup sh **.sh > /dev/null 2& ...

  2. 高性能MySQL(第4版) 第一章 MySQL架构 读书笔记

    这本书去年11月出的,今年中文版也出了,并且直接上了微信读书,之后有空就读一读,分享下读书笔记~ 原文内容比较充实,建议有时间可以读一下原文. 第一章主要是个概览. MySQL的逻辑架构 默认情况下, ...

  3. linux如何删除多余网卡

    ifconfig tunl0 down ip link delete tunl0

  4. RSA、DSA 和 ECC 加密算法有什么区别?

    RSA.DSA 和 ECC 加密算法是用于在公钥基础设施中生成密钥的主要算法. 公钥基础设施 (PKI) 用于管理互联网通信和计算机网络中的身份和安全性. 启用 PKI 的核心技术是公钥密码术,这是一 ...

  5. Kubeadm搭建kubernetes集群

    Kubeadm搭建kubernetes集群 环境说明 | 角色 | ip | 操作系统 |组件 | | – | – | – | | master | 192.168.203.100 |centos8 ...

  6. hashcat 命令

    hashcat --force --stdout -a 6 tmp.txt ?d?d?d?d?d?d?d > result.txt tips:将tmp.txt字典中的内容与7位随机掩码字符组合, ...

  7. 前端学习 Nginx

    前端学习 nginx 本篇主要讲解 nginx 常用命令.基础概念(正向/反向代理.负载均衡.动静分离.高可用).配置文件结构,并通过简单的实验来体验反向代理和负载均衡,最后说一下 nginx 原理. ...

  8. 学习 vue3 第一天 vue3简介,创建vue3项目 Composition Api 初识

    前言: 从今天开始来和大家一起学习 vue3 相信大家都不陌生,已经火了一段时间了,但是还是有不少人没有学习,那就跟着六扇老师来简单的入个门 废话不多说,来开始今天的学习 Vue3 简介: 2020年 ...

  9. error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or di

    前言 运行 ida软件报错, 但是我的系统中存在 libSM.so.6 解决办法 首先查看系统中的 libsm.so.6 ldconfig -p |grep -i libsm.so.6 输出: lib ...

  10. Apache Dubbo 多语言体系再添新员:首个 Rust 语言版本正式发布

    Dubbo Rust 定位为 Dubbo 多语言体系的重要实现,提供高性能.易用.可扩展的 RPC 框架,同时通过接入 Dubbo Mesh 体系提供丰富的服务治理能力.本文主要为大家介绍 Dubbo ...