接入高德地图

概述

项目有时候需要用到地图相关的功能,常见的可以接入高德、百度、腾讯这些,总体来说,大体的接入方式差不多,以下通过高德地图接入项目做一期示例。

效果示例

准备

成为开发者并创建 key

注意:

key非常重要,接入地图的凭证

登录控制台

登录 高德开放平台控制台,如果没有开发者账号,请 注册开发者

创建 key

进入应用管理,创建新应用,新应用中添加 key,服务平台选择 Web端(JS API)。

获取 key 和密钥

创建成功后,可获取 key 和安全密钥。

提示

安全密钥机制旨在提升用户对 key 的安全有效管理,降低明文传输被窃取的风险。 2021年12月02日后创建的 key 必须配备安全密钥一起使用,具体用法参见 JS API 安全密钥使用

快速上手

安全配置

以下必须配置,否则部分功能无法使用!

js 复制代码
   <script type="text/javascript">
        window._AMapSecurityConfig = {
            securityJsCode: "97de88ef2cd411e6b92e56fa60e7ded3",//控制台创建的安全秘钥
        };
    </script>

基本地图

html 复制代码
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width" />
    //地图加载器
    <script src="https://webapi.amap.com/loader.js"></script>
    <title>HELLO,AMAP!</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        #panel {
            position: absolute;
            background-color: white;
            max-height: 90%;
            overflow-y: auto;
            top: 10px;
            right: 10px;
            width: 280px;
        }

        html,
        body,
        #container {
            width: 100%;
            height: 100%;
        }
    </style>
</head>

<body>

    <div id="container"></div>
        <script>
        AMapLoader.load({
            key: "ecb74ca8a999af4d93d8211abaa96b92", //申请好的Web端开发者 Key,调用 load 时必填
            version: "2.0", //指定要加载的 JS API 的版本,缺省时默认为 1.4.15
        })
            .then((AMap) => {
            // 地图实例
                const map = new AMap.Map("container");
            })
            .catch((e) => {
                console.error(e); //加载错误提示
            });

    </script>
</body>

</html>

添加地图控件

缩放插件

js 复制代码
 // 注册缩放插件
  map.plugin(["AMap.ToolBar"], function () {
      const ToolBar = new AMap.ToolBar();
      map.addControl(ToolBar);
    });

比例尺控件

js 复制代码
 // 注册比例尺控件
  map.plugin(["AMap.Scale"], function () {
      const Scale = new AMap.Scale();
      map.addControl(Scale);
    });

定位控件

js 复制代码
 // 注册定位控件
  map.plugin(["AMap.Geolocation"], function () {
      const Geolocation = new AMap.Geolocation();
      map.addControl(Geolocation);
    });

图层切换控件

js 复制代码
 // 注册图层切换控件
  map.plugin(["AMap.MapType"], function () {
      const MapType = new AMap.MapType();
      map.addControl(MapType);
    });

搜索

可使用内置的搜索控件,也可以使用搜索结果自定义ui

js 复制代码
    map.plugin(["AMap.PlaceSearch"], function () {
                        const placeSearch = new AMap.PlaceSearch({
                            pageSize: 5, //单页显示结果条数
                            pageIndex: 1, //页码
                            city: "010", //兴趣点城市
                            citylimit: true, //是否强制限制在设置的城市内搜索
                            map: map, //展现结果的地图实例
                            panel: "panel", //参数值为你页面定义容器的 id 值<div id="my-panel"></div>,结果列表将在此容器中进行展示。
                            autoFitView: true, //是否自动调整地图视野使绘制的 Marker 点都处于视口的可见范围
                        });
                        placeSearch.search("北京大学", function (status, result) {
                        //这里可以根据结果自定义UI
                            console.log("搜索结果", status, result);
                        });

                    });
相关推荐
梦帮科技5 小时前
GRAVIS v4.0:基于Web的极速套利架构设计与实时数据流实现
前端·人工智能·rust·自动化·区块链·智能合约·数字货币
爱勇宝5 小时前
办公资料反复修改、补传、交接混乱,我做了个桌面工具来解决这件事
前端·后端·程序员
微信开发api-视频号协议6 小时前
企业微信外部群开发自动化实践过程
java·前端·微信·自动化·企业微信·ipad
甲维斯6 小时前
Fable5:20美金的顶级设计师!
前端·人工智能
kyriewen6 小时前
我同时用了 Claude Code、Cursor 和 Codex,说说三个工具的真实差距——2026 年选错工具比不用 AI 更浪费时间
前端·ai编程·claude
Jackson__6 小时前
为了拯救我的腰椎和颈椎,我做了款浏览器插件!
前端·javascript·开源
闲猫7 小时前
Python FastAPI + SQLAlchemy 入门教程:从零搭建你的第一个 Web 应用
前端·python·fastapi
林小帅7 小时前
NestJS v11 + Prisma v7 ESM 迁移配置解析
前端·javascript·后端
IT_陈寒7 小时前
React的setState竟然不是立刻生效的,害我调试半天
前端·人工智能·后端
简简单单就是我_hehe7 小时前
前端埋点日志解决方案:完整 User-Agent 解析工具实现,爬虫识别、设备品牌、操作系统、浏览器版本全解析(附完整源码)
前端·爬虫