代码之家  ›  专栏  ›  技术社区  ›  Muhammad Touseef

在xamarin上跨平台同步地图

  •  -2
  • Muhammad Touseef  · 技术社区  · 7 年前

    我正在开发一个应用程序,使用 xamarin天然 它将具有的功能是 用户在地图上的实时位置 ,(如 优步 ). 群中的多个用户在移动时将能够在地图上看到彼此的实时位置。他们中的一些人可能有iphone,一些人有android,一些人可能有windows phone。因此,显然,无论使用何种设备,它们都必须有相同的体验。

    所以我的问题是,我该如何将每台设备上的地图同步在一起,才能使这项功能正常工作,还是只能在所有3个平台上使用谷歌地图?

    1 回复  |  直到 7 年前
        1
  •  2
  •   SushiHangover    7 年前

    一英里高的视图,是的,基于观点,因为我以前写过这样一个跟踪应用程序:

    • 让每个用户/设备将其不断更新的位置发布到远程“实时数据库”

    • 数据库将更改发布到该跟踪组中的所有其他订阅用户

    • 由于应用程序通过订阅、推送通知、客户端轮询(错误…)接收到这些更改,你用他们的新位置更新地图。。。

    注意:后端“数据库”可以是许多东西的组合,我不一定要谈论传统的SQL盒,而是一个基于云的管道。

    • 发布/订阅非Sql数据库(如谷歌Firebase数据库)非常适合此用例,因为您可以在需要时维护历史记录,将用户分配到组,它基于JSON,因此客户端集成很容易,您可以通过功能(非基于服务器)将其与移动推送通知集成,以供未运行应用程序的用户使用,等等。。这使得托管/云/后端设计变得简单。

    • 你提到了Azure,所以你应该回顾一下“Azure服务总线”,因为它在发布/订阅模式中支持一对多。默认情况下,它不存储历史记录,但您可以拥有一个全局订阅者,该订阅者是一个基于云的代理(与客户端/设备相比),可以在需要时对位置更改做出反应,并将位置记录到数据库中(基于SQL或NoSql,取决于位置更改量等)。

    虽然没有推广谷歌产品,但他们现在有了一个月左右推出的“运输跟踪器解决方案”,将整个用例打包到一个产品中,这需要谷歌地图高级计划($$$)。你应该查看他们的谷歌开发者YouTube视频和该产品的指南,因为你可以“收集”很多关于他们如何做的信息,以及你可能没有想到的项目,应该是。。。