# 官网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>