Vue 使用百度地图 实现搜索 定位
要求能定位到国外 及 查看了文档 百度支持东南亚大部分地区 满足需求 从而使用百度地图 <template>
<div class="addHospital">
<div class="map" v-loading="loading">
<el-input placeholder="请输入搜索地址" v-model="mapName" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="mapNameChange"></el-button>
</el-input>
<div style="padding:10px 0;" v-if="mapPointName">当前选中:{{mapPointName}}</div>
<div id="container" style="height: 400px; width: 100%" ref="allmap"></div>
<div class="map-btn">
<el-button type="primary" @click="dialogMap = false">确认</el-button>
</div>
</div>
</div>
</template> <script>
let map = null,
geoc = null;
export default {
name: "addHospital",
data() {
return {
dialogMap: false,
mapName: "",
mapPointName: "",
loading:true,
mapGetshow: true,
dialogName: ""
};
},
created() {this.mapBuild()},
methods: {
//搜索地图
mapNameChange() {
let that = this,
point,
marker = null;
let local = new BMap.LocalSearch(map, {
renderOptions: { map: map },
onSearchComplete: res => {
if (local.getResults() != undefined) {
map.clearOverlays(); //清除地图上所有覆盖物
if (local.getResults().getPoi(0)) {
point = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
map.centerAndZoom(point, 10);
marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
marker.enableDragging(); // 可拖拽
geoc.getLocation(point, function(rs) {
var addComp = rs.addressComponents;
console.log(addComp);
that.mapPointName =
addComp.province +
", " +
addComp.city +
", " +
addComp.district +
", " +
addComp.street +
", " +
addComp.streetNumber; });
} else {
alert("未匹配到地点!可拖动地图上的红色图标到精确位置");
}
} else {
alert("未找到搜索结果");
}
}
});
local.search(this.mapName);
},
//地图显示
mapBuild() {
let that = this;
this.dialogMap = !this.dialogMap;
setTimeout(function() {
if (that.mapGetshow) {
map = new BMap.Map("container");
geoc = new BMap.Geocoder();
let point = new BMap.Point(116.3964, 39.9093);
map.centerAndZoom(point, 10);
map.enableScrollWheelZoom();
var geolocation = new BMap.Geolocation();
//定位
geolocation.getCurrentPosition(
r => {
console.log(r);
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
geoc.getLocation(r.point, function(rs) {
var addComp = rs.addressComponents;
console.log(addComp);
that.mapPointName =
addComp.province +
addComp.city +
addComp.district +
addComp.street +
addComp.streetNumber;
that.loading = false;
that.mapGetshow = false;
});
},
{ enableHighAccuracy: true }
);
//鼠标点击
map.addEventListener("click", function(e) {
console.log(e);
var pt = e.point;
var marker = new BMap.Marker(pt); // 创建标注
map.clearOverlays();
map.addOverlay(marker);
geoc.getLocation(pt, function(rs) {
var addComp = rs.addressComponents;
console.log(addComp);
that.mapPointName =
addComp.province +
addComp.city +
addComp.district +
addComp.street +
addComp.streetNumber;
});
});
}
}, 1000);
}
}
};
</script>
<style scoped lang="scss">
@import "../../filters/css/all.css";
.addHospital {
width: 100%;
height: 100%;
.map {
padding: 10px;
.input-with-select {
}
.map-btn {
padding: 10px 20px;
margin: auto;
text-align: right;
button {
padding: 12px 30px;
}
}
}
}
</style>

Vue 使用百度地图 实现搜索 定位的更多相关文章
- Vue+Antd搭配百度地图实现搜索定位等功能
前言 最近,在做vue项目的时候有做到选择地址功能,而原项目中又引入了百度地图,所以我就打算通过使用百度地图来实现地址搜索功能啦. 本次教程可能过于啰嗦,所以这里先放上预览地址供大家预览--点我预览, ...
- 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?
好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...
- 集成百度地图API实现定位
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u010982006/article/details/32347107 一.百度地图API获取定位 A ...
- HTML5 调用百度地图API地理定位
<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head&g ...
- Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK
原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
- vue使用百度地图
1.在百度地图申请密钥:http://lbsyun.baidu.com/ 将 <script type="text/javascript" src="http:// ...
- Android百度地图附加搜索和公交路线方案搜索
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: 今 ...
- android 基于百度地图api开发定位以及获取详细地址
一:百度地图开发必须要到百度开发平台android开发api下载相应的库,已经申请百度地图开发key. 二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView ...
- js 调用百度地图,并且定位用户地址,显示省市区街,经纬度
网上的一些百度地图例子,基本上没有连套的 定位 例子.下面我分享一套我自己弄的,废话不多说,看代码,里面有注释! <!DOCTYPE html> <html> <head ...
随机推荐
- python IO多路复用版FTP
需求: 实现文件上传及下载功能 支持多连接并发传文件 使用select or selectors
- gitlab配置邮箱
邮件测试Notify.test_email('xx@qq.com', 'Message Subject', 'Message Body').deliver_now 参考 https://www.cen ...
- 给你的Kubernetes集群建一个只读账户(防止高管。。。后)
给你的Kubernetes集群建一个只读账户 需求:我们知道搭完k8s集群会创建一个默认的管理员kubernetes-admin用户该用户拥有所以权限,有一天开发或测试的同学需要登录到k8s集群了解业 ...
- vue組件自学
Vue组件 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添 ...
- TCP/IP基础总结性学习(6)
HTTP 首部 一. HTTP 报文首部 1.HTTP 报文的结构: 2.HTTP 请求报文 图示: 举例子: 3.HTTP 响应报文: 下面的示例是访问 http://hackr.jp 时,请求报文 ...
- OOM when allocating tensor of shape [] and type float [[node conv2d_224/kernel/Initializer/random_uniform/min (defined at ./intances/utils.py:19) ]]
当你们在用模型加载,tensorflow-gpu预测的时候,有没有出现这样的错误?? 经过网上的资料查阅,更多的解释是GPU的显存不足造成的,于是乎,我查看了一下GPU显存:nvidia-smi 不看 ...
- vue项目基本步骤
首先查看电脑是否已经安装vue并查看版本: window+R快捷打开命令行,cmd,输入node -v回车 如果未安装操作步骤如下: 1:$ cnpm install vue(新电脑安装Vue,永久) ...
- H5系列一、静态页面总结
1.img父标签设置高度,如果容器没有设置高度的话,图片会默认把容器底部撑大几像素 -- 大概3px,给容器设置高度. 2.input标记换行后默认有一个间隙,设置float属性.input标记默认还 ...
- 使用 ALSAlib 播放 wav
在 ARM 2440 开发板上正常播放 16bit 44100 采样率的wav , 为了程序简单,没有判断返回值. 补充,在 ubunto 上也能正常播放. 编译方法: arm-linux-gcc ...
- AX2012/D365 SSRS报表开发
大家好,好久没有做SSRS报表了,近期刚好有做2张,就整理起来供初学者参考. AX中SSRS报表开发的框架,父类非常多,这里跟大家简单分享2种比较常用的场景供大家使用. 1.简单的过滤字段,无特殊过滤 ...