努力使用Nativescript地理位置插件

时间:2019-05-15 09:19:52

标签: geolocation nativescript

在半农村地区使用nativescript地理位置插件时,结果非常不准确,有时甚至高达500米。结果总是使我处于最近的城市发展中,而不是站在我所站在的领域中。当我处于完全城市化的环境中,结果总是完美时,这不会发生。我走过的地方是我所在地区的最高点,电话桅杆阵列很多,所以我不确定为什么会发生这些结果。

对我来说,结果某种程度上来自于电话信号三角测量和遥远的wifi信号的扭曲。我试图通过停用SIM卡以仅使用GPS来消除这种情况,但随后返回NOTHING。这表明GPS无法正常工作,我依靠wifi和电话信号数据进行定位,但是由于我正在尝试开发用于手机信号差的区域的应用程序,因此仅GPS定位至关重要(大约20在大多数情况下都达到米的精度-就我的目的而言完全可以接受)

function buttonGetLocationTap(args) {


    var location = geolocation.getCurrentLocation({
        desiredAccuracy: accuracy.any,
        updateDistance: 0,
        maximumAge: 5000,
        timeout: 5000


     //   desiredAccuracy: 1
     //   , updateDistance: 10
     //   , minimumUpdateTime: 600000
     //   , maximumAge: 600000
     //   , timeout: 5000


    }).
    then(function(loc) {
        if (loc) {

            var match = 'n';
            var z = '';
            for (var i = 0; i < x.markers.length; i++) {
                var names = x.markers[i].name;
                var items = x.markers[i].coordinates;

                var targetLatitude = (items.latitude);
                var targetLongitude = (items.longitude);
                var currentLatitude = (loc.latitude.toFixed(4));
                var currentLongitude = (loc.longitude.toFixed(4));

                var targetLatitudelow=targetLatitude -0.0005;
                var targetLatitudehigh=targetLatitude +0.0005;
                var targetLongitudelow=targetLongitude -0.0005;
                var targetLongitudehigh=targetLongitude +0.0005;

                if (currentLatitude >= targetLatitudelow && currentLatitude <= targetLatitudehigh) {
                    if (currentLongitude >= targetLongitudelow && currentLongitude <= targetLongitudehigh) {
                        match = 'y';
                        z = JSON.stringify(names);
                        console.log(z);
                        page.bindingContext = {
                            username: z
                        }
                    }
                }
                else
                {

                    match = 'n';
                    z = currentLatitude + currentLongitude;
                    console.log(z);
                    page.bindingContext = {
                        username: z
                    }



                }
                ;
                if (match =='y') { break; }
            }
        }

我希望在半农村地区获得与城市化地区相同的结果,显然有两个问题:

1。为什么GPS仅不起作用 2.尽管GPS无法正常工作-当我站在田野中央的手机桅杆旁边时,为什么wifi和电话信号数据的结果如此不准确?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

将所需的精度设置为Accuracy.high

您的位置减速度将变为:

    var location = geolocation.getCurrentLocation({
        desiredAccuracy: Accuracy.high,
        updateDistance: 0,
        maximumAge: 5000,
        timeout: 5000
    })