js高德地圖支持,java獲取高德地圖兩點間的距離


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  "";
        }
    }

這里我用了一個比較蠢的方式去截取我要的距離長度,各位有什么好辦法歡迎留言

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM