当前位置:首页 > React

如何在react中嵌入高德地图

2026-01-26 05:22:56React

安装高德地图 JavaScript API

在项目中引入高德地图的 JavaScript API。可以通过在 public/index.html 中添加脚本标签实现:

<script src="https://webapi.amap.com/maps?v=2.0&key=你的高德地图Key"></script>

你的高德地图Key 替换为从高德地图开发者平台申请的密钥。

创建地图组件

新建一个 React 组件用于承载地图。使用 useEffect 确保 DOM 加载完成后初始化地图:

如何在react中嵌入高德地图

import React, { useEffect } from 'react';

const MapComponent = () => {
  useEffect(() => {
    const map = new AMap.Map('map-container', {
      viewMode: '2D',
      zoom: 11,
      center: [116.397428, 39.90923] // 默认北京中心点
    });
    return () => map.destroy(); // 组件卸载时销毁地图
  }, []);

  return <div id="map-container" style={{ width: '100%', height: '400px' }} />;
};

添加地图控件

通过 AMap.plugin 动态加载插件,例如添加缩放控件和工具条:

useEffect(() => {
  const map = new AMap.Map('map-container', { /* 配置 */ });

  AMap.plugin(['AMap.ToolBar', 'AMap.Scale'], () => {
    map.addControl(new AMap.ToolBar());
    map.addControl(new AMap.Scale());
  });
}, []);

绘制标记点

使用 AMap.Marker 在地图上添加标记,并绑定事件:

如何在react中嵌入高德地图

useEffect(() => {
  const marker = new AMap.Marker({
    position: [116.39, 39.9],
    title: '标记点'
  });
  marker.setMap(map);

  marker.on('click', () => {
    alert('点击了标记');
  });
}, []);

响应式地图容器

通过监听窗口大小变化调整地图尺寸:

useEffect(() => {
  const handleResize = () => {
    map && map.setFitView();
  };
  window.addEventListener('resize', handleResize);
  return () => window.removeEventListener('resize', handleResize);
}, [map]);

自定义信息窗口

创建信息窗口并关联到标记点:

const infoWindow = new AMap.InfoWindow({
  content: '<div style="padding:5px;">自定义内容</div>',
  offset: new AMap.Pixel(0, -30)
});

marker.on('click', () => {
  infoWindow.open(map, marker.getPosition());
});

注意事项

  • 确保高德地图 Key 已正确申请且未超出调用限制
  • 若需 SSR 支持,需动态加载高德 API(如通过 next/dynamic
  • 地图容器需指定明确的宽度和高度样式
  • 频繁操作地图时注意性能优化,避免内存泄漏

标签: 地图如何在
分享给朋友:

相关文章

css地图制作教程

css地图制作教程

CSS地图制作方法 使用CSS制作地图通常涉及利用HTML元素和CSS样式来绘制地理图形或交互式元素。以下是几种常见方法: 基础形状绘制 通过CSS的border、box-shadow和trans…

vue实现工位地图

vue实现工位地图

Vue 实现工位地图的方法 使用地图库(如百度地图、高德地图、Leaflet) 在Vue项目中集成第三方地图库(如百度地图API或高德地图API)可以快速实现工位地图功能。需要申请对应的开发者密钥,并…

vue地图圆圈实现

vue地图圆圈实现

vue地图圆圈实现 在Vue中实现地图圆圈功能,通常需要结合地图库如百度地图、高德地图或Leaflet等。以下是基于不同地图库的实现方法: 使用百度地图API 引入百度地图API 在index.…

vue实现地图轨迹

vue实现地图轨迹

Vue 实现地图轨迹的方法 使用高德地图 API 高德地图提供了 JavaScript API,适合在 Vue 项目中集成。需要先申请高德地图的 Key,并在项目中引入高德地图的 SDK。 安装依赖…

用vue实现地图

用vue实现地图

Vue 实现地图的常用方法 使用高德地图 API 高德地图提供完善的 JavaScript API,适合国内项目。注册高德开放平台账号后获取 key。 安装依赖: npm install @ama…

vue实现地图距离

vue实现地图距离

Vue 中实现地图距离计算的方法 在 Vue 中实现地图距离计算通常需要集成第三方地图 API(如百度地图、高德地图或 Google Maps)。以下是几种常见的方法: 使用高德地图 API 高德…