当前位置:首页 > VUE

用vue实现地图

2026-02-20 23:00:49VUE

使用Vue实现地图的几种方法

基于高德地图API

安装高德地图JavaScript API库:

npm install @amap/amap-jsapi-loader --save

创建地图组件:

<template>
  <div id="map-container"></div>
</template>

<script>
import AMapLoader from '@amap/amap-jsapi-loader'

export default {
  data() {
    return {
      map: null
    }
  },
  mounted() {
    this.initMap()
  },
  methods: {
    initMap() {
      AMapLoader.load({
        key: '您的高德key',
        version: '2.0',
        plugins: ['AMap.ToolBar', 'AMap.Scale']
      }).then((AMap) => {
        this.map = new AMap.Map('map-container', {
          viewMode: '2D',
          zoom: 11,
          center: [116.397428, 39.90923]
        })
      })
    }
  }
}
</script>

<style>
#map-container {
  width: 100%;
  height: 500px;
}
</style>

使用百度地图API

安装百度地图JavaScript API:

npm install vue-baidu-map --save

全局注册组件:

import Vue from 'vue'
import BaiduMap from 'vue-baidu-map'

Vue.use(BaiduMap, {
  ak: '您的百度key'
})

在组件中使用:

<template>
  <baidu-map class="map" :center="center" :zoom="zoom"></baidu-map>
</template>

<script>
export default {
  data() {
    return {
      center: {lng: 116.404, lat: 39.915},
      zoom: 15
    }
  }
}
</script>

<style>
.map {
  width: 100%;
  height: 500px;
}
</style>

使用Leaflet地图库

安装Leaflet及相关插件:

用vue实现地图

npm install leaflet vue2-leaflet

创建地图组件:

<template>
  <div>
    <l-map :zoom="zoom" :center="center">
      <l-tile-layer :url="url"></l-tile-layer>
      <l-marker :lat-lng="marker"></l-marker>
    </l-map>
  </div>
</template>

<script>
import { LMap, LTileLayer, LMarker } from 'vue2-leaflet'

export default {
  components: {
    LMap,
    LTileLayer,
    LMarker
  },
  data() {
    return {
      url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
      zoom: 13,
      center: [51.505, -0.09],
      marker: [51.505, -0.09]
    }
  }
}
</script>

<style>
@import "~leaflet/dist/leaflet.css";

.leaflet-container {
  height: 500px;
  width: 100%;
}
</style>

使用Google Maps API

安装Google Maps JavaScript API:

npm install @googlemaps/js-api-loader

创建地图组件:

用vue实现地图

<template>
  <div ref="mapRef" class="map-container"></div>
</template>

<script>
import { Loader } from '@googlemaps/js-api-loader'

export default {
  data() {
    return {
      map: null
    }
  },
  mounted() {
    this.initMap()
  },
  methods: {
    async initMap() {
      const loader = new Loader({
        apiKey: "您的Google key",
        version: "weekly"
      })

      await loader.load()
      this.map = new google.maps.Map(this.$refs.mapRef, {
        center: { lat: 39.90923, lng: 116.397428 },
        zoom: 8
      })
    }
  }
}
</script>

<style>
.map-container {
  height: 500px;
  width: 100%;
}
</style>

地图功能扩展建议

添加标记点

// 高德地图示例
new AMap.Marker({
  position: [116.39, 39.9],
  map: this.map
})

绘制多边形

// 百度地图示例
const polygon = new BMap.Polygon([
  new BMap.Point(116.387, 39.919),
  new BMap.Point(116.385, 39.913),
  new BMap.Point(116.394, 39.911)
], {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5})
this.map.addOverlay(polygon)

添加信息窗口

// Leaflet示例
L.popup()
  .setLatLng([51.5, -0.09])
  .setContent("这里是信息窗口内容")
  .openOn(this.map)

实现地图搜索

// 高德地图搜索示例
AMap.plugin('AMap.PlaceSearch', () => {
  const placeSearch = new AMap.PlaceSearch({
    pageSize: 5,
    pageIndex: 1,
    city: '北京'
  })
  placeSearch.search('餐馆', (status, result) => {
    // 处理搜索结果
  })
})

标签: 地图vue
分享给朋友:

相关文章

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed:…

vue datepicker 实现

vue datepicker 实现

实现 Vue Datepicker 的基本方法 在 Vue 项目中实现日期选择功能,可以使用第三方库如 vue-datepicker 或 v-calendar。以下是两种常见实现方式: 安装 vu…

实现 vue ssr

实现 vue ssr

Vue SSR 实现方法 Vue SSR(Server-Side Rendering)通过服务器端渲染 Vue 应用,提升首屏加载速度和 SEO 友好性。以下是核心实现方法: 基础配置 安装必要…

vue实现公式

vue实现公式

在Vue中实现公式展示或计算可以通过多种方式实现,以下为具体方法: 使用模板插值与计算属性 若公式较简单,可直接在模板中使用插值表达式或计算属性。例如计算圆的面积: <templat…

vue实现rtc

vue实现rtc

Vue 实现 RTC 的步骤 安装依赖 在 Vue 项目中安装 WebRTC 相关依赖,如 simple-peer 或 peerjs,用于简化 WebRTC 的实现。 运行以下命令安装 simple-…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安…