阅读" Broadcom GNSS 4752地理定位传感器"用C#

时间:2016-05-18 15:39:21

标签: c# windows gps geolocation

我有Windows 10平板电脑" Broadcom GNSS 4752地理位置传感器"显示在设备管理器中的传感器节点下。我需要连接到此传感器并获取位置读数,然后从中提取纬度和经度点。如何使用C#实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以将Windows.Devices.Geolocation API用于桌面应用程序。

适用于已安装平台本地化的Windows 8 / 8.1 / 10。

要访问命名空间Windows.​Devices.​Geolocation,您可以将项目的目标平台版本设置为8.1,将框架.net设置为4.5.1。 您可以通过编辑.csproj文件来完成此操作。

示例部分file.csproj,其中包含有关目标平台的信息。

<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>

  

何时更新项目文件,您可以添加对程序集的引用。 您还应该添加对System.Runtime.WindowsRuntime.dll的引用。

示例代码如何收集位置:

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;
    }
}

要访问使用地理位置,您必须: 设置访问Windows用户设置隐私 - 位置 在控制面板中设置访问权限 - 本地化

答案 1 :(得分:0)

在GitHub上查看UWP样本。有Geolocator sample使用GPS查找您的位置。看起来Geolocator.GetGeopositionAsync()方法是您想要用于获取纬度/经度的方法。