当前位置:首页 > 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
  • 地图容器需指定明确的宽度和高度样式
  • 频繁操作地图时注意性能优化,避免内存泄漏

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

相关文章

vue地图轨迹实现

vue地图轨迹实现

实现Vue地图轨迹的基本步骤 安装依赖库,如vue2-google-maps或leaflet,根据项目需求选择合适的库。若使用Google Maps,需在项目中引入API密钥。 在Vue组件中引入地…

vue引入地图实现定位

vue引入地图实现定位

使用高德地图实现定位 安装高德地图的 Vue 插件 npm install @amap/amap-jsapi-loader --save 在 Vue 组件中引入并初始化地图 import AMap…

react如何在头部传token

react如何在头部传token

在 React 中传递 Token 到请求头部 在 React 应用中,通常需要将 Token(如 JWT)附加到 HTTP 请求的头部(通常是 Authorization 头)。以下是几种常见方法:…

如何在idea中创建react类

如何在idea中创建react类

在 IntelliJ IDEA 中创建 React 类 确保已安装 Node.js 和 npm(或 yarn)。IntelliJ IDEA 需安装插件 Node.js 和 JavaScript and…

如何在react中处理组件交互

如何在react中处理组件交互

处理组件交互的方法 在React中处理组件交互主要涉及状态管理、事件处理和组件通信。以下是几种常见的方法: 使用状态提升 将共享状态提升到最近的共同父组件中,通过props将状态和回调函数传递给子组…

如何在react中使用p5

如何在react中使用p5

在React中使用p5.js 要在React项目中集成p5.js,可以通过以下方法实现。p5.js是一个创意编程库,通常用于图形和交互设计。 安装p5.js 通过npm或yarn安装p5.js库:…