Vue3+Vite连接高德地图JS API——地图显示、输入搜索

这篇具有很好参考价值的文章主要介绍了Vue3+Vite连接高德地图JS API——地图显示、输入搜索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 开通高德地图Web端JS API服务

1、进入高德地图API官网(https://lbs.amap.com/):
vue3实现高德输入提示,javascript,开发语言,ecmascript
2、注册登录。
3、进入控制台。

vue3实现高德输入提示,javascript,开发语言,ecmascript

4、点击“应用管理”,点击“我的应用”,创建新应用。

vue3实现高德输入提示,javascript,开发语言,ecmascript

5、添加Key,服务平台选择“Web端(JS API)”,白名单不要填写,勾选阅读并同意。

vue3实现高德输入提示,javascript,开发语言,ecmascript

点击提交后,就能看到Key已经生成,记住这里的Key和安全密钥。

vue3实现高德输入提示,javascript,开发语言,ecmascript

2 配置Vue项目文件

2.1 简易方法

因此直接下载官方提供的项目,修改一下Key就能用。
1、进入网址:

https://lbs.amap.com/api/javascript-api-v2/guide/abc/amap-vue

点击“下载Vue3组件完整代码”。
vue3实现高德输入提示,javascript,开发语言,ecmascript
2、修改Key
进入工程,点击MapContainer.vue,添加自己的Key。

vue3实现高德输入提示,javascript,开发语言,ecmascript
3、连接服务器
调试窗口输入:

npm install
npm run dev

进入网址可以看到地图。
vue3实现高德输入提示,javascript,开发语言,ecmascript

2.2 手动编写

这里编写一些搜索地点并能显示地图的小demo。

vue3实现高德输入提示,javascript,开发语言,ecmascript

2.2.1 构建项目

终端输入:

npm create vue@latest

输入项目名和包名称:

gaodeMap_demo

进入工程:

cd gaodeMap_demo

安装npm

npm install

测试:

npm run dev

可以看到如下网页:
vue3实现高德输入提示,javascript,开发语言,ecmascript

2.2.2 下载包

2.2.2.1 按需导入element-plus包

安装unplugin-vue-components、unplugin-auto-import:

npm install -D unplugin-vue-components unplugin-auto-import

修改vite.config.js配置文件:

// vite.config.js
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
  // ...
  plugins: [
    // ...
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
})

官方链接:

https://element-plus.gitee.io/zh-CN/guide/quickstart.html#%E6%8C%89%E9%9C%80%E5%AF%BC%E5%85%A5

2.2.2.2 导入高德@amap/amap-jsapi-loader

命令行终端输入:

npm i @amap/amap-jsapi-loader --save

2.2.2 编写程序

项目中新建MapContainer.vue,用作地图组件。
代码如下:

// MapContainer.vue
<template>
    <div>Handbook.vue的组件</div>
    <el-input v-model="positionInput" 
        id="searchInputId"
        class="common-layout"
        size="small"
        placeholder="输入关键词搜索位置"
        style="height:25px;width:26%;margin-left:1%;"/>
    <el-button>搜索</el-button>
    <div class="gdmap-container">
        <div id="container"></div>
    </div>
</template>

<script>
import AMapLoader from "@amap/amap-jsapi-loader";
import { onMounted, onUnmounted,ref } from 'vue';

export default{
    setup(){
        const positionInput = ref('');
       
        function initMap(){
            window._AMapSecurityConfig = {
                securityJsCode: "5e*********************7e7", // 密钥
            };	// 重要!
            AMapLoader.load({
                key: "a62*************************92b", // 申请好的Web端开发者Key,首次调用 load 时必填
                version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                plugins: [
                'AMap.AutoComplete',
                'AMap.PlaceSearch'
                ], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
            })
            .then((AMap) => {
                var map = new AMap.Map("container",{
                    resizeEnable: true,
                    viewMode: "3D", // 是否为3D地图模式
                    zoom: 8, // 初始化地图级别
                    center: [118,30], // 初始化地图中心点位置
                });
                var autoOptions = {
                    input:"searchInputId"
                };
                var auto = new AMap.AutoComplete(autoOptions);
                var placeSearch = new AMap.PlaceSearch({
                    map:map
                })
                auto.on("select",select);
                function select(e) {
                    placeSearch.setCity(e.poi.adcode);
                    placeSearch.search(e.poi.name);  //关键字查询查询
                }
            })
        }
        onMounted(() => {
            console.log("onmounted");
            initMap();
        });
        onUnmounted(() => {
            map?.destroy();
        });
        return{
            positionInput,
        }
    }
}
</script>

<style scoped>
.gdmap-container{
    width: 500px;
    height:300px;
}
#container {
  padding: 0px;
  margin: 0px;
  border:1px solid gray;
  width: 100%;
  height: 100%;
}
</style>

2.2.3 引用

为了方便这里直接修改app.vue
删除不需要的vue,添加

<template>
  <div>
    <MapContainer />
  </div>
</template>

<script setup>
import MapContainer from './MapContainer.vue';
</script>

<style scoped>
</style>

2.2.4 运行

命令行输入:

npm run dev

输入框编辑文字,可以看到如下画面:
vue3实现高德输入提示,javascript,开发语言,ecmascript
搜索按钮暂时没写回调函数,将就着用。

3 问题小结

