• 2

PAPAGO 要怎麼打開AGPS

昨天 臨時要導航找路

一直定位 定不到
有3G訊號

等到 手機熱到都快可以燙人了
還是定位不到

那麼貴的付費軟體 怎麼還會這樣 = =


拿出兩年前買的
被我摔過無數次的 NOKIA 6110
反而就馬上定位的到
轉彎的時候也不會延遲

同樣都是PAPAGO 怎麼差那麼多?

還是我哀鳳上的AGPS沒打開
要怎麼打開呢??


2010-02-23 13:56 發佈
文章關鍵字 PAPAGO AGPS
s5628582 wrote:
昨天 臨時要導航找路...(恕刪)


請讀一下PAPAGO購買說明
不回應底下小留言、廢文及討戰文
s5628582 wrote:
昨天 臨時要導航找路...(恕刪)

1.papago不支援agps
2.定不到位原因很多,您有更新過程式嗎?很多時候是您使用上的問題,站上很多。
iPhone 的GPS 功能都是使用 AGPS, 無須特別去開啓, 內建就是使用 AGPS.

一樣是iPhone GPS 應用軟體開發者, 在這裡我忍不住要幫PAPAGO說明一下, 根據我們在開發iPhone Speed Radar 測速照相 App的經驗, iPhone GPS 定位速度, 定位方式, 甚至定位更新時間都不是我們開發者可以控制的, 他是 iPhone OS 的一個 API, 在開發時如果需要使用到位置座標的時候我們只能去 call 這個 location 的 function API, 然後 iPhone OS就會開始回傳現在位置以及後續的位置更新座標.

但是, iPhone API 回傳的位置的偏差距離可能大至900m以上, 小至5m, 由於我們沒辦法去控制iPhone OS 回傳的精準度, 所以會以刪除不用來處理這些精準度差一些的座標值, 但是刪除掉後就要等下一次的更新(而什麼時候更新? 不確定, 只能等, 不像一般Nokia手機可以依照我們的設定幾秒去要到座標, 或是幾秒內連續要三次定位取得準一點的座標, 所以只能等iPhone 從APGS 系統取得座標後回傳), 甚至有時候還會發生回傳的座標值是上上一次定位的位置回來的筆上一次定位還要慢的問題, PAPAGO的問題是因為 iPhone 一直只傳回偏差超過20m的座標, 那就沒辦法, 只能一直等到他傳回的精準度到20m以下才可以作為導航使用, 這樣就會定位定很久. 這只能等iPhone 升級他的GPS晶片變得更快更不怕高樓遮蔽的問題才有可能解決, 否則就是像PAPAGO有時候被罵到忍不住把準確度放鬆點, 讓定位時間少一點, 卻又會被另一批用戶罵說位置偏移太多無法導航的情況了.

以上是小弟的經驗...
wildmindk wrote:
iPhone 的GP...(恕刪)

不不,iphone PAPAGO真的沒有AGPS
iphone的GPS是傳統GPS+AGPS兩者並存的
PAPAGO就只能使用傳統GPS
google map卻只能使用AGPS(一開始定位)
C'est La Vie! 法文「這就是人生啊!」
sickfoot wrote:
不不,iphone ...(恕刪)


目前的 iPhone SDK 裡並沒有可以選擇要不要用 AGPS, 只有過濾掉偏差距離大的座標, 當然AGPS可以快速定位, 但偏差值高, 所以過濾掉, 當偏差值低的比較準的座標當然就是由衛星GPS 取得的值. 但整體來說還是使用AGPS, AGPS基本上還是GPS, 只是多了伺服器端(Assisted) 的星歷輔助快一點定位而已, 本來就還是有用GPS 衛星做定位, 然而, 真正準確度較佳的座標還是要天空上24顆衛星才行(也就是GPS). 所以您說的也對, PAPAGO可以說他只用GPS而不用AGPS, 因為他把由伺服器端(Assisted server)傳回的座標(也就是偏移度大一些的過濾掉), 只採用準確點的 < 20m 偏移距離的座標作為導航使用, 也可以說只用 GPS

關於AGPS 請參考 之前Mobile01 關於 AGPS 的討論串
長見識囉~原來SDK的設定裡沒有辦法選擇定位的方式,只能用精確度來區分

不過跟另一個App的設定給我的感覺又不太一樣
這個App是GPS Tracker
在設定裡面可以選擇GPS的準確度及來源
依序為:
1.任意精確度、任意來源
2.精確度500m、任意來源
3.精確度200m、任意來源
4.精確度500m、GPS
5.精確度300m、GPS
6.精確度200m、GPS
7.精確度100m、GPS
8.精確度50m、GPS
9.精確度20m、GPS

這些設定讓我覺得程式似乎可以分辨GPS的定位來源
像我平常在辦公室(室內)一打開這個程式,它就告訴我目前的經緯度
但是精確度為1622m、來源為non-GPS

我不是開發者,沒有iPhone SDK,也不會用
只是想知道到底哪一個說法才是正確的

最後,想請問大大,為什麼你知道papago以精確度20m作為過濾的標準,而不是15m或30m
piano wrote:
長見識囉~原來SDK...(恕刪)


