我想计算两个地点之间的距离,以公里为单位,在离子4。我使用一个函数,这给我错误[重复]。

问题描述 投票:0回答:1
distance(lon1, lat1, lon2, lat2) {

       var R = 6371; // Radius of the earth in km

        var dLat = (lat2-lat1).toRad();  // Javascript functions in radians

         var dLon = (lon2-lon1).toRad(); 

        var a = Math.sin(dLat/2) * Math.sin(dLat/2) +

           Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 

            Math.sin(dLon/2) * Math.sin(dLon/2); 

          var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 

            var d = R * c; // Distance in km

                 return d;

          }

如果我在这个函数中使用了toRad()函数,每当我使用它时,它就会给出一个错误。

属性toRad()不存在type number。

请帮助我,我必须导入一些东西,原因是什么?

geolocation location ionic4 calculator distance
1个回答
0
投票

你应该写你自己的 toRad 这样的功能。

function toRad(Value) {
        return Value * Math.PI / 180;
    }

然后在功能上使用它。

function distance(lon1, lat1, lon2, lat2) {
        var R = 6371;
        var dLat = toRad(lat2 - lat1);
        var dLon = toRad(lon2 - lon1);

        var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
            Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
            Math.sin(dLon / 2) * Math.sin(dLon / 2);

        var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        var d = R * c; 

        return d;
    }

顺便问一下,你是用Ionic Angular写的应用吗?你是不是应该使用Typescript而不是JavaScript?

© www.soinside.com 2019 - 2024. All rights reserved.