91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用高德地圖API獲得道路上的坐標并實現描繪道路

發布時間:2020-11-07 16:26:02 來源:億速云 閱讀:821 作者:Leah 欄目:開發技術

使用高德地圖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 http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  <title>關鍵字查詢-使用默認皮膚</title>
  <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main.css&#63;v=1.0" rel="external nofollow" />
  <script type="text/javascript"
      src="http://webapi.amap.com/maps&#63;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>

抓包后獲取到一條非常有用的信息, 有這么一條調用

http://restapi.amap.com/v3/road/roadname&#63;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=http%3A%2F%2Flbs.amap.com%2Fapi%2Fjavascript-api%2Fexample%2Fpoi-search%2Finput-prompt%2F&csid=C23EE7C1-3ADE-4366-AEF3-D45E622F8568

返回的信息里有一段非常有用的結果, 就是roads數組,

roads:[{id: "020F49F01004315432", name: "元崗路", citycode: "020", width: "12", type: "次要道路(城市次干道)",…},…]
0:{id: "020F49F01004315432", name: "元崗路", citycode: "020", width: "12", type: "次要道路(城市次干道)",…}

進一步分析這個數組的第一個結果, 應該就是roadInfo對象,里面又存在一個polylines數組, 看起來非常像是一段段路的坐標列表.

polylines:
0:"113.3395181,23.16999083;113.3395219,23.17012167;113.3395264,23.17016972;113.3395328,23.17021472;113.3395481,23.17026139;113.3395786,23.17032556;113.3396211,23.17040139;113.3398214,23.17073139;113.339885,23.17084444"
1:"113.3367803,23.1771625;113.3364894,23.17720583;113.3362911,23.17723556;113.3362022,23.17724806;113.3361247,23.17725278;113.3360547,23.17724611;113.3359106,23.17722222;113.3358153,23.17720611;113.3357439,23.17719806;113.3356853,23.17719639;113.3356281,23.17720111;113.3355678,23.17721056;113.3355075,23.17722611;113.3354678,23.17724111;113.3354061,23.17726389;113.335265,23.17732556;113.3348517,23.17749778;113.3347969,23.17751472;113.3347408,23.177525;113.3346953,23.17753139;113.334695,23.17753139"
2:"113.3416042,23.17464861;113.3416194,23.1746825;113.3419189,23.17532083;113.3421011,23.17574861;113.3422519,23.17612111;113.3422869,23.17621917;113.3423011,23.17629222;113.3423103,23.17636083"
...

說到這里, 不得不提 一下地圖的道路是怎么畫出來的.只要將道路放大, 就會發現各大地圖都是用直線一段一段地把整條道路描繪出來, 所以說, 很可能這一段一段的數據就是上面道路信息的數組!

使用高德地圖API獲得道路上的坐標并實現描繪道路

接下來就是要驗證這個想法, 方法就是把上面得到的數組上的坐標, 放到高德地圖拾取器里驗證. 經過仔細驗證, 果然數組的每組坐標列表, 就是代表一小段道路!

既然這樣就直接使用上面那個抓出來的restapi來用吧, 誰知道一把那個url放瀏覽器就傻眼了, 返回了以下東西.

jsonp_749020_({"status":"0","info":"INVALID_USER_DOMAIN","infocode":"10006"})

看完上述內容,你們掌握使用高德地圖API獲得道路上的坐標并實現描繪道路的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍城县| 横峰县| 墨脱县| 沐川县| 杭锦旗| 红河县| 榆林市| 滁州市| 扶沟县| 邮箱| 天全县| 南昌县| 娱乐| 平乡县| 嵩明县| 乌恰县| 方城县| 通州市| 锡林郭勒盟| 兴城市| 隆安县| 长宁县| 宁蒗| 兰溪市| 凤山市| 克什克腾旗| 云南省| 惠州市| 伊宁市| 阜宁县| 大足县| 黄山市| 宁晋县| 双牌县| 澄迈县| 昌宁县| 鄂伦春自治旗| 罗江县| 高邮市| 和平县| 瓦房店市|