zoukankan      html  css  js  c++  java
  • 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;    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 + "
    ");
                }
                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  "";
            }
        }

    这里我用了一个比较蠢的方式去截取我要的距离长度,各位有什么好办法欢迎留言

     
  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/wl1202/p/13432287.html
Copyright © 2011-2022 走看看