全网稀缺,完整链家地图找房的实现(一)

前一段时间我应公司的需求开发了类似链家地图找房的功能,然而我发现现在市面上,对于链家地图找房功能的完整实现相关的文章还是比较稀缺的,亦或是功能还不够完善,出于这个方面,我觉得把自己对于链家地图找房功能的完整实现分享出来还是很有必要的,包括其中的画圈找房,以及如何将整个地图找房拆分成一个个组件。目前项目已上线,猛戳这里体验~(仅支持pc端)起步1、效果预览图2、准备工作技术栈vue...
摘要由CSDN通过智能技术生成

前一段时间我应公司的需求开发了类似链家地图找房的功能,然而我发现现在市面上,对于链家地图找房功能的完整实现相关的文章还是比较稀缺的,亦或是功能还不够完善,出于这个方面,我觉得把自己对于链家地图找房功能的完整实现分享出来还是很有必要的,包括其中的画圈找房,以及如何将整个地图找房拆分成一个个组件。

目前项目已上线,猛戳这里体验~(仅支持pc端)

起步

1、效果预览图

2、准备工作

  • 技术栈

vue全家桶 + vue-baidu-map + BMapLib

其中 vue-baidu-map 是第三方库,已经封装好了部分组件,直接用就行;BMapLib是百度开源库

  • 组件拆分

地图容器组件: <baidu-map></baidu-map>

区域气泡组件(自定义覆盖物): <zoneOverlay></zoneOverlay>

区域边界组件: <bm-boundary></bm-boundary>

周边房源气泡组件(自定义覆盖物): <aroundOverlay></aroundOverlay>

周边房源详情覆盖物组件(自定义覆盖物): <detailOverlay></detailOverlay>

画圈找房区域气泡组件: <bm-polygon><bm-polygon>

画圈找房路径组件: <bm-polyline></bm-polyline>

画圈找房提示组件: <drawToast></drawToast>

周边房源总数提示组件: <dataToast></dataToast>

地图初始化

首先,我们要做的就是地图初始化,这里用到的是 baidu-map 组件,

<div class="map-wrapper">
    <baidu-map id="bm-view" class="bm-view" :center="center" :zoom="zoom" :scroll-wheel-zoom="true" @ready="handler"></baidu-map>
</div>
复制代码

参数说明:

center 表示地图的中心点坐标,例如{ lng: 116.404, lat: 39.915 }

zoom 表示地图的缩放等级

scroll-wheel-zoom 表示是否开启滚轮缩放

ready事件表示地图加载完成后需要的操作,例如设置地图中心点坐标 center,或者是获取 BMap、map 类等等

handler ({ BMap, map }) {
    // lng, lat 表示你要设置的经纬度
    this.$set(this.center, 'lng', lng)
    this.$set(this.center, 'lat', lat)
    console.log(BMap) // just console.log(BMap)
    console.log(map) // just console.log(map)
}
复制代码

在这里,我是先定位获取当前省份的经纬度,通过事件传递,然后设置 center

handler ({BMap, map}) {
  this.initGeo()
},
initGeo () {
  connect.$on('cityGeoOk', data => {
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值