在 xamarin 上跨平台同步地图
syncing maps cross platform on xamarin
我正在使用 xamarin native 开发一个应用程序,它将是跨平台的,并且会有原生地图(uwp bing 地图用于 uwp,google 映射 api 为 android ,与 ios 相同)。
它将具有的特征是 用户在地图上的实时位置 ,(例如 uber )。一组中的多个用户在移动时将能够在地图上看到彼此的实时位置。其中一些可能有 iphone,一些可能有 android,有些可能有 windows phone。因此,无论设备如何,显然他们必须具有相同的体验。
So my question is how can I sync maps on each device together, for this feature to work properly, or can I use only google maps on all 3 platforms?
在此先感谢
一英里高的视野,是的,基于我以前写过这样的跟踪应用程序以来的意见:
分配 users/devices 到跟踪组
让每个 user/device post 不断更新位置到远程 "realtime database"
数据库向该跟踪组中的所有其他订阅用户发布更改
由于应用程序通过订阅、推送通知、客户端轮询(糟糕...)接收到这些更改,因此您使用新位置更新地图...
注意:后端 "Database" 可以是许多东西的组合,我说的不一定是传统的 SQL 框,而是基于云的管道。
发布/订阅无-Sql 数据库,如 Google 的 Firebase 数据库非常适合此用例,因为您可以根据需要维护历史记录,将用户分配给组,它是基于 JSON 的,因此客户端集成很容易,您可以通过功能(非基于服务器)为没有应用程序 运行 的用户将其与移动推送通知集成,等等。 . 这使得 hosted/cloud/backend 设计简单。
您提到了 Azure,因此您应该查看 "Azure Service Bus",因为它支持 publish/subscribe 模式中的一对多。默认情况下它不存储历史记录,但您可以拥有一个全球订阅者,它是一个基于云的代理(相对于 client/device),如果需要,它可以对位置变化做出反应,让它将位置记录到数据库中(SQL 或 NoSql-based,取决于位置变化的数量等...)。
不推广 Google 产品,但他们现在有一个 "Transport Tracker Solution" 大约一个月前推出,将整个用例打包到一个产品中,它需要 Google 地图高级计划($$$)。您应该查看他们的 Google 该产品的开发者 YouTube 视频和指南 "gleam" 很多关于他们如何做的信息以及您可能没有想到的项目,应该是...
我正在使用 xamarin native 开发一个应用程序,它将是跨平台的,并且会有原生地图(uwp bing 地图用于 uwp,google 映射 api 为 android ,与 ios 相同)。 它将具有的特征是 用户在地图上的实时位置 ,(例如 uber )。一组中的多个用户在移动时将能够在地图上看到彼此的实时位置。其中一些可能有 iphone,一些可能有 android,有些可能有 windows phone。因此,无论设备如何,显然他们必须具有相同的体验。
So my question is how can I sync maps on each device together, for this feature to work properly, or can I use only google maps on all 3 platforms?
在此先感谢
一英里高的视野,是的,基于我以前写过这样的跟踪应用程序以来的意见:
分配 users/devices 到跟踪组
让每个 user/device post 不断更新位置到远程 "realtime database"
数据库向该跟踪组中的所有其他订阅用户发布更改
由于应用程序通过订阅、推送通知、客户端轮询(糟糕...)接收到这些更改,因此您使用新位置更新地图...
注意:后端 "Database" 可以是许多东西的组合,我说的不一定是传统的 SQL 框,而是基于云的管道。
发布/订阅无-Sql 数据库,如 Google 的 Firebase 数据库非常适合此用例,因为您可以根据需要维护历史记录,将用户分配给组,它是基于 JSON 的,因此客户端集成很容易,您可以通过功能(非基于服务器)为没有应用程序 运行 的用户将其与移动推送通知集成,等等。 . 这使得 hosted/cloud/backend 设计简单。
您提到了 Azure,因此您应该查看 "Azure Service Bus",因为它支持 publish/subscribe 模式中的一对多。默认情况下它不存储历史记录,但您可以拥有一个全球订阅者,它是一个基于云的代理(相对于 client/device),如果需要,它可以对位置变化做出反应,让它将位置记录到数据库中(SQL 或 NoSql-based,取决于位置变化的数量等...)。
不推广 Google 产品,但他们现在有一个 "Transport Tracker Solution" 大约一个月前推出,将整个用例打包到一个产品中,它需要 Google 地图高级计划($$$)。您应该查看他们的 Google 该产品的开发者 YouTube 视频和指南 "gleam" 很多关于他们如何做的信息以及您可能没有想到的项目,应该是...