高德导航的组件介入
对于一些项目需要在组件中插入地图,可以选取位置以及经纬度 可以把下面的代码写入到子组件作为弹出的地图demo
确定
>
import { lazyAMapApiLoaderInstance } from 'vue-amap';
export default {
created() {
lazyAMapApiLoaderInstance.load().then(() => {
this.geocoder = new AMap.Geocoder({});
this.GeolocationResult = new AMap.Geolocation();
});
},
watch:{
value(val){
this.currentValue = https://www.it610.com/article/val;
},
x(val){
this.shopAmap.lng = val;
},
y(val){
this.shopAmap.lat = val;
},
},
data() {
return{
mapLoading:false,
name:'',
currentValue:this.value,//当前的value值
shopAmap:{
lat:0,
lng:0,
mapCenter:[116.412267, 39.902825], //地图的中心位置,以什么为中心展示
markers:[],//地图上点的展示
currentMarker:{
formattedAddress:this.value
},
plugin: ['ToolBar','Scale','Geolocation'],
},
};
},
computed: {
mapCenter: function () {
return [this.shopAmap.lng+'',this.shopAmap.lat+''];
}
},
methods:{
//这是父组件调用的一个子组件方法,用来向子组件传递经纬度和此时的地址
getOldMap(val){
this.name=val.name//多个组件公用一个地图进行修改展示时使用
this.$refs.searchBox.search()//清除在地图的下拉选择时展示的模糊列
this.x=val.latitude
this.y=val.longitude
this.value=https://www.it610.com/article/val.address
this.shopAmap.markers=[]
this.$nextTick(()=>{
document.getElementsByClassName('search-box-wrapper')[0].getElementsByTagName('input')[0].value=""
if(val.latitude && val.longitude){
this.shopAmap.lat = val.longitude;
this.shopAmap.lng = val.latitude;
this.shopAmap.currentMarker.formattedAddress=val.address
this.shopAmap.markers.push([val.latitude,val.longitude]);
}else{
this.setMap(val.address)
}
})
},
setMap(str){
var that = this;
var placeSearch= new AMap.PlaceSearch();
placeSearch.search(str, function(status, result) {
var pois = [];
for(var i=0;
i 0) {
pois.forEach(poi => {
let {lng, lat} = poi;
lngSum += lng;
latSum += lat;
});
let center = {
lng: lngSum / pois.length,
lat: latSum / pois.length
};
//设置地图中心
this.shopAmap.lng = center.lng;
this.shopAmap.lat = center.lat;
//设置显示的maker
this.shopAmap.markers = [[center.lng, center.lat]];
this.generalAddres(center.lng, center.lat);
}
},
amapEvents(){
var that = this;
return{
//地图的事件
click:(current)=>{
//地图点击事件
that.generalAddres(current.lnglat.lng,current.lnglat.lat);
}
}
},
markerEvent(){
//maker的事件
var that = this;
return {
click:(a,b,c,d)=>{
//点击事件
},
dragend:(current)=>{
//拖拽完后的事件
that.generalAddres(current.lnglat.lng,current.lnglat.lat);
}
}
},
}
}
有关地图的参考网址以及地图api https://elemefe.github.io/vue-amap/#/zh-cn/base/amap
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量