這是因為這個軟體自己定義偏移幾公尺是什麼來源, iPhone SDK 有告訴我們現在的定位精確度是偏移約幾公尺的範圍內, 但沒有說是什麼來源. 而通常超過500m 幾乎可以確定是non-gps, 所以這家開發商一定是自己定義說幾公尺是什麼來源讓用戶以為可以選擇. 他們定義的規則大概也是使用類似這樣的資料憑據 淺談行動定位技術的發展 這裡告訴你大約偏移多少的時候可能是用什麼方法來取得定位.
至於怎樣可以知道500m 任意來源還是 GPS, 真的我也不懂, 只能說他們比較厲害. 小弟技窮, 不知道他們怎能知道一樣500m 還可以知道是哪個來源....如果硬要做出來, 我能想到的或許就是把網路切掉就可以確定是純GPS...哈哈哈...

我也不知道 PAPAGO是不是用20m, 是我自己猜的, 因為20m 以上就很難做導航, 20m以上很有可能把使用者的位置放到別條路上, 即使有路網資料可以把使用者硬是拉到最接近的路上, 但是台灣很多路很近, 這個方法也不太有保障, 或許你會發現有時候導航機會把你的現在位置放在隔壁平行的那條路上而不是真的現在的路上, 就是因為偏移了太多. 再來就是 iPhone SDK 也很怪, 每次的偏移距離(100公尺以下的時候)大概都是 97m, 73m, 47m, 17m 等等的值, 很少有其它的數值, 所以我猜他們應該是設20m, 數據為什麼這麼怪就要問 Apple why?
關鍵在於

"GPS signal strength"

定義如下

extern const CLLocationAccuracy kCLLocationAccuracyBest;

extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters;

extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters;

extern const CLLocationAccuracy kCLLocationAccuracyKilometer;

extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers;


為何PAPAGO再靜止時開始移動
總是會噸一下才開始跟著移動

甚至在走路時時字路口等紅燈後再移動
都要走位到十公尺範圍後
PAPAGO“才醒來”跟著走

就是為了避免訊號誤判亂飄
偏移裕度增加到一定程度他才認為是真的正在“移動中”

這是一個折衷的做法
除非PAPAGO能開放設定導航敏感度設定與誤差範圍容忍度設定

不然就只能接受PAPAGO目前的設定



簡單範例


header


#import "FlipsideViewController.h"
#import "ParkPlaceMark.h"
#import <MapKit/MapKit.h>
#import <MapKit/MKReverseGeocoder.h>
#import <CoreLocation/CoreLocation.h>

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, MKMapViewDelegate, MKReverseGeocoderDelegate, CLLocationManagerDelegate> {
MKMapView *mapView;
MKPlacemark *mPlacemark;
CLLocationCoordinate2D location;
IBOutlet UIButton *mStoreLocationButton;

}

- (IBAction)showInfo;
- (IBAction)storeLocationInfo:(id) sender;

@end




code


#import "MainViewController.h"
#import "MainView.h"


@implementation MainViewController


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
mapView=[[MKMapView alloc] initWithFrame:self.view.frame];
//mapView.showsUserLocation=TRUE;
mapView.delegate=self;
[self.view insertSubview:mapView atIndex:0];


CLLocationManager *locationManager=[[CLLocationManager alloc] init];
locationManager.delegate=self;
locationManager.desiredAccuracy=kCLLocationAccuracyNearestTenMeters;

[locationManager startUpdatingLocation];

}


- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller {

[self dismissModalViewControllerAnimated:YES];
}


- (IBAction)showInfo {

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;

controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];

[controller release];
}

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}


- (void)dealloc {
[super dealloc];
}


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error{
}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark{
NSLog(@"Geocoder completed");
mPlacemark=placemark;
[mapView addAnnotation:placemark];
}

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
NSLog(@"This is called");
MKPinAnnotationView *test=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"parkingloc"];
if([annotation title]==@"Parked Location")
{
[test setPinColor:MKPinAnnotationColorPurple];
}
else
{
[test setPinColor:MKPinAnnotationColorGreen];
}
return test;
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
mStoreLocationButton.hidden=FALSE;
location=newLocation.coordinate;
//One location is obtained.. just zoom to that location

MKCoordinateRegion region;
region.center=location;
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta=.005;
span.longitudeDelta=.005;
region.span=span;

[mapView setRegion:region animated:TRUE];

}

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{
}

- (IBAction)storeLocationInfo:(id) sender{
//Either we can use geocoder to get a placemark or just create our own.
/*
MKReverseGeocoder *geocoder=[[MKReverseGeocoder alloc] initWithCoordinate:location];
geocoder.delegate=self;
[geocoder start];
*/
//Our own

ParkPlaceMark *placemark=[[ParkPlaceMark alloc] initWithCoordinate:location];
[mapView addAnnotation:placemark];
}


@end



不回應底下小留言、廢文及討戰文
法客 wrote:
為何PAPAGO再靜止時開始移動
總是會噸一下才開始跟著移動

甚至在走路時時字路口等紅燈後再移動
都要走位到十公尺範圍後
PAPAGO「才醒來」跟著走

就是為了避免訊號誤判亂飄
偏移裕度增加到一定程度他才認為是真的正在「移動中」

這是一個折衷的做法
除非PAPAGO能開放設定導航敏感度設定與誤差範圍容忍度設定

不然就只能接受PAPAGO目前的設定
...(恕刪)


昨天用走路方式測papago
就有發現此問題
甚至在偏移點停留很久。
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?