2016-05-18 3 views
-1

Ich habe Windows 10 Tablette mit "Broadcom GNSS 4752 Geolocation Sensor" unter Sensoren Knoten im Geräte-Manager angezeigt. Ich muss eine Verbindung zu diesem Sensor herstellen, um den Standort zu lesen, und dann Breiten- und Längengrad daraus extrahieren. Wie kann ich das mit C# erreichen?Lesen von "Broadcom GNSS 4752 Geolocation Sensor" mit C#

Antwort

0

Überprüfen Sie die UWP-Proben auf GitHub. Es gibt eine Geolocator sample, die GPS verwendet, um Ihren Standort zu finden. Es sieht so aus, als ob die Methode Geolocator.GetGeopositionAsync() diejenige ist, die Sie verwenden sollten, um lat/long zu erhalten.

+0

Nein Ich weiß das, aber ich muss mit einem Sensor auf einem Tablet mit Windows 10 nicht WinRT verbinden. Geolocator funktioniert gut auf WinRT-Geräten wie Handys und Tablets. Aber nicht auf Win32 wie PCs, Laptops und einige Arten von Tablet. –

+0

Windows 10 verwendet viele der gleichen APIs wie RT. Ob es sich um einen PC oder Laptop oder ein mobiles Gerät handelt, ist unerheblich - wenn Sie ein angeschlossenes GPS-Gerät haben, das von Windows 10 als solches erkannt wird, sollten die APIs funktionieren, auf die im Beispiel verwiesen wird. Verwechseln Sie auch nicht Windows 10 mit Win32. –

+0

Ich erinnere mich, dass ich Location-APIs für Windows ausprobiert habe, während ich Windows 8.1-Apps entwickelte, aber es wurde nicht vom GPS-Gerät abgerufen. Es wurde Ort von WLAN und Mobilfunk Daten. –

1

Sie können Windows.Devices.Geolocation API für Desktop-Anwendung verwenden.

Es funktioniert auf Windows 8/8.1/10 mit installierter Plattformlokalisierung.

Um Namespace zuzugreifen Windows.​Devices.​Geolocation Sie Zielplattform Version festlegen können von Ihnen 4.5.1-8.1 und Zielframework .NET-Projekt. Sie können dies tun, indem Sie die Datei .csproj bearbeiten.

Beispiel Teil file.csproj mit dieser Information über Zielplattform.

<ProjectGuid>{D29050E9-B447-43DE-BA11-0CA8F402200D}</ProjectGuid> 
<OutputType>Exe</OutputType> 
<AppDesignerFolder>Properties</AppDesignerFolder> 
<RootNamespace>ConsoleApplication1</RootNamespace> 
<AssemblyName>ConsoleApplication1</AssemblyName> 
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 
<TargetPlatformVersion>8.1</TargetPlatformVersion> 
<FileAlignment>512</FileAlignment> 

Wenn die Projektdatei aktualisiert haben, können Sie Verweis auf die Assembly hinzufügen. Sie sollten auch einen Verweis auf hinzufügen.

Beispielcode, wie Position sammeln:

static void Main(string[] args) 
{ 
    myGeolocator = new Geolocator() { DesiredAccuracy = PositionAccuracy.High }; 
    var geopositionAsyncResult = myGeolocator.GetGeopositionAsync(); 
    geopositionAsyncResult.Completed = GetGeopositionCompleted; 
    Console.ReadKey(); 
} 

private static void GetGeopositionCompleted(IAsyncOperation<Geoposition> asyncInfo, AsyncStatus asyncStatus) 
{ 
    switch (asyncStatus) 
    { 
     case AsyncStatus.Completed: 
      var result = asyncInfo.GetResults(); 
      var possition = result.Coordinate.Point.Position; 
      Console.WriteLine(String.Format("Latitude = {0} Longitude = {1}", possition.Latitude, possition.Longitude)); 
      break; 
     default: 
      Console.WriteLine(myGeolocator.LocationStatus.ToString()); 
      break; 
    } 
} 

Um müssen Sie Gebrauch Geolocation zuzugreifen: Zugang zur Privatsphäre Benutzereinstellungen Fenster - Lage Set Zugang in der Systemsteuerung - Lokalisierung