vue 调用百度地图代码(亲测有效)

1.在index.html中放入该链接,此链接是从百度那边配置而来,我这里是*,就是接受任何网站,直接复制过去用就可以了

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=3mn83YpfI9VdPSZg1DfuK7lg0UqRljwt"></script>
  1. 地图组建,创建一个页面 BMapComponent.vue ,贴入以下代码:
<template>
    <!--<div id="allmap" style="width: 100%; height: {{mapHeight}}px"></div>-->
    <!--<div id="allmap":style="{width: '100%', height: mapHeight + 'px'}"></div>-->
    <div id="allmap" v-bind:style="mapStyle"></div>

</template>

<script>

    export default {
        name: "BMapComponent",
        data:function(){
            return{
                mapStyle:{
                    width:'100%',
                    height:this.mapHeight +'px'
                }
            }
        },
        props:{
            // 地图在该视图上的高度
            mapHeight:{
                type:Number,
                default:500
            },
            // 经度
            longitude:{
                type:Number,
                default:116.404
            }
            // ,
            // // 纬度
            // latitude:{
            //     type:Number,
            //     default:39.915
            // },
            // description:{
            //     type:String,
            //     default:'天安门'
            // }
        },

        ready:function(){
            var map =newBMap.Map("allmap");
            var point =newBMap.Point(this.longitude,this.latitude);
            var marker =newBMap.Marker(point);
            map.addOverlay(marker);
            map.centerAndZoom(point,15);
            // 信息窗的配置信息
            var opts ={
                width :250,
                height:75,
                title :"地址:",
            }
            var infoWindow =newBMap.InfoWindow(this.description, opts);// 创建信息窗口对象
            marker.addEventListener("click",function(){
                map.openInfoWindow(infoWindow,point);
            });
            map.enableScrollWheelZoom(true);
            map.openInfoWindow(infoWindow,point);//开启信息窗口
        },
        mounted(){
            var map = new BMap.Map("allmap");
            var geolocation = new BMap.Geolocation();
            geolocation.getCurrentPosition(function(r){
                var point = new BMap.Point(r.point.lng,r.point.lat);
                map.centerAndZoom(point,12);
                if(this.getStatus() == BMAP_STATUS_SUCCESS){
                    var mk = new BMap.Marker(r.point);
                    map.addOverlay(mk);
                    map.panTo(r.point);

                    function myFun(result){
                        var cityName = result.name;
                        map.setCenter(cityName);
                        alert("当前定位城市:"+cityName);
                    }
                }

                else {
                    alert('failed'+this.getStatus());
                }
            });
        }

    }
</script>

<style scoped>

</style>

3.调用地图组件页面如下:

<template>
    <div>
        <b-map-component></b-map-component>
    </div>

</template>

<script>
    import BMapComponent from './BMapComponent';
    export default{
        data() {
            return {

            }
        },
            methods:{
    },
        mounted() {

        },
        created() {


                 },
        components: {
            BMapComponent

        }
    }
</script>

<style scoped>


</style>
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值