我目前正在使用Swift 4创建一个iOS应用。我正在使用Firebase
进行数据存储。
我正在试图找出处理GIS的最佳方法。
基本上,用户将记录一个活动,该活动将包含许多路点,这些路点将共同使活动折线。
我了解 Strava (一种受欢迎的活动跟踪应用)正在使用 OpenStreetMap ,但使用自定义路由引擎。
我不需要路由代理,但我需要能够计算距离,移动时间,提升收益,确定活动所在的位置/区域等。
首先关闭。我正在使用firebase存储所有活动数据和图像等。但是,它是否也适合处理GPS数据?
首先,我需要存储活动的所有航路点。以下是我认为可行的结构。我假设我需要一个时间戳,以便航点可以按正确的顺序对它们进行排序?或者有更好的方法来解决这个问题吗?
activity_id (auto generates unique id)
activityName: "an activity name"
waypoints
waypoint_id (auto generates unique id)
timestamp:
lat: "latitude"
lon: "longitude"
waypoint_id (auto generates unique id)
timestamp:
lat: "latitude"
lon: "longitude"
activity_id (auto generates unique id)
activityName: "an activity name"
waypoints
waypoint_id (auto generates unique id)
timestamp:
lat: "latitude"
lon: "longitude"
waypoint_id (auto generates unique id)
timestamp:
lat: "latitude"
lon: "longitude"
基于此帖How to save tracking polylines in database?
的信息构建的数据结构鉴于此数据结构非常有效,Firebase是存储的理想替代方案。
对不起。这是一个很大的问题。希望你能帮助我指出正确的方向。
在等待一些回应时,我已经做了一些进一步的挖掘。
日期和时间格式似乎通常使用标准ISO 8601,Apple支持此格式ISO 8601dateformatter
可以使用Google编码的折线算法格式存储折线,以减少存储空间和成本Google polyline algorithm format我发现了polyline decoder / encoder in Swift 4