1.JS高德支持
一、引入高德js支持
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.14&key=你申請的key值&plugin=AMap.Geocoder"></script>
key值之后的內容是其他的子支持,我需要做逆地理編碼,需要用到Geocoder,
二、設置容器
新建個div作為地圖的展示位置
<div id="container" style="margin-left:30px; width: 700px;height: 400px"></div>
三、初始化地圖,同時給地圖加點擊事件
var map = new AMap.Map('container', { resizeEnable: true, //是否監控地圖容器尺寸變化 zoom: 14, //初始化地圖層級 center: [113.668377, 34.719974] //初始化地圖中心點 }); map.on('click', function(ev) { // 觸發事件的對象 var target = ev.target; // 觸發事件的地理坐標,AMap.LngLat 類型 var lnglat = ev.lnglat; // 觸發事件的像素坐標,AMap.Pixel 類型 var pixel = ev.pixel; // 觸發事件類型 var type = ev.type; var lnglat2 = [ev.lnglat.getLng(),ev.lnglat.getLat()]; //點擊點坐標 showInfoClick(lnglat2);//地圖點擊觸發的事件 });
逆地理編碼:把經緯度轉換成位置名稱
function showInfoClick(lnglat2) { var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" }); geocoder.getAddress(lnglat2, function(status, result) { if (status === 'complete' && result.info === 'OK') { console.dir(result); var address = result.regeocode.formattedAddress; $("#address").val(address);//位置名稱 } }); }
2.js調用高德地圖顯示軌跡:集成高德地圖實現路線軌跡繪制
3.java調用高德接口測量兩點間的距離
一,首先我們需要准備個工具方法發送http請求
//java發送http請求 private static String getResponse(String serverUrl){ try { URL url = new URL(serverUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); // 設置該連接是可以輸出的 connection.setRequestMethod("GET"); // 設置請求方式 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8")); String line = null; StringBuilder result = new StringBuilder(); while ((line = br.readLine()) != null) { // 讀取數據 result.append(line + "\n"); } connection.disconnect(); return result.toString();//返回值 } catch (IOException e) { e.printStackTrace(); return ""; } }
二:去高德申請個web端的key值
三:通過起始點的經緯度和結束點的經緯度獲取距離
官網文檔:https://lbs.amap.com/api/webservice/guide/api/direction
//獲取兩點間的距離 public static String getDistance(String startLonLat, String endLonLat){ String key = "你申請的key"; //返回起始地startAddr與目的地endAddr之間的距離,單位:米 String result = ""; String queryUrl = "https://restapi.amap.com/v3/distance?origins="+startLonLat+"&destination="+endLonLat+"&output=xml&key="+key; try { String queryResult = getResponse(queryUrl); //截取距離長度結果值 String str = queryResult.substring(queryResult.indexOf("<distance>")+10,queryResult.indexOf("</distance>")); return str; } catch (Exception e) { e.printStackTrace(); return ""; } }
這里我用了一個比較蠢的方式去截取我要的距離長度,各位有什么好辦法歡迎留言