1.安装amap/amap-jsapi-loader

npm i amap-jsapi-loader --save

2.注册高德api

官网地址:高德开放平台 | 高德地图API (amap.com)

注册之后点击右上角控制台,在如下位置添加key

按下图操作生成属于你的key(后面要用)

3.在页面使用

创建一个组件

1.页面构建

html页面如下,一个容器包裹一个输入框,分别赋予id,container是地图容器

<div id="container" style="width: 100%;height: 600px;position: relative"><inputv-model="keyword"class="keyword"id="keyword"placeholder="请输入搜索位置"style="position: absolute;z-index: 99;"/></div></div>

2.引入amap/amap-jsapi-loader

这里我直接在页面内引用

import AMapLoader from "@amap/amap-jsapi-loader";

3.初始化地图

import AMapLoader from "@amap/amap-jsapi-loader";
import { reactive, ref, shallowRef} from 'vue'const keyword = ref('')
// 存储搜索用的数据
const form: any = reactive({address: '',
})
const ininMap = () => {AMapLoader.load({key: 'your key',//api服务key--另外需要在public中使用安全密钥!!!version: '1.4.4',// 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15plugins: ['AMap.PlaceSearch', 'AMap.AutoComplete']// 需要使用的的插件列表}).then((AMap) => {map = new AMap.Map('container', {resizeEnable: true,zoom: 9.5, // 地图显示的缩放级别center: [117.2, 31.8]//中心点})}
}

这里的key就是刚刚申请的key,填上即可

另外,还需在项目的public文件夹的index.html文件里添加安全密钥,代码如下

<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title></head><body><script>window._AMapSecurityConfig = {securityJsCode:'你的安全密钥',};//在这里添加</script><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --></body>
</html>

配置完成了接下来就是完成搜索框的配置

代码如下

const ininMap = () => {AMapLoader.load({key: 'your key',//api服务key--另外需要在public中使用安全密钥!!!version: '1.4.4',// 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15plugins: ['AMap.PlaceSearch', 'AMap.AutoComplete']// 需要使用的的插件列表}).then((AMap) => {map = new AMap.Map('container', {resizeEnable: true,zoom: 9.5, // 地图显示的缩放级别center: [117.2, 31.8]})AMap.plugin(['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Geocoder'],function (
callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null) {const autoOptions = {input: 'keyword' // 使用联想输入的input的id}const autocomplete = new AMap.Autocomplete(autoOptions)const placeSearch = new AMap.PlaceSearch({map: map})const geocoder = new AMap.Geocoder({radius: 1000,extensions: 'all'})AMap.event.addListener(autocomplete, 'select', function (e) {placeSearch.setCity(e.poi.adcode)placeSearch.search(e.poi.name, function (status, result) {const pois = result.poiList.poisfor (let i = 0; i < pois.length; i++) {if (pois[i].name === e.poi.name) {console.log('搜索结果', pois[i])geocoder.getAddress([pois[i].location.lng, pois[i].location.lat],function (status, result) {console.log(result)if (status === 'complete' && result.info === 'OK') {form.address = result.regeocode.formattedAddress} else {form.address = ''}})}}})})})}).catch((e) => {})
}

页面完整代码如下

<template><div class="box"><div id="container" style="width: 100%;height: 600px;position: relative"><inputv-model="keyword"class="keyword"id="keyword"placeholder="请输入搜索位置"style="position: absolute;z-index: 99;"/></div></div>
</template><script setup lang="ts">
import AMapLoader from "@amap/amap-jsapi-loader";
import { reactive, ref, shallowRef} from 'vue'const keyword = ref('')
// 存储搜索用的数据
const form: any = reactive({address: '',
})
let map = shallowRef(null)
const ininMap = () => {AMapLoader.load({key: 'your key',//api服务key--另外需要在public中使用安全密钥!!!version: '1.4.4',// 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15plugins: ['AMap.PlaceSearch', 'AMap.AutoComplete']// 需要使用的的插件列表}).then((AMap) => {map = new AMap.Map('container', {resizeEnable: true,zoom: 9.5, // 地图显示的缩放级别center: [117.2, 31.8]})AMap.plugin(['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Geocoder'],function (callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null) {const autoOptions = {input: 'keyword' // 使用联想输入的input的id}const autocomplete = new AMap.Autocomplete(autoOptions)const placeSearch = new AMap.PlaceSearch({map: map})const geocoder = new AMap.Geocoder({radius: 1000,extensions: 'all'})AMap.event.addListener(autocomplete, 'select', function (e) {placeSearch.setCity(e.poi.adcode)placeSearch.search(e.poi.name, function (status, result) {const pois = result.poiList.poisfor (let i = 0; i < pois.length; i++) {if (pois[i].name === e.poi.name) {console.log('搜索结果', pois[i])geocoder.getAddress([pois[i].location.lng, pois[i].location.lat],function (status, result) {console.log(result)if (status === 'complete' && result.info === 'OK') {form.address = result.regeocode.formattedAddress} else {form.address = ''}})}}})})})}).catch((e) => {})
}ininMap()</script>

完成效果图

vue3+ts+amap/amap-jsapi-loader实现高德地图搜索选取地点相关推荐

  1. android高德地图搜索地址,地点/周边搜索-Android平台-开发指南-高德地图车机版 | 高德地图API...

    关键字搜索 第三方通过该接口可传入关键字信息给auto,调起auto执行关键字搜索并跳转到搜索结果展现界面,官网版本都可支持 参数说明 参数说明是否必填类型 ActionAUTONAVI_STANDA ...

  2. 集合高德地图搜索--导出Excel数据 工具

    第一个是高德地图接口返回的数据对象的domain类 @Getter @Setter public class DataClass {private String name; //名称private S ...

  3. 高德地图-搜索服务-POI搜索

    高德地图-搜索服务-POI搜索 之前公司项目收货地址仿饿了么的收货地址,结果发现自己实现的关键字搜索和周边搜索,搜索到的poi列表跟饿了么的并不完全一样,后来考虑了下,应该是搜索的范围.类型之类的设置 ...

  4. iframe内嵌高德地图搜索

    iframe内嵌高德地图搜索

  5. amap vueamap 与_vue 使用高德地图vue-amap组件过程解析

    这篇文章主要介绍了vue 使用高德地图vue-amap组件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先 npm install -S ...

  6. 高德地图搜索附近地址所遇到的问题

    调用高德地图JS-api,PlaceSearch搜索附近地址,地图上出现的点标记不易清除,clear方法无效 AMap.service('AMap.PlaceSearch',function(){// ...

  7. 高德地图怎么搜索marker_2018-07-06 高德地图搜索定位,滑动地图显示周边信息,根据地址搜经...

    emmmm,效果图先行(搜索定位以及自由滑动地图展示周边位置信息,根据点击的位置获取经纬度) aa.gif 主要代码package com.dydd.wsp.dreamtree.ui.mapimpor ...

  8. vue 高德地图搜索功能_VUE中使用高德地图做轨迹添加功能,帮助轨迹展示

    准备工作 使用前准备 : 高德地图key 使用插件: vue-amap 1.npm安装vue-amap npm install vue-amap --save import AMap from 'vu ...

  9. 高德地图 搜索店名获取经纬度

    有啥问题加QQ:3053916151 <!doctype html> <html lang="zh-CN"><head><meta cha ...

最新文章

  1. SQL SERVER 2008 数据恢复错误的解决步骤
  2. map+DP leetcode446
  3. linux ibus获取窗体位置,Ubuntu 12.04 显示ibus 的输入框
  4. cad隐藏图层命令快捷键_cad快捷键f是什么命令?cad中f快捷键都有哪些?
  5. 为什么要使用GraphQL?
  6. EasyUI管理后台模板(附源码)
  7. 确认计算机故障的方法,计算机常见故障及处理方法大全!
  8. 修正半透明头发的渲染异常
  9. 软考高级系统架构设计师系列论文二十五:论信息系统的安全性与保密性设计
  10. SuperMemo导出html,使用思维导图和SuperMemo一起来快速复习(1)
  11. 程序员的我,为何来了大北京
  12. CloseHandle(),TerminateThread(),ExitThread()的区别
  13. 两个pdf合并成一个pdf,操作方法
  14. 使用软碟通做启动盘给电脑装系统时如何分区
  15. ajax怎么设置地图,通过数据库和ajax方法写出地图的实例代码
  16. 持久记录精彩时刻,汉印CP4000体验
  17. hdu - 1789 题解
  18. ASO和ASM的关系与区别
  19. Protobuf 了解
  20. 2008 Cest la vie

热门文章

  1. 大学生申请专利需要多少钱
  2. C语言入门——时间换算
  3. 如何用myeclipse远程调试tomcat
  4. 注册页面reg.html
  5. 【美团点评2020校招测试方向笔试题】算法题部分1.删除字符 2.队列组合排序 3.寻找最小子字符串 4.最大矩形 5.最短送餐路程计算
  6. Microsoft SQL Server2000 四个版本的区别及下载地址
  7. js中一种常见条件判断if(var)的坑
  8. 谷歌浏览器上传文件总是卡死
  9. 中国软件网联手华赛信息为软件企业 提供CMMI咨询及认证服务
  10. Qt - OpenCV 连续图片生成视频