通過高德地圖API取得兩點(diǎn)坐標(biāo)間的距離 | 您所在的位置:網(wǎng)站首頁 › 屬虎的和屬兔的做生意怎么樣 › 通過高德地圖API取得兩點(diǎn)坐標(biāo)間的距離 |
? ? ? ?高德地圖在取兩點(diǎn)間的距離比百度地圖更詳細(xì),可以分為幾種類型的API,提供的步行、公交、駕車查詢。今天咱們使用駕車的API來計(jì)算兩點(diǎn)的距離。其它的API大同小異。 ? ? ? 參考高德地圖的API地址:路徑規(guī)劃-API文檔-開發(fā)指南-Web服務(wù) API | 高德地圖API ? ? ? 注意關(guān)鍵字是:路徑規(guī)劃。 ? ? ? 這是實(shí)際可用的代碼。 public static double distanceCalculationSite(String start, String end) { BufferedReader in = null; //高德地圖KEY String url = "https://restapi.amap.com/v3/direction/driving"; String ak = "替換成你的key"; //發(fā)型不能亂,如果參數(shù)順序有錯(cuò)誤,可能會(huì)得到20000的錯(cuò)誤,參數(shù)錯(cuò)誤 String output = "json"; url = url+"?origin="+start+"&destination="+end+"&extensions=all"+"&output="+output+"&key="+ak; try { URL tirc = new URL(url); URLConnection connection = tirc.openConnection(); connection.setDoOutput(true); in = new BufferedReader(new InputStreamReader(tirc.openStream(), "UTF-8")); String res; StringBuilder sb = new StringBuilder(""); while ((res = in.readLine()) != null) { sb.append(res.trim()); } String str = sb.toString(); ObjectMapper mapper = new ObjectMapper(); if (StringUtils.isNotEmpty(str)) { JsonNode jsonNode = mapper.readTree(str); JsonNode resultNode = jsonNode.findValue("route"); JsonNode locationNode = resultNode.findValue("toll_distance"); return locationNode.asDouble(); } } catch (Exception e) { log.error("{高德地圖獲取兩點(diǎn)駕駛距離}------------>"+e); e.printStackTrace(); } return 0; }總結(jié): 1. 高德地圖提供了更詳細(xì)的距離查詢API,包括步行、公交和駕車等多種方式。本文采用的是駕車距離查詢API。 2. 該API使用GET請(qǐng)求,需要傳入起點(diǎn)和終點(diǎn)坐標(biāo),ak開發(fā)者key以及output輸出格式等參數(shù)。 3. 響應(yīng)返回JSON格式的數(shù)據(jù),包含駕車距離信息。需要解析JSON數(shù)據(jù)來獲取距離信息。 4. 代碼示例展示了如何發(fā)送請(qǐng)求,接收響應(yīng),并解析JSON數(shù)據(jù)來獲取駕車距離(單位為米)。 5. 代碼使用Java實(shí)現(xiàn),需要導(dǎo)入相關(guān)庫如HttpURLConnection,JSONObject等。 6. 如果參數(shù)順序錯(cuò)誤,可能會(huì)得到20000等錯(cuò)誤碼,需要注意參數(shù)的正確性。 |
CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有 |