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

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

     
  • 相关阅读:
    穿出不一样的自己,做自己的高级定制服装师_豆瓣
    微信公众帐号开发。大家是用框架还是自己写的流程。现在遇到若干问题。请教各路大仙
    (Pre sell) ZOPO ZP998 (C2 II) 5.5 inch smart phone True Octa Core MTK6592 1920X1080 FHD screen 401 ppi 2GB/32GB 14.0Mp camera-in Mobile Phones from Electronics on Aliexpress.com
    内秀_百度百科
    Boost正则表达式库regex常用search和match示例
    怎样学习使用libiconv库
    libiconv_百度百科
    c++
    解决Boost.Regex对中文支持不好的问题
    毛料西服缩水了怎么办?_百度知道
  • 原文地址:https://www.cnblogs.com/wl1202/p/13432287.html
Copyright © 2011-2022 走看看