1. 程式人生 > >Android GIS開發系列-- 入門季(8) Json與Geometry的相互轉換

Android GIS開發系列-- 入門季(8) Json與Geometry的相互轉換

相互轉換 them 實用 興趣 parse 執行 pretty pre andro

在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數組等等,有興趣的小夥伴可以研究研究。





Android GIS開發系列-- 入門季(8) Json與Geometry的相互轉換