我正在使用 xamarin native 开发一个应用程序,它将是跨平台的,并且将具有原生地图(用于uwp的uwp bing map,用于android的google map api,用于ios的相同)。 它将具有用户在地图上的实时位置,(如超级)。群组中的多个用户在移动时可以在地图上看到彼此的实时位置。他们中的一些人可能有iphone,有些人会有android,有些可能有windows手机。因此,无论设备如何,它们都必须具有相同的经验。
所以我的问题是如何将每个设备上的地图同步到一起,以使此功能正常工作,还是我可以在所有3个平台上仅使用谷歌地图?
提前致谢
答案 0 :(得分:2)
自从我之前编写了一个跟踪应用程序之后,一个英里高的视图,是的,基于意见:
将用户/设备分配给跟踪组
让每个用户/设备将其持续更新的位置发布到远程"实时数据库"
数据库向该跟踪组中的所有其他订阅用户发布更改
当应用程序通过订阅,推送通知,客户端轮询(错误...)收到这些更改时,您使用新位置更新地图...
注意:后端"数据库"可以是很多东西的组合,我不一定会谈论传统的SQL框,而是基于云的管道。
发布/订阅No-Sql数据库(如Google的Firebase数据库)是此用例的理想选择,因为您可以根据需要维护历史记录,将用户分配到组,它是基于JSON的,因此客户端集成是很简单,您可以通过功能(非基于服务器)将移动推送通知集成到没有运行应用程序的用户等等。这使得托管/云端/后端设计变得简单。
您提到了Azure,因此您应该查看" Azure Service Bus"因为它支持发布/订阅模式中的一对多。它不是默认存储历史记录,但您可以拥有一个全局订阅者,它是一个基于云的代理(相对于客户端/设备),可以根据需要对位置更改做出反应,将其记录到数据库(SQL或NoSql) - 取决于地点变化的数量等...)。
不推广Google产品,但他们现在有一个"运输跟踪解决方案"大约一个月前出现的将整个用例打包成产品的,它需要一个Google Map Premium Plan($$$)。您应该尽可能快地查看他们的Google开发者YouTube视频和该产品指南。" gleam"很多关于他们如何做的信息以及你可能没想到的项目应该是......