使用MS Band生成路径

本文关键字:路径 Band MS 使用 | 更新日期: 2023-09-27 18:29:57

:)

我目前正在使用连接到UWP应用程序的微软Band 2进行我的项目,该应用程序是用C#编写的。在该项目的某些部分中,系统以平面图的比例显示了从用户的当前点(佩戴Microsoft Band的用户)到目的地的路径(系统可以告诉你需要去哪个楼层)。

我面临的问题是:

  1. 如何从乐队获得当前位置?或者还有另一个从频带(如MS Health)获得此信息的可能性或渠道
  2. 由于谷歌地图提供了平面图和行进方向(路线生成器),我可以通过什么方式发送检索到的位置,并从我的UWP应用程序中获取生成的路径
  3. 是我在第二节试着做的事。可以通过使用Bing地图作为我的地图提供商来实现吗

无论如何,感谢您在这里提出的所有建议。:)

使用MS Band生成路径

我实际上为原始乐队构建了一个原型导航应用程序。以下是我遇到同样问题时的发现:

  1. 乐队不会通过API公开自己的位置。GPS会消耗大量电池电量。使用GPS的几个应用程序会在几个小时内耗尽电池电量,这会给用户带来更大的问题。解决这个问题的方法是在用户的移动设备上运行一个配套应用程序,并使用它的GPS。这就是我在我的应用程序中所做的,它运行得很好
  2. Bing地图实际上比谷歌地图有更详细的平面图,称为场地地图。你可能想看看它们。然而,我认为他们还没有通过UAP应用程序暴露出来。https://www.bingmapsportal.com/ISDK/AjaxV7#VenueMapsModule3谷歌地图可能不是一个选择,因为我不相信他们会通过公共服务公开他们的平面图数据。此外,确定用户在哪个楼层将非常困难。你可以近似,但你会在这里遇到错误
  3. 混合使用谷歌和必应的地图数据违反了这两个平台的使用条款

关于问题#1,Band SDK没有暴露Band的GPS传感器。但是,可以在运行应用程序的手机上使用GPS传感器。由于手机和Band位于同一位置——我假设用户拿着手机是为了查看生成的方向——手机的GPS传感器应该足够(无论如何都会节省Band的电池寿命)。

我不太熟悉谷歌或必应地图的API,所以我不能回答问题#2和#3。

尽管Band内置GPS,但Band SDK无法通过GPS获取位置。最好使用手机的GPS,因为它锁定速度更快,因此需要更少的能量。要运行你的应用程序并访问你的乐队,手机无论如何都需要在乐队的范围内,所以这应该是可能的,对吧?

另外两点:我建议您使用Windows MapControl,因为它也可以离线工作,并集成到UWP框架中。如果你问我的话,没有必要使用谷歌服务。

首先,我想你需要用许多多边形来显示你的平面图。一定要使用10586 SDK,因为它还允许你在多边形上画洞——以防你有这样的房间等。

要获得两点之间的方向,可以使用以下代码(来源):

BasicGeoposition startLocation = new BasicGeoposition() {Latitude=47.643,Longitude=-122.131};
// End at the city of Seattle, Washington.
BasicGeoposition endLocation = new BasicGeoposition() {Latitude = 47.604,Longitude= -122.329};
// Get the route between the points.
MapRouteFinderResult routeResult =
     await MapRouteFinder.GetDrivingRouteAsync(
     new Geopoint(startLocation),
     new Geopoint(endLocation),
     MapRouteOptimization.Time,
     MapRouteRestrictions.None);
if (routeResult.Status == MapRouteFinderStatus.Success)
{
    DrawPathOnMapControl(routeResult.Route.Legs);
}

DrawPathOnMapControl方法中,可以使用给定的腿在地图上绘制多段线。