首页 前端知识 使用高德地图JS API 开发一些常见使用问题(急救包)

使用高德地图JS API 开发一些常见使用问题(急救包)

2024-09-14 23:09:34 前端知识 前端哥 753 643 我要收藏

文章目录

    • 本文记录开发使用高德地图JS API 开发一些常见使用问题
        • 1.JS API版本问题 `2.0 、1.4`
        • 2.密钥AMapSecurityConfig.securityJsCode、key使用问题
        • 3.设置域名白名单问题
        • 4.API方法使用不生效没效果
        • 5.隐藏地图标注地区名称 showLabel
        • 6.zoom缩放颗粒度
        • 7.设置区域限制显示范围
        • 7.设置地图语言
        • 后续继续补充更多 🙏

本文记录开发使用高德地图JS API 开发一些常见使用问题

API文档 👉传送门
关于如何引入高德地图JS API方式 请移步前面文章👉使用高德地图JS API 开发一些常见使用方法(急救包)

前篇👉:
使用高德地图JS API 开发——普通点标记Marker

使用高德地图JS API 开发——海量点标记LabelMarker

使用高德地图JS API 开发——区划浏览/下钻功能(4)

1.JS API版本问题 2.0 、1.4
  • 目前高德地图JS API已经迭代2.0大版本,在交互体验、视觉体验,还是接口能力都有大幅提升;对于老版本 1.4基本上大部分API也都支持
    在这里插入图片描述

在这里插入图片描述

2.密钥AMapSecurityConfig.securityJsCode、key使用问题

使用高德地图开发 尽量把密钥(securityJsCode)、key都要加上,后续功能开发可能会需要到

  • 不使用密钥 地图可以用(1.4版本不引入key也能用)。但是许多API服务需要搭配密钥支持,比如天气、自定义地图、搜索、路线规划、地理编码等服务,
  • 密钥、key安全使用,要看引入方式 ,关于如何引入 请移步前面文章👉使用高德地图JS API 开发一些常见使用方法(急救包) 。也可以设置域名白名单👇,使用高德地图JS API前期都配准备配置好后面就都省事了。
3.设置域名白名单问题

高德地图JS API设置域名白名单的作用主要是为了安全和权限控制。当你在高德地图开放平台创建应用并获得API密钥(Key)时,如果你指定了域名白名单,那么只有列表中指定的域名下的网页才能通过该Key调用高德地图的API服务。这样做有以下几个好处:

  1. 安全性:防止恶意网站或未经授权的第三方滥用你的API Key,从而保护你的账号安全和避免因他人滥用而导致的费用损失。
  2. 资源控制:确保你的API请求来自于可信的源,帮助你更好地统计和管理API的使用情况,比如流量监控和配额限制。
  3. 数据保护:某些API可能涉及敏感数据或有使用限制,限制调用来源可以帮助保护数据不被非法访问或不当使用。
  4. 合规性:部分法律法规或行业标准可能要求对API访问进行严格控制,设置白名单是满足这些要求的一种方式。
    在这里插入图片描述
    建议设置域名白名单,相对来说安全,避免一些不必要的麻烦提示:1.4版本添加白名单不一定能生效
    在这里插入图片描述
4.API方法使用不生效没效果

在使用高德地图开发过程中,如果使用AMap方法不生效报错,比如使用AMap.CitySearch定位服务
在这里插入图片描述

可能是没有正确引入、没有找到这个API,以下面代码引入方式为例,在key后面追加&plugin,比如&plugin=AMap.CitySearch, 多个插件逗号拼接

  <script type="text/javascript"
    src="https://webapi.amap.com/maps?v=1.4.1&amp;key='你申请的key值'&plugin=AMap.CitySearch">
  </script>
  initLocation() {
      // 获取当前定位信息 城市名
      var citySearch = new window.AMap.CitySearch();
      citySearch.getLocalCity(function (status, result) {
        if (status === "complete" && result.info === "OK") {
          console.log(result.city)
        }
      });
  },
5.隐藏地图标注地区名称 showLabel
const map = new AMap.Map('container', {
   showLabel: false, // 取消地图层标注
});

在这里插入图片描述

6.zoom缩放颗粒度

地图默认2D状态下 设置setZoom 大小和鼠标轮滑缩放都一样 颗粒度很粗,设置小数位是不生效的

const map = new AMap.Map('container', {
   viewMode:'2D', // 不设置 地图也默认2D
   zoom: 9, // 初始设置地图层级
});
var zoom = 10
map.setZoom(zoom); //设置地图层级

3D状态下 设置setZoom 大小, 缩放支持小数,缩放自如,颗粒度2D相比细致很多

const map = new AMap.Map('container', {
   viewMode:'3D',
   zoom: 9, // 初始设置地图层级
});
var zoom = 10.5
map.setZoom(zoom); //设置地图层级

提示:但是使用3D属性看需求,不影响性能就放心用,造成性能导致项目卡的话 可以 根据点位使用自动缩放视野map.setFitView()

7.设置区域限制显示范围
方法返回值说明
setBounds(bound:Bounds)-指定当前地图显示范围,参数bounds为指定的范围
setLimitBounds(bound:Bounds)-设置Map的限制区域,设定区域限制后,传入参数为限制的Bounds。地图仅在区域内可拖拽,相关示例
const map = new AMap.Map('container', {
    zoom: 11,
    showIndoorMap: false
});
var bounds = map.getBounds();
map.setLimitBounds(bounds);
7.设置地图语言
const map = new AMap.Map('container', {
    resizeEnable: true,
    center: [121.498586, 31.239637],
    lang: "en" //可选值:en,zh_en, zh_cn
});

在这里插入图片描述

后续继续补充更多 🙏
转载请注明出处或者链接地址:https://www.qianduange.cn//article/18249.html
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!