react引入高德地图并初始化卫星地图

react引入高德地图并初始化卫星地图

1.安装依赖

shell 复制代码
yarn add react-amap @amap/amap-jsapi-loader

2.初始化地图

js 复制代码
import AMapLoader from "@amap/amap-jsapi-loader";
import { FC, useEffect, useRef, useState } from "react";

const HomeRight = () => {
  const mymap: any = useRef(null);

  useEffect(()=>{
    AMapLoader.load({
      key: "你的key", // 申请好的Web端开发者Key,首次调用 load 时必填
      version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
      plugins: [], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
    })
      .then(initMap)
      .catch((e: any) => {
        console.log(e);
      });

    return () => {
      mymap.current.destroy();
    };
  },[])

  /**
   * 加载插件并初始化地图
   */
  const initMap = () => {
    // 1.加载插件
    AMap.plugin(
      [
        "AMap.ToolBar",
        "AMap.Scale",
        "AMap.HawkEye",
        "AMap.ControlBar",
        "AMap.MapType",
        "AMap.Geolocation",
        "AMap.ContextMenu",
        "AMap.AutoComplete",
        "AMap.PlaceSearch",
      ],
      function () {
        // 创建卫星图图层对象
        const satelliteLayer = new AMap.TileLayer.Satellite();
        // 2.初始化地图实例
        const map = new AMap.Map("myMap", {
          resizeEnable: true,
          expandZoomRange: true, // 放大缩小限制
          zooms: [4, 20], // 放大缩小范围
          center: [116.397428, 39.90923], // 中心点
          layers: [satelliteLayer], // 卫星图类型
          zoom: 5, // 默认缩放级别
        });
        mymap.current = map;
      }
    );
  };

  return (
    <div id="myMap" style={{ width: "100%", height: "100%" }}></div>
  )
};
相关推荐
天天扭码2 分钟前
一杯咖啡的时间吃透一道算法题——2.两数相加(使用链表)
前端·javascript·算法
NetX行者10 分钟前
详解正则表达式中的?:、?= 、 ?! 、?<=、?<!
开发语言·前端·javascript·正则表达式
vvilkim31 分钟前
React 高级特性与最佳实践
前端·javascript·react.js
拉不动的猪31 分钟前
vue与react中监听的简单对比
前端·javascript·面试
涵信33 分钟前
第七节:React HooksReact 18+新特性-并发模式(Concurrent Mode)解决了什么问题?
前端·javascript·react.js
冴羽38 分钟前
SvelteKit 最新中文文档教程(21)—— 最佳实践之图片
前端·javascript·svelte
纪元A梦1 小时前
华为OD机试真题——跳格子3(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题
BillKu1 小时前
遵守 Vue3 的单向数据流原则:父组件传递对象 + 子组件修改对象属性,安全地实现父子组件之间复杂对象的双向绑定示例代码及讲解
javascript·vue.js·elementui
Nuyoah.2 小时前
《vue3学习手记3》
前端·javascript·vue.js·学习·前端框架
涵信3 小时前
第五节:React Hooks进阶篇-如何用useMemo/useCallback优化性能
前端·javascript·react.js