ArcGIS Android應用用戶端載入JSON格式業務資料

來源:互聯網
上載者:User
1  概述

有時我們需要將業務資料存放區在行動裝置上,以確保在離線狀態下也可以訪問。離線儲存的方式有多種,本文就為大家介紹通過JSON檔案儲存體業務資料,然後在Android用戶端實現資料的讀取和繪製。

2  準備JSON檔案

首先需要準備JSON檔案,本例中我已經將業務資料發布在地圖服務中,所以通過ArcGIS REST服務的要素查詢方式獲得JSON格式的資料。

是測試用的服務圖層:


在“Beijing”這個地圖服務中的“教育科研_point_wm”圖層頁面底部找到“Query”按鈕,如:


點擊Query按鈕,進入要素查詢頁面,如:


這裡可以根據需要設定查詢過濾條件,本文設定了恒等條件“1=1”,即擷取全部要素,輸出欄位設定為全部欄位,返回要素幾何體,此外需要設定返回結果的格式為json,如:


設定好查詢條件和返回參數後,點擊其中一個Query按鈕,即可獲得滿足條件的JSON格式的要素集,如:


將全部內容複寫,建立一個新的文字檔並黏貼這些內容,將檔案儲存為features.json格式,如:


至此JSON檔案的業務資料就準備好了,將其傳到Android手機或平板裝置上以供讀取。

3 Android用戶端讀取

由於ArcGIS Android SDK提供了現場的調用介面,用戶端只需要幾行代碼即可載入JSON檔案,並以Graphic繪製出來。關鍵代碼如下:

JsonFactory factory = new JsonFactory();URI uri = new URI("file:///mnt/sdcard/Basemap/Beijing/POI/features2.json");File file = new File(uri);JsonParser jsonParser = factory.createJsonParser(new FileInputStream(file));FeatureSet features = FeatureSet.fromJson(jsonParser); Graphic[] graphics = features.getGraphics();GraphicsLayer poi = new GraphicsLayer();SimpleMarkerSymbol sym = new SimpleMarkerSymbol(Color.BLUE, 8, SimpleMarkerSymbol.STYLE.CIRCLE);SimpleRenderer renderer = new SimpleRenderer(sym);poi.setRenderer(renderer);poi.addGraphics(graphics);map.addLayer(poi);

通過以上代碼,應該就可以載入JSON檔案中的要素集到GraphicsLayer中了,但是實際運行中卻報錯如下:

分析發現,原來是編碼格式問題,需要將JSON檔案儲存為UTF-8格式,所以將features.json另存一下即可,如:


另存後,再傳到手機或平板電腦上,再測試,效果如下:


圖上的藍色點即是載入的JSON格式的業務資料,可以用來做後續更多的查詢分析等操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.