在半农村地区使用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和电话信号数据的结果如此不准确?
任何帮助将不胜感激!
答案 0 :(得分:0)
将所需的精度设置为Accuracy.high
您的位置减速度将变为:
var location = geolocation.getCurrentLocation({
desiredAccuracy: Accuracy.high,
updateDistance: 0,
maximumAge: 5000,
timeout: 5000
})