使用vue-baidu-map实现地址定位标点及关键字搜索定位(获取地址数据并获取经纬度)

49 篇文章 1 订阅
订阅专栏
2 篇文章 0 订阅
订阅专栏

实现效果:
关键字搜索或点击地图标点 获取地址数据及经纬度
修改表单时::根据数据回填地址显示标点

代码背景::
vue+antd+vue-baidu-map

实现效果:
在这里插入图片描述

默认选中成都
在这里插入图片描述
有搜索值时,显示搜索值相关的标点数据
在这里插入图片描述
有地址标点同时输入了搜索值时,显示搜索值相关数据
在这里插入图片描述
有地址数据,没有搜索值时,显示地址数据相关标点
在这里插入图片描述

代码:


表单显示:
<a-row>
<a-col :span="12">
            <a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="storeLongitude">
              <a-input-number v-model="model.storeLongitude" placeholder="请输入门店经度" style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="storeLatitude">
              <a-input-number v-model="model.storeLatitude" placeholder="请输入门店纬度" style="width: 100%" />
            </a-form-model-item>
          </a-col>
        </a-row>
 <a-row>
          <a-form-model-item label="诊所地址(输入或者在地图上选择)"  prop="address">
            <a-input placeholder="请输入诊所地址" v-model="model.address"></a-input>
          </a-form-model-item>
        </a-row>


        <!--地图模块-->
          <div>
            <div class="mb-10">
              <label><a-input v-model="inputValue" placeholder="输入关键字查询或点击地图" @change="confirmAddress" style="width: 30%;"/></label>

            </div>

            <baidu-map
              ak="ak码" //需从百度api中申请获得
              scroll-wheel-zoom
              @ready="mapReady"
            >
              <!--地图视图-->

              <bm-view class="map"></bm-view>

              <!--搜索-->

              <bm-local-search
                :keyword="keyword"
                :panel="isShowPanel"
                auto-viewport
                :zoom="10"
                style="display: none;"
                :location="location"
                @markersset="setAddressList"
              ></bm-local-search>

              <!--点标注-->
              <bm-navigation anchor="BMAP_ANCHOR_TOP_LEFT" />
              <bm-marker-clusterer averageCenter>
                <bm-marker :position="location" />
              </bm-marker-clusterer>
            </baidu-map>
          </div>

页面引入包(选择需要的引入即可):

 import BmInfoWindow from "vue-baidu-map/components/overlays/InfoWindow"; //标注弹窗
  import BaiduMap from "vue-baidu-map/components/map/Map.vue";
  import BmView from "vue-baidu-map/components/map/MapView.vue";
  import BmNavigation from "vue-baidu-map/components/controls/Navigation";
  import BmMarkerClusterer from "vue-baidu-map/components/extra/MarkerClusterer";
  import BmMarker from "vue-baidu-map/components/overlays/Marker";
  import BmLocalSearch from "vue-baidu-map/components/search/LocalSearch.vue";

参数方法:

let geocoder; 需要把这句放到引入包的下面在这里插入图片描述

 
compontens数据:

components: {
      BaiduMap,
      BmView,
      BmNavigation,
      BmMarkerClusterer,
      BmMarker,
      BmLocalSearch,
      BmInfoWindow,
    },
    
data数据:
 model:{},
 labelCol: {
   xs: { span: 24 },
   sm: { span: 7 },
 },
 wrapperCol: {
   xs: { span: 24 },
   sm: { span: 16 },
 },
 location: {
   lng: 104.081534,
   lat: 30.655822
 },
  isShowPanel: true,
 BMap: {},
 map: {},
 inputValue: "",


