如何通过高德地图API获取某道路所有坐标点?

2026-04-01 14:442阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计812个文字,预计阅读时间需要4分钟。

如何通过高德地图API获取某道路所有坐标点?

产品提出的一个需求是,通过道路名称,将道路描绘出来。这一功能在各大地图上都能看到,因此他们觉得做出来也很简单。但是,百度地图本身并没有接口可以查询这个信息。

产品提出的一个需求是, 通过道路名字, 把道路描绘出来. 这功能在各大地图上都是可以看到的, 所以他们觉得做出来也很简单.

但是百度地图本身是没有任何接口可以查询这个信息. 网上能找到的方法, 无非都是通过导航接口, 定义道路的起点和终点进行描绘. 但这种方法只要仔细推敲就有不妥:

如何通过高德地图API获取某道路所有坐标点?

  1. 如果道路有分岔怎么办? 每个分岔口都找出来然后不断调用导航接口吗?
  2. 如果道路是弯曲而不是直线怎么办? 导航走的是最近线路, 不一定会完全跟着某条路来走啊.

所以导航的方法并不完美. 我希望制找到的方法是最简单的, 通过路名就要找到整条道路的坐标数据. 但是这谈何容易? 研究过高德地图的都知道, 在javascript api里有虽然有Amap.RoadInfoSearch这个方法

但在web api里就只有搜索API, 搜索出来的对象是place对象, 里面的数据并不足以描绘道路.

那能不能调用javascript api的方法, 通过抓包看看他是怎样调用web api的呢? 测试代码html如下.

<!doctype html> <html> <head> <meta charset="utf-8"> <meta cache.amap.com/lbs/static/main.css?v=1.0" rel="external nofollow" /> <script type="text/javascript" src="webapi.amap.com/maps?v=1.3&key=您申请的key值"></script> <style type="text/css"> #panel { position: absolute; background-color: white; max-height: 90%; overflow-y: auto; top: 10px; right: 10px; width: 280px; } </style> </head> <body> <div id="mapContainer"></div> <div id="panel"> </div> <script type="text/javascript"> var map = new AMap.Map("mapContainer", { resizeEnable: true }); AMap.service(["AMap.RoadInfoSearch"], function() { var roadSearch = new AMap.RoadInfoSearch({ //构造地点查询类 pageSize: 5, pageIndex: 1, city: "020" }); //关键字查询 roadSearch.roadInfoSearchByRoadName('元岗路', function(status, result) { alert(result.roadInfo[0].path[0]); }); }); </script>

抓包后获取到一条非常有用的信息, 有这么一条调用

restapi.amap.com/v3/road/roadname?pageIndex=1&city=020&offset=5&key=608d75903d29ad471362f8c58c550daf&s=rsv3&output=json&keywords=%E5%85%83%E5%B2%97%E8%B7%AF&callback=jsonp_749020_&platform=JS&logversion=2.0&sdkversion=1.3&appname=restapi.amap.com/v3/place/text?&keywords=北京大学&city=beijing&output=xml&offset=100&page=1&key=<用户的key>&extensions=all

既然这个rest api, 那我把place换成road就应该是查需road的信息, 而截取出来的URL的确有这么一段restapi.amap.com/v3/road/roadname , 那就把road替换了他的place, roadname替换他的text, keywords换成路名. 果然得到一条有正确返回的接口了! 虽然这接口他文档没写出来, 但还是被我揪出来了.

restapi.amap.com/v3/road/roadname?city=020&key=<用户的key>&keywords=元岗路

到此这篇关于通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法的文章就介绍到这了,更多相关高德地图API描绘道路内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计812个文字,预计阅读时间需要4分钟。

如何通过高德地图API获取某道路所有坐标点?

产品提出的一个需求是,通过道路名称,将道路描绘出来。这一功能在各大地图上都能看到,因此他们觉得做出来也很简单。但是,百度地图本身并没有接口可以查询这个信息。

产品提出的一个需求是, 通过道路名字, 把道路描绘出来. 这功能在各大地图上都是可以看到的, 所以他们觉得做出来也很简单.

但是百度地图本身是没有任何接口可以查询这个信息. 网上能找到的方法, 无非都是通过导航接口, 定义道路的起点和终点进行描绘. 但这种方法只要仔细推敲就有不妥:

如何通过高德地图API获取某道路所有坐标点?

  1. 如果道路有分岔怎么办? 每个分岔口都找出来然后不断调用导航接口吗?
  2. 如果道路是弯曲而不是直线怎么办? 导航走的是最近线路, 不一定会完全跟着某条路来走啊.

所以导航的方法并不完美. 我希望制找到的方法是最简单的, 通过路名就要找到整条道路的坐标数据. 但是这谈何容易? 研究过高德地图的都知道, 在javascript api里有虽然有Amap.RoadInfoSearch这个方法

但在web api里就只有搜索API, 搜索出来的对象是place对象, 里面的数据并不足以描绘道路.

那能不能调用javascript api的方法, 通过抓包看看他是怎样调用web api的呢? 测试代码html如下.

<!doctype html> <html> <head> <meta charset="utf-8"> <meta cache.amap.com/lbs/static/main.css?v=1.0" rel="external nofollow" /> <script type="text/javascript" src="webapi.amap.com/maps?v=1.3&key=您申请的key值"></script> <style type="text/css"> #panel { position: absolute; background-color: white; max-height: 90%; overflow-y: auto; top: 10px; right: 10px; width: 280px; } </style> </head> <body> <div id="mapContainer"></div> <div id="panel"> </div> <script type="text/javascript"> var map = new AMap.Map("mapContainer", { resizeEnable: true }); AMap.service(["AMap.RoadInfoSearch"], function() { var roadSearch = new AMap.RoadInfoSearch({ //构造地点查询类 pageSize: 5, pageIndex: 1, city: "020" }); //关键字查询 roadSearch.roadInfoSearchByRoadName('元岗路', function(status, result) { alert(result.roadInfo[0].path[0]); }); }); </script>

抓包后获取到一条非常有用的信息, 有这么一条调用

restapi.amap.com/v3/road/roadname?pageIndex=1&city=020&offset=5&key=608d75903d29ad471362f8c58c550daf&s=rsv3&output=json&keywords=%E5%85%83%E5%B2%97%E8%B7%AF&callback=jsonp_749020_&platform=JS&logversion=2.0&sdkversion=1.3&appname=restapi.amap.com/v3/place/text?&keywords=北京大学&city=beijing&output=xml&offset=100&page=1&key=<用户的key>&extensions=all

既然这个rest api, 那我把place换成road就应该是查需road的信息, 而截取出来的URL的确有这么一段restapi.amap.com/v3/road/roadname , 那就把road替换了他的place, roadname替换他的text, keywords换成路名. 果然得到一条有正确返回的接口了! 虽然这接口他文档没写出来, 但还是被我揪出来了.

restapi.amap.com/v3/road/roadname?city=020&key=<用户的key>&keywords=元岗路

到此这篇关于通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法的文章就介绍到这了,更多相关高德地图API描绘道路内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!