我正在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
對象來繪製單個多邊形。
謝謝,任何建議,歡迎