1、地图无法显示:地图的块元素div给的参数是id="container",样式中需要使用#container

2、本人在编程的时候出现了无法自动补全的情况,错误码是INVALID_USER_SCODE,官方说明是安全码未通过验证,因此添加了在代码中添加了安全密钥:

window._AMapSecurityConfig = {
    securityJsCode: "「你申请的安全密钥」",
  };

添加后,代码能够成功运行,input输入窗口下方出现了自动补全文字选项。

3、输入框最好使用el-input,其次是input的id前面不要加:,否则就是另外一个意思(我也是初学者,说不太清)。AMap的自动补全是绑定这个id的。


官网链接:

https://lbs.amap.com/api/javascript-api-v2/guide/abc/load文章来源地址https://www.toymoban.com/news/detail-798050.html

到了这里,关于Vue3+Vite连接高德地图JS API——地图显示、输入搜索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3使用高德地图、搜索、地图选点、以及省市区三级联动

    1、准备工作 需要在 高德开发平台 申请自己的 key 和 密钥 这里的 Key 名称大家可以随意填写 申请完之后我们得到 key 和 密钥 vue中使用需要安装**@amap/amap-jsapi-loader --save** 官方文档 2、代码实现 首先我们需要三个文件,一个 index.vue 一个用来存放省市区的 index.js 文件 一个 ma

    2024年02月05日
    浏览(75)
  • 手把手教你搭建个人地图服务器(高德离线部署解决方案):获取地图瓦片数据、高德JS API、私有化部署和调用。。。

    众所周知,目前常见的地图(高德、百度、腾讯等)只提供在线API服务,对于一些内网应用而言,如果需要使用地图展示,则由于不能访问互联网而无法使用类似的第三方地图服务。 本文,通过将高德地图瓦片数据 和 在线JS API做了本地部署,并修改API,将其所有的网络请求

    2024年02月04日
    浏览(63)
  • 前端系列19集-vue3引入高德地图,响应式,自适应

    npm i @amap/amap-jsapi-loader --save 要在Vue 3中引入高德地图,你可以按照以下步骤进行操作: 在项目目录中使用npm或yarn安装高德地图的JavaScript API库。你可以使用以下命令之一: npm install @amap/amap-jsapi-loader yarn add @amap/amap-jsapi-loader 在Vue组件中引入并使用高德地图。 在你的Vue组件中

    2024年02月07日
    浏览(46)
  • vue3使用高德地图实现点击获取经纬度以及搜索功能

     话不多说直接上干活 在此之前你需要有高德地图的 key,这个自己去申请即可 1,首先需要在终端安装 2,准备一个容器 3,在需要使用的页面引入刚才安装的 4, 5,绑定input框 最后附上css代码 ​​​​​​​这个时候就已经可以了

    2024年02月12日
    浏览(45)
  • vite + vue3 —— vue地图大屏项目

    ​回顾  前期  ​        前端利器 —— 提升《500倍开发效率》 传一张设计稿,点击一建生成项目 好牛_0.活在风浪里的博客-CSDN博客 如果非要说它有什么缺点,那么我觉得就是它会,让你cv大法都没处使!!!比如:公司让你写一个小程序、或h5web页面、UI给了你30张UI图

    2024年01月17日
    浏览(41)
  • VUE3+TS+element UI +高德地图实现轨迹回放带进度条

    记录一下,由于项目需要做车辆的历史轨迹回放,查了很多资料,在高德地图里有这几种解决方案。 所用技术:vue3 + TS +element UI plus +高德地图  这是相关的Demo借鉴 高德地图的轨迹回放demo 轨迹巡航器控制 高德地图Amap UI 下面是效果图: 1,这是高德地图提供的轨迹回放demo

    2024年02月11日
    浏览(64)
  • vue2嵌入高德地图选择地址后显示地址和经纬度

    以高德地图为里,申请key,选择js api服务,获取key和密钥. vue2项目代码引入相关依赖: 封装成组件: 页面引用:

    2024年01月20日
    浏览(49)
  • 记录--手把手教你Vue+ECharts+高德地图API实现天气预报数据可视化

    所谓数据可视化,我们可以理解为从宏观角度来看一眼就能看出来整个数据的占比,走向。对于数据可视化,很多互联网公司是很看重这一块的,包括大厂;就比如阿里的淘宝,双十一的时候往往就需要将消费者的一些数据通过图的形式展现出来。接下来我们就来实现一个天

    2024年02月07日
    浏览(65)
  • VUE3+Ts使用高德地图组件@vuemap/vue-amap语法检测Amap is not defind

    踩坑记录:最近项目中用到了@vuemap/vue-amap高德地图组件,正常配置完成后,引入官方示例,地图正常出现,可以正常编译不出错,但是代码提示给我整了个这。 于是,开始查资料,为什么会出现这个情况,然后是因为在main.js导入的名字VueMap和高德自己全局暴露AMap不是一码事

    2024年02月06日
    浏览(56)
  • Uni App + Vue3 引入高德小程序插件Js文件失败

      使用uni app模板开发微信小程序过程中引入高德地图小程序插件失败, 由于本人是第一次使用vue开发对vue2和3的模块引入方式并不甚了解,官方文档也并未提及所以踩了坑,特记录一下, 先看代码: 根据官方文档这里引入js插件后即可在onload函数实例化一个AMapWX对象 这里实

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包