# 官网API
# 常见问题
# 高德 Typescript 声明文件
@amap/amap-jsapi-types 是高德开放平台官网提供的地图 JSAPI2.0 的 Typescript 声明文件。旨在为开发者提供 Typescript 环境下的类型提示,提升开发体验。
npm i -S @amap/amap-jsapi-types
import "@amap/amap-jsapi-types";
注意
目前仅包含 JSAPI2.0 核心文件的接口,不包含插件的接口!
# 高德影像图加载geojson后覆盖geojson
高德影像图加载geojson后的层级和local有关,需要去掉
# INVALID_USER_SCODE 无效用户代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<script type="text/javascript">
// 一定要安全密钥先写在前,key在后,不然无效
window._AMapSecurityConfig = {
securityJsCode: "高德安全密钥",
}
</script>
<script src="http://webapi.amap.com/maps?v=2.0&key=你申请的key"></script>
<script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
<title>这是一个WEB应用标题</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
# 为什么调用setCenter/setFitView等接口,或者地图移动时,地图 JS API 底图不会在移动过程中刷新?
地图移动时如果希望底图也更新,可以在加载JSAPI 2.0前设置环境变量window['movingDraw']=true,但这可能会增加对浏览器的绘制性能要求。
# 高德、腾讯、百度实时路况切片地址
# 腾讯地图实时路况切片地址
https://rtt2b.map.qq.com/rtt/?z={z}&x={x}&y={reverseY}×=1&time='+longTime+'
# 高德地图实时路况切片地址
http://tm.amap.com/trafficengine/mapabc/traffictile?v=1.0&=&=&t=1&t=’+longTime+’&x={x}&y={y}&z={z}
# 百度地图实时路况切片地址(无标注)
http://its.map.baidu.com:8002/traffic/TrafficTileService?level={z}&x={x}&y={y}&time=’+longTime+’$&v=081&scaler=1
注意longTime为long值的时间戳:
//获取当前时间
var nowDate = new Date();
var year = nowDate.getFullYear();
var month = nowDate.getMonth() + 1;
var today = nowDate.getDate();
var hours = nowDate.getHours();
var minutes = nowDate.getMinutes();
var seconds = nowDate.getSeconds();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (today >= 1 && today <= 9) {
today = "0" + today;
}
var currentdate = year + "-" + month + "-" + today
+ " " + hours + ":" + minutes + ":" + seconds;
var longTime = new Date(currentdate.replace(new RegExp("-", "gm"), "/")).getTime();
# h5浏览器唤起高德地图
// 高德地图APP唤起链接(ios):
iosamap://path?sourceApplication=&slat=&slon=&sname=&dlat=&dlon=&dname=&dev=&t=
// 高德地图APP唤起链接(android):
amapuri://route/plan/?sourceApplication=&slat=&slon=&sname=&dlat=&dlon=&dname=&dev=&t=
// slat / slng / sname 终点位置信息
// dlat / dlng / dname 起点位置信息
示例代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>HTML5唤起高德地图APP示例</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<script src="https://webapi.amap.com/maps?v=2.0&key=你的key&plugin=AMap.Geolocation" type="text/javascript"></script>
</head>
<body>
<script>
//根据手机系统获取scheme
function getScheme(){
let agent = navigator.userAgent.toLowerCase();
if(agent.indexOf("iphone") != -1 || agent.indexOf("ipad") != -1){
return "iosamap://path";
}else{
return "amapuri://route/plan";
}
}
let geolocation = new AMap.Geolocation();
geolocation.getCurrentPosition(function(status,result){
if(status=="complete"){
let { lat,lng } = result
let alat,alng,address;
let app_url = `${getScheme()}?sourceApplication=com.mzwu.www&slat=${lat}&slon=${lng}&sname=我的位置&dlat=${alat}&dlon=${alng}&dname=${address}&dev=0&t=0`;
window.location.href = app_url
}else{
alert('打开高德地图失败,请检查您的手机设置')
}
})
</script>
</body>
</html>
# 微信H5网页打开导航地图app
<a href="http://uri.amap.com/navigation?from=114.02597366,22.54605355&to=114.029243,22.609562&mode=car&src=nyx_super;">高德地图</a>
<a href="https://uri.amap.com/marker?position=114.02597366,22.54605355&name=深圳南山">高德地图OK</a>
<a href="http://api.map.baidu.com/marker?location=114.02597366,22.54605355&title=深圳南山&content=介绍深圳南山bbb&output=html">百度地图——不太ok</a>
<a href='http://apis.map.qq.com/uri/v1/marker?marker=coord:31.2353,121.48108;addr:上海市人民广场'>腾讯地图</a>
<a href='http://apis.map.qq.com/uri/v1/marker?marker=coord:22.54605355,114.02597366;addr:深圳南山'>腾讯地图2</a>
<a href='https://apis.map.qq.com/uri/v1/marker?marker=coord:39.892326,116.342763;title:超好吃冰激凌;addr:手帕口桥北铁路道口&referer=myapp'>腾讯地图3</a>