借助百度地图的 LocalSearch 和 Autocomplete 两个方法

实现方式:通过promise以及百度地图的callback回调函数

map.js
 1       export function MP(ak) {
2 return new Promise(function (resolve, reject) {
3 window.init = function () {
4 resolve(BMap)
5 }
6 var script = document.createElement("script");
7 script.type = "text/javascript";
8 script.src = "http://api.map.baidu.com/api?v=2.0&ak="+ak+"&callback=init";
9 script.onerror = reject;
10 document.head.appendChild(script);
11 })
12 }
使用
 1 <template>
2 <input type="text" id="suggestId" name="address_detail" placeholder="如门牌号等" v-model="address_detail" class="input_style">
3 <div id="allmap"></div>
4 </template>
5 <script>
6 import {MP} from '../../map'
7
8 data(){
9 return{
10 address_detail: null, //详细地址
11 userlocation:{lng:"",lat:""},
12 }
13 },
14 mounted(){
15 this.$nextTick(function () {
16 MP("你的ak").then( BMap => {
17 var th = this
18 var map = new BMap.Map("allmap"); // 创建Map实例
19 var point = new BMap.Point(116.404, 39.915); // 创建点坐标
20 map.centerAndZoom(point,15);
21 map.enableScrollWheelZoom();
22 var ac = new BMap.Autocomplete( //建立一个自动完成的对象
23 {"input" : "suggestId"
24 ,"location" : map
25 })
26 var myValue
27 ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
28 var _value = e.item.value;
29 myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
30 this.address_detail = myValue
31 setPlace();
32 });
33
34 function setPlace(){
35 map.clearOverlays(); //清除地图上所有覆盖物
36 function myFun(){
37 th.userlocation = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
38 map.centerAndZoom(th.userlocation, 18);
39 map.addOverlay(new BMap.Marker(th.userlocation)); //添加标注
40 }
41 var local = new BMap.LocalSearch(map, { //智能搜索
42 onSearchComplete: myFun
43 });
44 local.search(myValue);
45 }
46 })
47 })
48 },
49 </script>
效果

最新文章

  1. jquery复选框checkbox实现删除
  2. Android Fragment
  3. JavaScript Patterns 6.2 Expected Outcome When Using Classical Inheritance
  4. Linux 下安装配置 JDK7
  5. Android中常见的MVC模式
  6. The Contiki build system 编译系统
  7. android小知识之中如何获取当前时间
  8. C#中级-从零打造基于Socket在线升级模块
  9. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxError Exception
  10. Servlet 使用ServletConfig对象来配置Servlet
  11. idea开发swing(二)
  12. 菜鸟教程之工具使用(五)——JRebel与Windows服务的Tomcat集成
  13. ARC 之内存转换
  14. poj1191 棋盘分割【区间DP】【记忆化搜索】
  15. 我与ARM的那些事儿1初识ARM
  16. DDL-表的管理
  17. asp.net 遍历文件夹下全部子文件夹并绑定到gridview上
  18. java网络编程3-Socket
  19. LeetCode:路径总和【112】
  20. CCCC L1-002. 打印沙漏【图形打印】

热门文章

  1. hdu 2191 珍惜现在,感恩生活(多重背包)
  2. 禁用root直接远程登录,使用普通账号登录后再切换root
  3. 【Python+postman接口自动化测试】(4)HTTP 协议
  4. OpenYurt 与 FabEdge 集成验证——云边数据面通信初试
  5. git rebase 合并提交
  6. C++getline()
  7. liunx下安装mysql(8.0.27)
  8. [luogu5564]Say Goodbye
  9. [spojRNG]Random Number Generator
  10. [bzoj4650]优秀的拆分