Maoyl's blog Maoyl's blog
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

maoyln

日日行,不怕千万里
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 核心概念

  • 高级指引

  • Hook

  • 案例演示

    • 案例演示
    • react自动放缩组件
    • react 使用高德地图
      • 安装
  • 《React》笔记
  • 案例演示
maoyln
2021-08-17
目录

react 使用高德地图

# react 使用高德地图

高德地图api文档:https://lbs.amap.com/api/jsapi-v2/guide/abc/prepare

# 安装

安装推荐使用 JSAPI Loader 进行加载,使用npm安装,引入包的大小非常小。

# 安装方式

npm i @amap/amap-jsapi-loader 或 yarn add @amap/amap-jsapi-loader
// 官方加了-dev, 加了-dev字段就只能在本地的时候使用,部署到服务器后就不引入包
1
2

# 注册高德地图账号并申请Key

注册和申请Key按照官方或者度娘的流程走就可以了。该部分部署本文重点,顾省略

# 使用

# 封装方法
// loadAMap.ts

import AMapLoader from '@amap/amap-jsapi-loader';

export const createAMap = (id = 'container',config = {}) => {
  return new Promise((yes, no) => {
    AMapLoader.load({
      key: '', // 申请好的Web端开发者Key,首次调用 load 时必填
      version: '1.4.15', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
      plugins: ['AMap.MarkerClusterer', 'AMap.ControlBar'], //插件列表
    })
      .then((AMap) => {
       const map =  new AMap.Map(id, {
            zoom: 18,//级别
            viewMode: '3D',//使用3D视图
            mapStyle: 'amap://styles/62882cda859b407510b91f26a61d29a1', //设置地图的显示样式
            resizeEnable: true,
            pitchEnable: true,
            rotateEnable: true,
            pitch: 45,
            ...config
          });
        yes({
            map,
            AMap
        });
      })
      .catch((e) => {
        console.log('高德地图错误', e);
        no(e);
      });
  });
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 使用该方法
import { createAMap } from '../../../utils/loadAMap';

const config: LoadMapConfig = {
      // center: [116.397428, 39.90923], // [纬度,经度]  中心点坐标
      // center: [120.0900920089704, 31.7239991416814],
      resizeEnable: true,
      pitchEnable: true,
      rotateEnable: true,
      viewMode: '3D', //使用3D视图
      pitch: 45,
      mapStyle: 'amap://styles/62882cda859b407510b91f26a61d29a1', //设置地图的显示样式
      zoom: 18
    };
    const initMap: any = await createAMap('container', config);
    const { map, AMap } = initMap;
    // 添加插件
    AMap.plugin(['AMap.ControlBar'], function() {
      // 添加 3D 罗盘控制
      if (state.hideScreenHeader) {
        map.addControl(new AMap.ControlBar({ position: { right: '450px', top: '595px' } }));
      } else {
        map.addControl(new AMap.ControlBar({ position: { right: '450px', top: '700px' } }));
      }
    })

    const KEY: string = ''; // 此处的KEY需要
    const googleLayer: any = new AMap.TileLayer({
      // 天地图底图图块取图地址
      getTileUrl: `http://t{0,1,2,3,4,5,6,7}.tianditu.gov.cn/DataServer?T=img_w&tk=${KEY}&x=[x]&y=[y]&l=[z]`,
      zIndex: 100
    });
    map.add(googleLayer);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
编辑 (opens new window)
上次更新: 2025/04/18, 01:42:12
react自动放缩组件

← react自动放缩组件

最近更新
01
GSAP动画库——如何高效写动画
04-17
02
自适应方案PxToRem
09-10
03
性能优化-requestAnimationFrame
08-10
更多文章>
Theme by Vdoing | Copyright © 2019-2025 备案号:京ICP备19058102号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式