基于vue.js 引入百度地图 【点聚合】中bm-marker组件嵌套bm-info-window组件

$ npm install vue-baidu-map --save
import Vue from 'vue'
import BaiduMap from 'vue-baidu-map'

Vue.use(BaiduMap, {
  // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
  ak: 'YOUR_APP_KEY'
})

<template>

<baidu-map

class="map-container"

center="广东"

id="map-container"

:scroll-wheel-zoom="scrollzoom"

:zoom="9"

>

<bml-marker-clusterer :averageCenter="true">

<div v-for="marker of MarkerArray">

<bm-marker

:position="{lng: marker.Longitude, lat: marker.Latitude}"

@click="infoWindowOpen(marker)"

></bm-marker>

<!-- <bm-marker

:position="{lng: marker.Longitude, lat: marker.Latitude}"

:title="marker.RiverName"

@click="infoWindowOpen(marker)"

>

<bm-info-window

:position="{lng: marker.lng, lat: marker.lat}"

:show="marker.showFlag"

@close="infoWindowClose(marker)"

@open="infoWindowOpen(marker)"

class="windowbm"

>

<table class="bordered">

<tr>

<td>站点名称:</td>

<td>{{marker.StationName}}</td>

</tr>

<tr>

<td>监测参数:</td>

<td>{{marker.Items}}</td>

</tr>

<tr>

<td>河流名称:</td>

<td>{{marker.RiverName}}</td>

</tr>

<tr>

<td>所属区域:</td>

<td>{{marker.AreaName}}</td>

</tr>

<tr>

<td>经纬度:</td>

<td>{{marker.Longitude}} ~{{marker.Latitude}}</td>

</tr>

</table>

</bm-info-window>

</bm-marker>-->

</div>

</bml-marker-clusterer>

<bm-info-window

:position="positionData"

:title="tableData.RiverName"

:show="showFlag"

class="windowbm"

>

<table class="bordered">

<tr>

<td>站点名称:</td>

<td>{{tableData.StationName}}</td>

</tr>

<tr>

<td>监测参数:</td>

<td>{{tableData.Items}}</td>

</tr>

<tr>

<td>河流名称:</td>

<td>{{tableData.RiverName}}</td>

</tr>

<tr>

<td>所属区域:</td>

<td>{{tableData.AreaName}}</td>

</tr>

<tr>

<td>经纬度:</td>

<td>{{tableData.Longitude}} ~ {{tableData.Latitude}}</td>

</tr>

</table>

</bm-info-window>

</baidu-map>

</template>

<script>

import { BmlMarkerClusterer } from 'vue-baidu-map'

export default {

name: 'BaiduMapz',

components: {

BmlMarkerClusterer

},

props: {

MarkerArray: {

type: [Array, Object],

default () {

return {}

}

}

},

data () {

return {

MarkerList: [],

scrollzoom: true,

showFlag: false,

positionData: { lng: 0, lat: 0 },

tableData: {}

}

},

watch: {

MarkerArray (val) {

this.positionData = { lng: 0, lat: 0 }

this.showFlag = false

this.tableData = {}

this.MarkerList = val

}

},

methods: {

infoWindowOpen (val) {

this.positionData = { lng: parseFloat(val.Longitude), lat: parseFloat(val.Latitude) }

this.showFlag = true

let arr = {}

for (let item in val) {

arr[item] = val[item]

}

this.tableData = arr

}

},

mounted () {

}

}

</script>

<style>

.map-container {

width: 100%;

height: 79%;

}

.windowbm {

width: 350px;

}

.bordered {

width: 350px;

border: solid #ccc 1px;

-moz-border-radius: 6px;

-webkit-border-radius: 6px;

border-radius: 6px;

-webkit-box-shadow: 0 1px 1px #ccc;

-moz-box-shadow: 0 1px 1px #ccc;

box-shadow: 0 1px 1px #ccc;

}

.bordered tr {

-o-transition: all 0.1s ease-in-out;

-webkit-transition: all 0.1s ease-in-out;

-moz-transition: all 0.1s ease-in-out;

-ms-transition: all 0.1s ease-in-out;

transition: all 0.1s ease-in-out;

}

.bordered td:first-child {

width: 73px;

text-align: right;

}

</style>

 

 

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值