ArcGIS Runtime for IOS 几何对象与json的互相转换
来源:互联网 发布:js 定义utf16 编辑:程序博客网 时间:2024/05/16 11:30
用户通过客户端绘制的几何对象在有的应用场景下可能需要保存起来以便后期使用,那么你可以考虑将几何对象转换为json然后保持到sqllite数据库中,后期需要时候的时候在通过解析json对象的方式返回几何对象给操作者,需要注意的是在本例中,在存储几何对象的同时也存储了该对象的类型为后期json解析为几何对象奠定基础。废话不多少,核心代码如下:
.h头文件中的定义如下:
#import <Foundation/Foundation.h>
#import <ArcGIS/ArcGIS.h>
@interface ConvterGeometryJson : NSObject
- (NSString*) GeometryToJson:(AGSGeometry*)geometry;
-(AGSGeometry*)JsonToGeometry:(NSString*)json geometype:(NSString*)type;
@end
.m文件实现如下:
#import "ConvterGeometryJson.h"
@implementation ConvterGeometryJson
-(NSString*)GeometryToJson:(AGSGeometry *)geometry
{
if (geometry==nil) {
return nil;
}
else
{
NSDictionary *json = [geometry encodeToJSON];
NSString* jsonString = [json ags_JSONRepresentation];
return jsonString;
}
}
-(AGSGeometry*)JsonToGeometry:(NSString *)json geometype:(NSString *)type{
NSDictionary* jsondic = [json ags_JSONValue];
AGSGeometry *geo;
if ([type isEqual:@"Point"]) {
geo=[[AGSPoint alloc]initWithJSON:jsondic];
} else if([typeisEqual:@"Polyline"])
{
geo=[[AGSPolyline alloc]initWithJSON:jsondic];
}
else
{
geo=[[AGSPolygon alloc]initWithJSON:jsondic];
}
NSLog(@"%@",jsondic);
return geo;
}
@end
通过以上方法就完成了空间几何对象和json字符串的互相转换工作。另外需要注意的是在使用sqllite把转换的几何对象字符串写入数据库对应字段的过程中可能会遇到特殊字符的问题导致sql语句出现不可预知的错误,可以考虑通过如下方法解决:
sqlite3_bind_text(statement, 1,[namecStringUsingEncoding:1] , -1,SQLITE_TRANSIENT);
具体的sqllite可以查询其他相关资料
- ArcGIS Runtime for IOS 几何对象与json的互相转换
- ArcGIS Runtime SDK for iOS(五) --- 空间几何分析与操作(上)
- ArcGIS Runtime SDK for iOS(六) --- 空间几何分析与操作(中)
- ArcGIS API for iOS 中的几何对象
- Html5中JSON对象与String的互相转换
- 基于jackson的json与对象互相转换
- Java对象和集合与Json之间的互相转换
- 关于json对象与字符串的互相转换
- 30.Json与java对象之间的互相转换
- iOS 中字典与json格式的互相转换
- [转]iOS 中字典与json格式的互相转换
- iOS 中字典与json格式的互相转换
- json与Bean对象互相转换
- json字符串与java对象互相转换
- C# 对象与JSON串互相转换
- Json字符串与Java对象互相转换
- C# 对象与JSON串互相转换
- C# 对象与JSON串互相转换
- ImageView适配器点击效果失效 解决方法
- 栈验证表达式中的括号是否匹配
- android 开发手记 activity 之间数据的传递 intent 对象的使用
- cc、gcc、g++、CC的区别概括
- 知名网站分享:PHP代替Perl,Redis置换MySQL,日处理过亿PV
- ArcGIS Runtime for IOS 几何对象与json的互相转换
- UVa156 Ananagrams
- PhoneGap Js 自动扩展输入框
- ZOJ 2836 容斥原理
- Unmarshaller异常javax.xml.bind.UnmarshalException: unexpected element处理方法
- The connection to adb is down, and a severe error has occured解决方案
- R中某些包安装出错的处理
- JsonUtils工具类
- strrchr()