在Android中json數據十分普遍,也很實用,在Arcgis中也同樣支持Json數據,Json與Geometry可以相互轉換,達到我們想要的數據。
一、Geometry轉換成Json數據
這個實現十分簡單,比如我們將一個點轉換為Json,這時也同樣用到GeometryEngine這個強大的類。
Point point = new Point(113, 23); String json = GeometryEngine.geometryToJson(SpatialReference.create(SpatialReference.WKID_WGS84), point); Log.w("TAG", "json===" + json);
打印Log的結果為json==={"x":113.0,"y":23.0,"spatialReference":{"wkid":4326}}
,是不是很簡單。
二、Json轉換為Geometry
同樣用到GeometryEngine類中的jsonToGeometry方法,我們將上面的json再轉換回去。
try {
String jsonStr = "{\"x\":113.0,\"y\":23.0,\"spatialReference\":{\"wkid\":4326}}"; JsonFactory jsonFactory = new JsonFactory(); JsonParser jsonParser = jsonFactory.createJsonParser(jsonStr); MapGeometry mapGeometry = GeometryEngine.jsonToGeometry(jsonParser); Point mPoint = (Point) mapGeometry.getGeometry(); Log.i("TAG","mPoint---"+mPoint.getX()+"==="+mPoint.getY()); } catch (IOException e) { e.printStackTrace(); }
代碼執行結果mPoint---113.0===23.0
。注:jsonFactory.createJsonParser這個方法可帶入的參數也是比較多的,比如:file、outputStream、byte數組等等,有興趣的小伙伴可以研究研究。