使用文件路径初始化地理数据库的对象返回“找不到文件
initiaize object of AGSGeodatabase with file path is returning "File not found
我想 post 在 esri 社区上提出这个问题,但我无法在那里登录。
我创建了离线地理数据库并将其中的图层显示到地图上。
我的问题是当我第一次下载 geoDatabse 并显示其中的数据工作正常时。
但是当我重新启动应用程序并从路径创建 AGSGeodatabase 对象时,"self.generatedGeodatabase.load" 函数给出错误
Error Domain=com.esri.arcgis.runtime.error Code=14 "File not found" UserInfo={NSLocalizedFailureReason=, NSLocalizedDescription=File not found, Additional Message=}
我创建的 url 是:-
file:///var/mobile/Containers/Data/Application/60CF7AE1-2DE1-4FA0-805A-6140D4829E89/Documents/GeoDatabase/2018-05-134T18:29:01+0530.geodatabase
我创建的对象是这样的:-
if let geoDatabasePath = URL(string: SettingsManager.geoDatabasePath) {
self.generatedGeodatabase = AGSGeodatabase(fileURL: geoDatabasePath)
self.displayLayersFromGeodatabase()
}
此函数运行时出现错误:-
self.generatedGeodatabase.load(completion: { [weak self] (error:Error?) -> Void in
if let error = error {
print(error)
}
})
以前我只是将 geoDatabse 的路径保存到首选项(在创建 geoDatabse 时),当我重新启动应用程序时,即使文件在那里,应用程序也没有检测到该位置的 geoDatabse。
这个问题的解决方案我发现是在运行时检测geoDatabse路径并使用FileManager创建路径。然后就可以了。
我想 post 在 esri 社区上提出这个问题,但我无法在那里登录。
我创建了离线地理数据库并将其中的图层显示到地图上。
我的问题是当我第一次下载 geoDatabse 并显示其中的数据工作正常时。 但是当我重新启动应用程序并从路径创建 AGSGeodatabase 对象时,"self.generatedGeodatabase.load" 函数给出错误
Error Domain=com.esri.arcgis.runtime.error Code=14 "File not found" UserInfo={NSLocalizedFailureReason=, NSLocalizedDescription=File not found, Additional Message=}
我创建的 url 是:-
file:///var/mobile/Containers/Data/Application/60CF7AE1-2DE1-4FA0-805A-6140D4829E89/Documents/GeoDatabase/2018-05-134T18:29:01+0530.geodatabase
我创建的对象是这样的:-
if let geoDatabasePath = URL(string: SettingsManager.geoDatabasePath) {
self.generatedGeodatabase = AGSGeodatabase(fileURL: geoDatabasePath)
self.displayLayersFromGeodatabase()
}
此函数运行时出现错误:-
self.generatedGeodatabase.load(completion: { [weak self] (error:Error?) -> Void in
if let error = error {
print(error)
}
})
以前我只是将 geoDatabse 的路径保存到首选项(在创建 geoDatabse 时),当我重新启动应用程序时,即使文件在那里,应用程序也没有检测到该位置的 geoDatabse。
这个问题的解决方案我发现是在运行时检测geoDatabse路径并使用FileManager创建路径。然后就可以了。