+2

Làm thế nào để sử dụng Google Map trong Vue JS

Hề lô anh em , hôm nay mình sẽ chỉ cho anh em làm thế nào để tích hợp Google Map vào trogn project Vue của chúng ta nhé.

Ứng dụng nhỏ này của chúng ta sẽ có thêm chức năng tìm kiếm đơn giản và đánh dấu vị trí trên bản đồ. Để thúc hiện việc này thì mình sử dụng package vue2-google-maps package

Và đây là các bước mà chúng ta sắp làm :

  • Bước 1: Cài đặt Vue Project
  • Bước 2: Cài đặt Vue2 Google Maps
  • Bước 3: Lấy Google Maps API Key
  • Bước 4: Đăng kí Vue Google Maps Module
  • Bước 5: Tạo Vue Component
  • Bước 6: Show Google Map
  • Bước 7: Chạy App

Bắt đầu thôiiii !!!

Cài đặt Vue Project

Chúng ta chạy câu lệnh sau :

npm install -g @vue/cli

Tiếp tục chạy để tạo ra một app Vue mới :

vue create vue-demo-app

Sau đó là cd vào project nào :

cd vue-demo-app

Cài đặt Vue2 Google Maps

Tiếp theo chúng ta tiến hành cài đặt package Vue2 Google Maps :

npm install vue2-google-maps

Lấy Google Maps API Key

Okk , bước tiếp theo chúng ta cần phải làm là lấy API key :

  • Mọi người vô đây Google Cloud Platform.
  • Tiếp theo đó chúng ta tạo một project mới bằng cách click vô phần select a project, rồi NEW PROJECT.
  • Hãy chắc chắn rằng mọi người đã click vô APIs & Services > Credentials ở phần bên trái của menu.
  • Sau đó, click vào Create Credentials và chọn API Key .
  • Copy lại API key mà chúng ta vừa nhận được trên màn hình.
  • Sau đó click vô Credentals, chọn Enable APIs and Services , enable cả services Maps JavaScript APIPlaces API nữa nhé .

Đăng kí Vue Google Maps Module

Chúng ta cần import "vue2-google-maps" module và đưa vào trong method use(). Điều này cho phép chúng ta truy cập vào các methods và properties trong Vue template.

import Vue from 'vue'
import App from './App.vue'

import * as VueGoogleMaps from "vue2-google-maps" // Import package

Vue.config.productionTip = false

Vue.use(VueGoogleMaps, {
  load: {
    key: "GOOGLE MAP API KEY GOES HERE",
    libraries: "places"
  }
});

new Vue({
  render: h => h(App),
}).$mount('#app')

Tạo Vue Component

Tạo một component theo đường dẫn sau nào src/components/AddGoogleMap.vue :

<template>
  <div>
    <div>
      <h2>Vue Js Search and Add Marker</h2>

      <label>
        <gmap-autocomplete @place_changed="initMarker"></gmap-autocomplete>

        <button @click="addLocationMarker">Add</button>
      </label>
      <br/>
 
    </div>
    <br>
    <gmap-map
        :zoom="14"    
        :center="center"
        style="width:100%;  height: 600px;"
      >
      <gmap-marker
        :key="index"
        v-for="(m, index) in locationMarkers"
        :position="m.position"
        @click="center=m.position"
      ></gmap-marker>
    </gmap-map>
  </div>
</template>
 
<script>
export default {
  name: "AddGoogleMap",
  data() {
    return {
      center: { 
        lat: 39.7837304,
        lng: -100.4458825
      },
      locationMarkers: [],
      locPlaces: [],
      existingPlace: null
    };
  },
 
  mounted() {
    this.locateGeoLocation();
  },
 
  methods: {
    initMarker(loc) {
      this.existingPlace = loc;
    },
    addLocationMarker() {
      if (this.existingPlace) {
        const marker = {
          lat: this.existingPlace.geometry.location.lat(),
          lng: this.existingPlace.geometry.location.lng()
        };
        this.locationMarkers.push({ position: marker });
        this.locPlaces.push(this.existingPlace);
        this.center = marker;
        this.existingPlace = null;
      }
    },
    locateGeoLocation: function() {
      navigator.geolocation.getCurrentPosition(res => {
        this.center = {
          lat: res.coords.latitude,
          lng: res.coords.longitude
        };
      });
    }
  }
};
</script>

Thằng gmap-autocomplete sẽ autocomplete hiển thị tìm kiếm vị trí, cho phép chúng ta tìm kiếm vị trí và đánh dấu. gmap-map sẽ hiển thị bản đồ.

Show Google Map

Okk giờ chúng ta import component vào nào :

<template>
   <div id="app">
      <AddGoogleMap />
   </div>
</template>
 
<script>
import AddGoogleMap from "./components/AddGoogleMap";
 
export default {
  name: 'App',
  components: {
    AddGoogleMap
  }
}
</script>
 
<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscaleChạy App;
  text-align: center;
  color: #000000;
  margin-top: 50px;
}
</style>

Chạy App

Giờ việc cuối cùng cần làm là chạy App và hưởng thụ thành quả thôi :

npm run serve

thông thường thì nó sẽ chạy trên đường dẫn :

http://localhost:8080

Kết bài

Vậy là bài tìm hiểu của chúng ta đến đây là kết thúc rồi, anh em hãy thử vọc theo nhé.

Nếu thấy giúp ích cho mình , hãy like, shareupvote cho mình nhé.

Many thanksss


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.