[Vue警告]:挂接钩中出现错误:“ ReferenceError:未定义google

时间:2020-04-07 13:19:33

标签: laravel vue.js

我正在使用VUE js在laravel中创建实时地图。问题是我的地图未加载到服务器中,但已加载到我的本地服务器上。在控制台中,它给出以下消息: [Vue警告]:挂接的钩子中出现错误:“ ReferenceError:未定义google

我的组件代码是

<template>
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Example Component</div>
                <button class="btn btn-success" @click="updateLocation">Update Position</button>
                <div class="card-body">

                    <div id="realtimemap" style="height: 412px; width: 100%;"></div>

                </div>
            </div>
        </div>
    </div>
    </div>
  </template>

  <script>

  export default{

    data(){

        return{
            map:null,
            marker:null,
            center:{lat: +10, lng: +10},
            data:null,
            lineCoordinates:[]
        }
    },

    methods:{

        mapInit(){


            this.map = new google.maps.Map(document.getElementById('realtimemap'),{
                center: this.center,
                zoom: 8
            });

            this.marker = new google.maps.Marker({
                map: this.map,
                position: this.center,
                animation:"bounce",
            });
        },

        updateMap(){
            let newPosition = {lat:this.data.lat,lng:this.data.long};
            this.map.setCenter(newPosition);
            this.marker.setPosition(newPosition);

            this.lineCoordinates.push(new google.maps.LatLng(newPosition.lat,newPosition.lng));

            var lineCoordinatesPath = new google.maps.Polyline({
                path: this.lineCoordinates,
                geodesic: true,
                map: this.map,
                strokeColor: '#FF000',
                strokeOpacity: 1.0,
                strokeWeight: 2
            });
        },

        updateLocation(){

            let randomNumber=Math.random();

            let position={
                lat:10+randomNumber,
                long:10+randomNumber
            };

            axios.post('/api/map',position).then(response=>{
                console.log(response);
            })
        }

    },

    mounted() {
        console.log('Component mounted.');
        this.mapInit();
    },
    created(){
        Echo.channel('location')
            .listen('SendLocation', (e) => {
                this.data=e.location;

                this.updateMap();
                console.log(e);
        });
    }
}

我的刀片服务器代码是

@extends("frontend.layouts.dashboard-layout")

@section("title","Realtime Map | Android Monitoring Dashboard")

@section("content")


<div id="page-wrapper">
<div class="main-page">
<div class="flex-center position-ref full-height">

    <div class="content">
        <div class="title m-b-md" id="app">
            <example-component></example-component>
        </div>
    </div>
    </div>

    <script async defer src="https://maps.googleapis.com/maps/api/js?key=******&callback=initMap" type="text/javascript"></script>
    <script src="{{ asset('js/app.js') }}"></script>
  </div>
  </div>


 @endsection

enter image description here

请帮助我

预先感谢

0 个答案:

没有答案