ArcGIS Runtime for IOS 幾何對象與json的互相轉換

來源:互聯網
上載者:User

    使用者通過用戶端繪製的幾何對象在有的應用情境下可能需要儲存起來以便後期使用,那麼你可以考慮將幾何對象轉換為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([type
isEqual:@"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,[name
cStringUsingEncoding:1] , -1,
SQLITE_TRANSIENT);

具體的sqllite可以查詢其他相關資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.