methods数据:
mapReady({ BMap, map }) {

        this.BMap = BMap;
        this.map = map;

        geocoder = new BMap.Geocoder(); //创建地址解析器的实例
        if(this.model.hasOwnProperty('address')){//如果当前model中包含address 则证明是修改表单数据(地址存在,打开表单显示地址标点)
         this.keyword = this.model.address
        }else{//否则显示默认标点(这里的经纬度代表成都)
        //第二个参数  10 代表地图缩放级别,最大为19,最小为0
          this.map.centerAndZoom(new BMap.Point(104.081534,30.655822), 10);
        }
        map.addEventListener("click", ({ point }) => {
          this.location.lng = point.lng;
          this.location.lat = point.lat;
          geocoder.getLocation(point, res => {
            this.model.address = res.address;
            console.log("11当前所在位置信息",res);
            console.log("当前所在位置信息",this.model.address);
            this.model.storeLongitude = point.lng
            this.model.storeLatitude = point.lat
            this.$forceUpdate();
          });
        });
      },
      setAddressList(e) {
		//这里是搜索位置的一些相关数据
        console.log(e);

      },
      confirmAddress(e) {
        console.log("this.model.address:",this.model.address)
        if (this.inputValue != ''){
          console.log("输入框不为空赋值输入框的值")
          this.keyword = this.inputValue
        }else if(this.model.address != undefined) {
           console.log("输入框不为空 地址也不为空 赋值地址的值")
           this.keyword = this.model.address
         }

		//为啥使用延时??
		//因为上面搜索框是change事件,变化的太快了看起来效果不好所以添加了延时
      setTimeout(()=>{
      //搜索时把需要标点的地址传入local.search中
        var local = new BMap.LocalSearch(this.map, {
          renderOptions:{map: this.map}
        });
        local.search(this.keyword);
        // geocoder.getPoint(this.keyword,  point=> {
        //   // this.map.centerAndZoom(new BMap.Point( point.lng,point.lat), 20);
        //   //   this.map.addOverlay(new BMapGL.Marker(point));
        //   //   this.map.centerAndZoom(point, 15);
        //   this.map.centerAndZoom(new BMap.Point(point.lng,point.lat), 12);
        //
        //   // geocoder.getLocation(point, res => {
        //   //   //在方法中给变量赋值
        //   //   // this.model.address = res.address;
        //   //     this.keyword = "";
        //   //   this.location.lng = point.lng;
        //   //   this.location.lat = point.lat;
        //   // });
        // })
      },600)

      },
   

样式数据(可能有些都没用上):

<style lang="less" scoped>
.map {
  width: 100%;

  height: 500px;
}

.more_panel {
  text-align: center;

  font-size: 12px;

  color: #2878ff;

  padding-top: 10px;

  span {
    cursor: pointer;

    i {
      transform: rotate(90deg);
    }
  }

  span.down {
    i {
      transform: rotate(-90deg);
    }
  }
}
</style>

完结。。。。。。

