vue2集成amap(高德地图)位置搜索和定位

本文主要是介绍vue2集成amap(高德地图)位置搜索和定位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我只用到地址的搜索和获取当前地址,没有加上地图,要做其他效果完全可以参考官方文档。

如果有其他vue的功能需求,大家可以给我留言,我选需求高的开发。

有几个注意事项是,我是2017-6-15开发的,目前的vue-amap api太简陋了,而且定制化很恼火,所以建议集成vue-amap后,再结合官方文档。

随便值得高兴的是,终于摆脱了百度地图恶心的api,不需要头部直接引用百度地图那个js了,因为我整个项目就只有一个页面要用到地图功能,全局引入太恶心了。

下面进入正题:

1. 到高德地图注册一个帐号,创建应用,创建一个key

2.  安装

npm install vue-amap --save

2. main.js引入

// 引入vue-amap
import AMap from 'vue-amap';
Vue.use(AMap);// 初始化vue-amap
AMap.initAMapApiLoader({// 申请的高德keykey: 'YOUR_KEY',// 插件集合plugin: ['AMap.PlaceSearch', 'AMap.Geolocation']
});


我目前只用到了这2个,其他的api,其实参照官方的javascript的api,使用方法都同理了。难点反而是集成到项目之后的样式控制。

 

3. 页面使用,样式等自己写

<input type="text" ref="searchText" id="searchText" @keyup="keyUpSearch" placeholder="请输入地址"/>  <div class="address_items" id="address_result" v-if="searchData.length > 0"><div class="address_item" v-for="item in searchData" @click="selectAddress(item)"><div class="title">{{ item.name }}</div><div class="description">{{ item.pname }}{{ item.cityname }}{{ item.address }}</div></div>
</div><div id="temp" style="display: none;"></div>

 

methods里面添加对应的keyUpSearch方法

keyUpSearch () { var _this = this;var txt = this.$refs.searchText.value; AMap.service(["AMap.PlaceSearch"], function() { var placeSearch = new AMap.PlaceSearch({ //构造地点查询类 pageSize: 12, pageIndex: 1, city: "成都", //城市 cityLimit: 'true', panel: 'temp'//搜索结果的展示面板对元素id,不知道为什么一定要有该参数,最终获取的结果才更完整,参数更多跟完整。所以我在页面随便写了一个<div id="temp" style="display:none"></div>});//关键字查询placeSearch.search(txt, function(status, result) {if (status == 'complete' && result.info == 'OK') {
//这里可以console.log(result),查看所有返回的参数,遍历展示这些基本的,我就不赘述//_this.searchData = result.poiList.pois}})})}

对应的搜索结果点击方法

selectAddress (item) {// 选中后执行,根据自己业务选择console.log(item);
}


相关链接:vue-amap
https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install
高德地图api
http://lbs.amap.com/api/javascript-api/example/poi-search/keywords-search
 

很多朋友都留言说希望有个预览的网址,我写了个demo,移动端和PC浏览器都可以访问。

http://vue.mho666.com/#/amp_suggest

这篇关于vue2集成amap(高德地图)位置搜索和定位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/372802

相关文章

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

JAVA集成本地部署的DeepSeek的图文教程

《JAVA集成本地部署的DeepSeek的图文教程》本文主要介绍了JAVA集成本地部署的DeepSeek的图文教程,包含配置环境变量及下载DeepSeek-R1模型并启动,具有一定的参考价值,感兴趣的... 目录一、下载部署DeepSeek1.下载ollama2.下载DeepSeek-R1模型并启动 二、J

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

如何使用CSS3实现波浪式图片墙

《如何使用CSS3实现波浪式图片墙》:本文主要介绍了如何使用CSS3的transform属性和动画技巧实现波浪式图片墙,通过设置图片的垂直偏移量,并使用动画使其周期性地改变位置,可以创建出动态且具有波浪效果的图片墙,同时,还强调了响应式设计的重要性,以确保图片墙在不同设备上都能良好显示,详细内容请阅读本文,希望能对你有所帮助...

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网