zoukankan      html  css  js  c++  java
  • sql 根据经纬度计算两点的距离

    1.sql

    round(2 * Asin(Sqrt(power(Sin((出发点纬度参数- 目的地纬度参数) * 3.1415926 / 180 / 2),2) + Cos(出发点纬度参数 * 3.1415926 / 180) * Cos(目的地纬度参数* 3.1415926 / 180) * power(Sin((出发点经度参数 - 目的地经度参数) * 3.1415926 / 180 / 2),2))) * 6378.137,1) AS distance

    2.java 腾讯地图经纬度获取省市区

    package com.kinloou.utils;
    
    import com.alibaba.fastjson.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.Map;
    
    public class LocationUtils {
    
        // key
        private static final String KEY = "5DFBZ-NLNWS-2MZOF-6GKJQ-IENQZ-5VFHX";
    
        /**
         * @Description: 通过经纬度获取位置
         * @Param: [lng, lat]
         * @return: java.lang.String
         * @Author: kinloou
         */
        public static Map<String, Object> getLocation(String lng, String lat) {
    
            Map<String, Object> resultMap = new HashMap<String, Object>();
    
            // 参数解释:lng:经度,lat:维度。KEY:腾讯地图key,get_poi:返回状态。1返回,0不返回
            String urlString = "http://apis.map.qq.com/ws/geocoder/v1/?location=" + lat + "," + lng + "&key=" + KEY + "&get_poi=1";
            String result = "";
            try {
                URL url = new URL(urlString);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setDoOutput(true);
                // 腾讯地图使用GET
                conn.setRequestMethod("GET");
                BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
                String line;
                // 获取地址解析结果
                while ((line = in.readLine()) != null) {
                    result += line + "
    ";
                }
                in.close();
            } catch (Exception e) {
                e.getMessage();
            }
    
            // 转JSON格式
            JSONObject jsonObject = JSONObject.parseObject(result).getJSONObject("result");
            // 获取地址(行政区划信息) 包含有国籍,省份,城市
            JSONObject adInfo = jsonObject.getJSONObject("ad_info");
            resultMap.put("nation", adInfo.get("nation"));
            resultMap.put("nationCode", adInfo.get("nation_code"));
            resultMap.put("province", adInfo.get("province"));
            resultMap.put("provinceCode", adInfo.get("adcode"));
            resultMap.put("city", adInfo.get("city"));
            resultMap.put("cityCode", adInfo.get("city_code"));
            return resultMap;
        }
    
        public static void main(String[] args) {
    
            // 测试  22.640294,114.011653
            String lng = "114.011653";//经度
            String lat = "22.640294";//维度
            Map<String, Object> map = getLocation(lng, lat);
            System.out.println(map);
            System.out.println("国   籍:" + map.get("nation"));
            System.out.println("国家代码:" + map.get("nationCode"));
            System.out.println("省   份:" + map.get("province"));
            System.out.println("省份代码:" + map.get("provinceCode"));
            System.out.println("城   市:" + map.get("city"));
            System.out.println("城市代码:" + map.get("cityCode"));
        }
    }
  • 相关阅读:
    【PAT甲级】1014 Waiting in Line (30 分)(队列维护)
    【PAT甲级】1013 Battle Over Cities (25 分)(并查集,简单联通图)
    获取当前时间
    设备版本,设备号,APP版本,APP名称获取
    获取设备号
    Button的图像位置设置
    UIButton设置imgae图片自适应button的大小且不变形
    手势图片:拖拽捏合旋转放大
    Unable to add App ID because the '10' App ID limit in '7' days has been exceeded.
    iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
  • 原文地址:https://www.cnblogs.com/ljl5921/p/15519254.html
Copyright © 2011-2022 走看看