百度地图VUE项目中插入点位点位信息弹框
qq_44903607的博客
02-16 1735
在项目中需要使用地图功能,效果图如下: 具体步骤如下: 1、申请百度地图密钥 2、安装vue-baidu-map 3、在main.js中引入vue-baidu-map.js import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { ak: 'ak值' }); 4、template中使用 <baidu-map :zoom="zoom" class="baidu-map" :map-click="fa
vue-baidu-map百度地图组件,实现精准搜索,当前定位功能
weixin_41747256的博客
02-06 727
【代码】【vue-baidu-map百度地图组件,实现精准搜索,当前定位功能。
vue实现百度地图打点自定义div显示内容
CodingNoob
04-01 3845
<template> <div class="bmap-layout"> <tipsBar/> <div class="unit" v-if="mapType == 'heat'"> <div class="unitItem"> <span class="text">锅炉房:</span> <span class="isNum">{{dataSys.guoLuF...
vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示
最新发布
weixin_44168929的博客
04-12 836
最近写项目的时候,做到了考勤打卡的模块内容,需要选择考勤打卡的位置信息以及打卡的范围展,所以做出以下的记录,方便大家参考学习(如下图展示)
vue项目中引入百度地图加入自定义样式,并添加点、面。
one的博客
01-04 3165
vue+vue-baidu-map百度地图实现点击地图标注地理信息并获取经纬度坐标或拖拽图标获取地理坐标信息
youyanh的博客
02-10 6615
1、实现需求 小程序中需要使用到地图导航定位,所以在客户端填写基础信息时需要填写详细地址,同时得到经纬度坐标,从而实现地图导航。 1.1 实现方式一 根据用户选择的省、市、县(区)以及输入的详细地址信息,通过百度官方提供的地址编码解析从而得到地址经纬度坐标。 先下载vue-jsonp: npm(cnpm) install --save vue-jsonp 在main中引入:import * as VueJsonp from 'vue-jsonp (这里注意 加上” * as “) Vue.p
【无标题】vue-baidu-map地图选点(选点,搜索定位,通过经纬度展现)
qq_41468247的博客
12-13 1901
1.安装 1)安装 npm install vue-baidu-map --save 2)组件注册 (1)main.js引入 import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */ ak: 'YOUR_APP_KEY' }) 参考vue-baidu-map官方网址 2.组件封装 1)查询组件封装,新建ba
vue-baidu-map 进入页面自动定位的解决方案(推荐)
12-11
其实是因为太过急功近利了,没有认真阅读 vue-baidu-map 提供参考文档,也有可能是看过然后忘记了! 首先要明确一点(文档原话):由于百度地图 JS API 只有 JSONP 一种加载方式,因此 BaiduMap 组件及其所有子组件...
vue-baidu-map离线百度地图,并附带jar包免费下载百度瓦片数据
02-23
1.vue-baidu-map在线地图代码不用改动,只用按照文档添加baidu-api.js和baidu-init.js,并在vue依赖包 node_modules文件找到,修改vue-baidu-map的 index.js文件 就能完成离线配置 2.jar包可以免费下载百度地图瓦片...
vue 实现Web端的定位功能 获取经纬度
10-16
主要介绍了vue 实现Web端的定位功能获取经纬度,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
vue-baidu-map,百度地图切图工具,瓦片图制作利器
04-03
百度地图切图工具,瓦片图制作利器,结合vue-baidu-map制作瓦片图,可直接生成瓦片图内容,生成对应的瓦片图内容的HTML
使用vue-baidu-map实现地图找房功能(聚合)
11-03
使用vue-baidu-map实现地图找房功能(聚合)
Vue局部引入百度地图添加定位点BmMarker
sinat_38307869的博客
04-06 2072
Vue局部引入百度地图添加定位点BmMarker Html <baidu-map class="bmView" :scroll-wheel-zoom="true" :center="location" :zoom="zoom" @click="getLocationPoint" ak="秘钥"> <bm
Vue 百度地图API实现定位用户位置功能
weixin_52417514的博客
02-23 1237
Vue 百度地图API实现定位用户位置功能
vue使用百度地图带自动定位搜索地址
qq_26841153的博客
12-01 2119
vue使用百度地图带自动定位搜索地址
vue3实现百度地图的调用 获取标点以及添加坐标点 获取坐标
FANSILVLV的博客
06-02 1159
vue3 实现百度地图渲染 vue3获取 当前地理位置 坐标
echarts遇上百度地图打点案例(vue
xiasohuai的博客
12-17 1196
效果图: 1.html文件引入百度api,ak是自己申请的密钥 <script type="text/javascript" src="//api.map.baidu.com/api?v=3.0&ak=xxxxxxxxxxxxxxxxxxxxx"></script> 2.vue代码: <div id="mapEchars" style="width: 100%;height:440px;background:#0b0519;">&l..
vue-baidu-map】点击获取当前具体地址
joanmelon的博客
02-09 2465
☀️大家好,我是宾果的救星~希望记录的学习和收获能够帮助大家在开发过程中得到思路并且解决难题。希望大家多多点赞~爱你们哟~
vue项目引入第三方地图插件并且随机显示坐标点经纬度),点击坐标点弹出窗口,点击详情文字链接到其他模块
张大晴的博客
08-22 5857
vue中引入第三方插件-- https://www.npmjs.com/package/vue-baidu-map  一个百度地图vue封装 上述中的内容在第三方插件的文档介绍中都有。 在具体特性模块中引入地图 :center属性:默认设置一个坐标点  对应的defaultCenter的值为 defaultCenter: { lng: 113.1268217112, l...
vue-baidu-map 经纬度定位
07-28
对于在Vue使用百度地图进行经纬度定位,你可以按照以下步骤进行操作: 1. 首先,在你的Vue项目中安装`vue-baidu-map`插件。可以通过以下命令来安装: ```bash npm install vue-baidu-map --save ``` 2. 在你的Vue项目的`main.js`文件中引入百度地图插件,并注册到Vue实例中: ```javascript import Vue from 'vue' import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { ak: 'your_baidu_map_api_key' // 替换为你自己的百度地图API密钥 }) ``` 3. 在你需要使用地图的组件中,使用`<baidu-map>`标签创建地图容器,并设置相应的属性: ```vue <template> <div> <baidu-map :center="center" :zoom="zoom" style="height: 400px;"></baidu-map> </div> </template> <script> export default { data() { return { center: [经度, 纬度], // 设置地图中心点的经纬度 zoom: 缩放级别 // 设置地图缩放级别,可选,默认为12 } } } </script> ``` 这样,你就可以在Vue项目中使用百度地图进行经纬度定位了。记得替换代码中的`your_baidu_map_api_key`为你自己的百度地图API密钥,并根据需要设置地图的中心点经纬度和缩放级别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • (uniapp-快速入门)运行到小程序模拟器微信开发工具 9995
  • 四步快速安装node,npm环境(易懂) 8383
  • 使用vue-baidu-map实现地址定位标点及关键字搜索定位(获取地址数据并获取经纬度) 6645
  • 手把手教你git提交到码云(完整版) 5565
  • echarts 饼图去掉指示线以及指示文字 4582

