zoukankan      html  css  js  c++  java
  • google地图通过js计算当前位置与其余多个点之间的最近距离

      var childs = <?= json_encode($childs, JSON_UNESCAPED_UNICODE) ?>;

      var latlng = new google.maps.LatLng(value.google_lnglat.lat, value.google_lnglat.lng); //value.google_lnglat.lat, value.google_lnglat.lng 当前位置经纬度

      function getFlatternDistance(lat1, lng1) {
                var julichangdu = new Array();
                childs && $.each(childs, function (idx, dest) { //其余所有点的内容

                    var lat2 = dest['google_lnglat'][1];
                    var lng2 = dest['google_lnglat'][0]
                    var f = getRad((Number(lat1) + Number(lat2)) / 2);
                    var g = getRad((Number(lat1) - Number(lat2)) / 2);
                    var l = getRad((Number(lng1) - Number(lng2)) / 2);

                    var sg = Math.sin(g);
                    var sl = Math.sin(l);
                    var sf = Math.sin(f);

                    var s, c, w, r, d, h1, h2;
                    var a = EARTH_RADIUS;
                    var fl = 1 / 298.257;

                    sg = sg * sg;
                    sl = sl * sl;
                    sf = sf * sf;

                    s = sg * (1 - sl) + (1 - sf) * sl;
                    c = (1 - sg) * (1 - sl) + sf * sl;

                    w = Math.atan(Math.sqrt(s / c));
                    r = Math.sqrt(s * c) / w;
                    d = 2 * w * a;
                    h1 = (3 * r - 1) / 2 / c;
                    h2 = (3 * r + 1) / 2 / s;
                    julichangdu[dest['destid']] = d * (1 + fl * (h1 * sf * (1 - sg) - h2 * (1 - sf) * sg));
                });
                var d = 0;
                var di = 0;
                console.log(julichangdu)
                for (var p in julichangdu) {
                    console.log(di)
                    console.log(d)
                    if (di == 0) {
                        di = julichangdu[p];
                        d = p;
                    } else {
                        if (di > julichangdu[p]) {
                            di = julichangdu[p];
                            d = p;
                        }
                    }
                }
                return d;
            }

  • 相关阅读:
    vue.js
    kendo ui DatePicker 时区转换
    List Except 失效 差集失效
    RabbitMQ的安装
    net core 使用 Redis
    SQLSERVER学习八:事务和锁
    SQLSERVER学习七:存储过程
    SQLSERVER学习六:函数
    SQLSERVER学习五:流程控制语句
    SQLSERVER学习四:常用检索语句
  • 原文地址:https://www.cnblogs.com/YTzZ/p/4538573.html
Copyright © 2011-2022 走看看