2010-07-28 13 views
1

Je cherche une solution très simple de la façon de récupérer des données GPS à partir du téléphone portable WM6. Je ne suis pas à la recherche d'une librairie GPS (Google semble trouver UNIQUEMENT des libs GPS ...). J'apprécierais juste un morceau de code qui fait exactement ceci: commencer gps, récupérer long et lat, fin gps. Rien de plus. Je suppose qu'avec .NET Compact Framework, je vais devoir utiliser P/Invoke.
Des idées? Merci beaucoup.Recherche de l'emplacement GPS (seulement long. & Lat.) Du téléphone WM6 utilisant .NET CF

Répondre

1

Vous dites que vous n'êtes pas à la recherche d'une bibliothèque GPS Wrapper, mais que vous souhaitez interroger le GPS. La façon la plus simple de le faire est d'utiliser la bibliothèque intermédiaire GPS, qui est un pilote d'interface de flux. Appel à partir du code managé nécessite une forme de wrapper qui effectue les appels P/Invoke. Que vous écriviez cela ou que vous utilisiez celui qui existe déjà, c'est à vous de décider, mais vous allez utiliser un wrapper indépendamment.

Pour ouvrir simplement le GPS, obtenir une position et fermez va être un ensemble de trois appels: GpsOpenDevice, GpsGetPosition et GpsCloseDevice, mais après avoir appelé GpsOpenDevice vous avez vraiment besoin de savoir quand le pilote est initialisé avant d'appeler GPSRécupèrePosition , donc vous devez probablement aussi appeler GpsGetDeviceState pour savoir quand il est prêt. Comme vous n'avez pas besoin de notifications, l'appel à GpsOpenDevice est simple - il suffit de passer des zéros (ou IntPtr.Zero en fonction de la façon dont vous définissez votre méthode P/Invoke) pour tous les paramètres. GpsGetPosition prend un pointeur sur une structure GPS_POSITION.

C'est un peu une bête laide, mais pas trop grave, car il n'y a pas de pointeur à attribuer et le FC Marshaler, avec un peu d'aide, peut le faire assez facilement.

Je ne vais pas écrire ce code ici car il est long, plus il est déjà fait dans l'application d'exemple GPS que Microsoft fournit avec les SDK WinMo (regardez sur votre disque dur au %PROGRAM FILES%\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS).