zoukankan      html  css  js  c++  java
  • 计算经纬度之间的实际距离

    1、数据库创建经纬度的函数

    CREATE OR REPLACE FUNCTION FUN_JW_DIST(lng1 numeric, lat1 numeric, lng2 numeric, lat2 numeric) RETURNS numeric AS $$
      SELECT ceil((
      6371 * acos(
      cos(radians(lat1)) * cos(radians(lat2)) * cos(
      radians(lng1) - radians(lng2)
      ) + sin(radians(lat1)) * sin(radians(lat2))
      )
      )*1000)::numeric as dist;
    $$ LANGUAGE SQL;

    调用

    select FUN_JW_DIST(120.451737, 36.520975, 120.455636, 36.520885) as dist;

    返回的dist即为距离

    2、Java计算

    引入Jar

                <dependency>
                    <groupId>org.gavaghan</groupId>
                    <artifactId>geodesy</artifactId>
                    <version>1.1.3</version>
                </dependency>

    进行计算

        /**
         * 计算实际距离
         *
         * @param longitudeFrom 距离1的经度
         * @param latitudeFrom  距离1的纬度
         * @param longitudeTo   距离2的经度
         * @param latitudeTo    距离2的纬度
         * @return 实际距离,单位:米(四舍五入为整数)
         */
        public static long getDistance(double longitudeFrom, double latitudeFrom, double longitudeTo, double latitudeTo) {
            GlobalCoordinates source = new GlobalCoordinates(latitudeFrom, longitudeFrom);
            GlobalCoordinates target = new GlobalCoordinates(latitudeTo, longitudeTo);
            return Math.round(new GeodeticCalculator().calculateGeodeticCurve(Ellipsoid.Sphere, source, target).getEllipsoidalDistance());
        }
  • 相关阅读:
    Eclipse远程调试,服务器为linux的配置
    关于javascript代码执行时间的计算
    Java编程中容易疏忽的知识点
    为什么要开发自己的框架、平台或插件
    算法在计算中的作用
    程序员的自豪感
    iOS,Objective-C Runtime
    iOS,本地化(国际化)字符
    iOS,应用崩溃日志分析
    iOS,信息加解密
  • 原文地址:https://www.cnblogs.com/mlfz/p/15628559.html
Copyright © 2011-2022 走看看