文章目录
- 本文记录开发使用高德地图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服务。这样做有以下几个好处:
- 安全性:防止恶意网站或未经授权的第三方滥用你的
API Key
,从而保护你的账号安全和避免因他人滥用而导致的费用损失。 - 资源控制:确保你的API请求来自于可信的源,帮助你更好地统计和管理API的使用情况,比如流量监控和配额限制。
- 数据保护:某些API可能涉及敏感数据或有使用限制,限制调用来源可以帮助保护数据不被非法访问或不当使用。
- 合规性:部分法律法规或行业标准可能要求对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&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
});