高德地图获取道路信息、并将道路绘制

目标 :需要通过路的名字,将道路在地图中绘制出。

查找路的信息

通过路名搜索路

http://restapi.amap.com/v3/road/roadname?key=yourkey&keywords=靖江路&city=022

参数名称 参数含义
key 高德API 申请的key
keywords 路名称
city 城市citycode 下载地址见参考文献

通过路id搜索路

http://restapi.amap.com/v3/road/roadid?city=020&key=yourkey&id=022J50F0110263228

参数名称 参数含义
key 高德API申请的key
id roadid
city 022

通过API自带接口查找路的信息

var roadSearch = new AMap.RoadInfoSearch({ //构造地点查询类
    pageSize: 100,
    pageIndex: 1,
    city: "022"
});
roadSearch.roadInfoSearchByRoadId('022J50F0110263228', function(status, result) {

}
roadSearch.roadInfoSearchByRoadName('靖江路', function(status, result) {

}                                                  
参数名称 参数含义
AMap.RoadInfoSearch 构造函数,实例化一个道路信息查询实例
roadInfoSearchByRoadId(id:String, callback:function(status:String,result:info) 通过路id搜索
roadInfoSearchByRoadName(keyword:String, callback:function(status:String,result:info) 通过路名搜索

通过POI 直接绘制道路(此功能未详细研究)

https://ditu.amap.com/place/B0FFGQ7RGA

参数名称 参数含义
POIid POI的Id

返回 RoadInfo 对象

属性 类型 说明
id String 道路id,该id是唯一标识
name String 道路名称
type String 道路类型文字描述,详细参考道路类型列表
center LngLat 道路中心点坐标
citycode String 城市编码
path/polylines Array.<Array.<LngLat>> 道路路径坐标集合

将路径坐标集合绘制在地图中

//这只是一个示例
for (let i = 0; i < result.roadInfo.length; i++) {
    const element = result.roadInfo[i];
    for (let j = 0; j < element.path.length; j++) {
    const path = element.path[j];
    const polyline = new AMap.Polyline({
        path: path,  
        borderWeight: 2, // 线条宽度,默认为 1
        strokeColor: 'red', // 线条颜色
        lineJoin: 'round' // 折线拐点连接处样式
    });
    map.add(polyline)
}
}


map.setFitView();

参考文章:

  1. 通过高德地图API获得某条道路上的所有坐标用于描绘道路
  2. 高德地图开发文档中搜索服务
  3. citycode下载地址
原文地址:https://www.cnblogs.com/7fancier/p/11137464.html