分类专栏

  • element 11篇
  • echarts 4篇
  • vue 49篇
  • vue-baidu-map 2篇
  • ts
  • superMap Leaflet2D
  • superMap Cesium 2篇
  • js 18篇
  • antd-Vue 8篇
  • git 2篇
  • 小程序 4篇
  • wx 2篇
  • uniapp 1篇
  • axios 1篇
  • 阿里巴巴图标 1篇
  • ps 1篇

最新评论

  • 手把手教你git提交到码云(完整版)

    虚妄狼: 不用输入用户名和密码吗?

  • vue递归组件实现动态多级表头-elementui

    ikun在线敲打: 是不是宽度就不能自己定义了

  • vue+element表单排版

    萌新之路: 写在对应style标签里面撒 里面的.quan_man这个class你就在最外层dom元素上设置个class就行了

  • vue+element表单排版

    是小佳呀: 这个style代码是写哪里啊

  • 解决:npm run dev 报错`webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`????

    萌新之路: 引入的index文件

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • postcss.config.js 设置
  • element-ui steps步骤条自定义颜色
  • css分割线添加文字
2024年1篇
2023年18篇
2022年29篇
2021年35篇
2020年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源鸡年宝宝起名网缉魂电影解析乐清城市网qq炫舞名字符号陆起名给火锅店起名自由的生活科密考勤机软件有意义女孩起名大全风起霓裳演员表姓牛宝宝取名起名大全轩辕剑5下载桃缘山神姓邓起的名字男孩男孩姓庄起的名字日剧最爱瞩目app下载星座性格分析闪电十一人go2时空之石凌依然易谨离小说阅读全文免费阅读学堂起名烧烤起哪些名字新包青天铡美案2013年2月23日宣传委员职责gaymaletube号码测试薄其芳本命佛起名守岛人淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化