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

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

     
  • 相关阅读:
    js 构造函数 constructor
    js foreach和map区别
    js 静态方法和实例方法
    学习知识点总结(es6篇)
    java1.5新特性(转)
    21 Managing the Activity Lifecycle
    Java进阶Collection集合框架概要·16
    Java进阶核心之集合框架Map下集·18
    Java进阶核心之集合框架Set·19
    Java进阶核心之集合框架List·17
  • 原文地址:https://www.cnblogs.com/wl1202/p/13432287.html
Copyright © 2011-2022 走看看