我正在Swift中开发一个iOS应用程序,它从远程HTTP服务器获取一些数据并在地图上显示一些功能。由于这些功能不会频繁更改,我认为保留数据的本地缓存(即使在离线情况下也可以显示)并且只在后台更新它是个不错的主意。 我正在使用MapKit来显示地图,并将数据提取为JSON。将MKPolygon存储在Realm数据库中
我以为这个本地缓存使用Realm(如果他们更适合这种情况,请随时提出任何其他解决方案和/或方法)。
我从服务器获取的数据是GeoJSON的和Feature
几何形状看起来像这样:
{
"type" : "Feature",
"geometry" :
{
"type" : "Polygon",
"coordinates" :
[
[
[15.7008834173655, 34.4622385876223],
[15.7453028366596, 34.4356537554745],
[15.7759359455856, 34.3953785537464],
//....
]
]
}
{
每Area
界多边形通常有几百点。
我需要缓存的模型对象可能是这个样子:
class Area: Object {
dynamic var name: String = ""
dynamic var description: String?
var boundary: MKPolygon! //as a MKPolygon to be drawn on map
//OR:
var boundary: [CLLocationCoordinate2D] = [] //as an array of coordinate structs
//OR:
var boundary: [[Double]] = [] //as a 2D array of coordinates (as in geoJSON)
//OR (only working solution):
var geoJSON: String = "" //store the geoJSON data directly as String
}
的boundary
财产将被用来绘制Area
地图作为MKPolygon上。
的显然只以上的存储GeoJSON的数据的例子可与境界,但我想知道什么“正确的方式去做”是。我喜欢Realm易用性,但我认为将所有内容存储为Realm Objects并不是一个好主意,因为这意味着要创建大量的Point
对象来绘制单个多边形。
谢谢,任何建议,欢迎