Android GIS開發系列-- 入門季(13)Gdal簡單寫個shp檔案

來源:互聯網
上載者:User

標籤:tin   mtr   失敗   null   簡單   reg   sso   屬性   class   

Gdal是用來讀寫柵格與向量資料的,在Gdal官網,可以下載相關的資源進行平台的編譯。其實Arcgis底層也是用Gdal來讀取shp檔案的,那在Android中可以直接讀寫shp檔案嗎,是可以的。這裡已經有人編譯了Android端的so ,。也可以自己嘗試編譯相關so。

建立項目,將下載的so 與相關資源匯入,相關目錄結構如下:

注意gdal的相關包名不要修改,避免so讀取不到相應的類。
簡單寫個shp,注意導包,要匯入org.gdal下面相關的類:

private void writeShp() throws UnsupportedEncodingException {        //存放路徑        String shpPath = basePath + "/my_line.shp";        ogr.RegisterAll();        gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");        // 不支援中文        gdal.SetConfigOption("SHAPE_ENCODING", "");        String strDriverName = "ESRI Shapefile";        org.gdal.ogr.Driver oDriver = ogr.GetDriverByName(strDriverName);        if (oDriver == null) {            System.out.println(" 驅動不可用!\n");            return;        }        // 建立資料來源        DataSource oDS = oDriver.CreateDataSource(shpPath, null);        if (oDS == null) {            return;        }        // 建立一個84座標系的圖層        org.gdal.osr.SpatialReference sap = new org.gdal.osr.SpatialReference();        sap.SetWellKnownGeogCS("WGS84");        Layer oLayer = oDS                .CreateLayer("TestPolygon", sap, ogr.wkbPolygon, null);        if (oLayer == null) {            System.out.println("圖層建立失敗!\n");            return;        }        // 下面建立屬性工作表        // 先建立一個叫FieldID的整型屬性        FieldDefn oFieldID = new FieldDefn("ID", ogr.OFTInteger);        oLayer.CreateField(oFieldID, 1);        // 再建立一個叫FeatureName的字元型屬性,字元長度為50        FieldDefn oFieldName = new FieldDefn("name", ogr.OFTString);        oFieldName.SetWidth(100);        oLayer.CreateField(oFieldName, 1);        FeatureDefn oDefn = oLayer.GetLayerDefn();        // 建立要素        Feature oFeatureTriangle = new Feature(oDefn);        oFeatureTriangle.SetField(0, 0);        oFeatureTriangle.SetField(1, "test");        Geometry geomTriangle = Geometry                .CreateFromWkt("POLYGON ((112 45,112 30,140 30))");        oFeatureTriangle.SetGeometry(geomTriangle);        oLayer.CreateFeature(oFeatureTriangle);        //同步到檔案中,一定要寫        oLayer.SyncToDisk();    }

用Arcgis MapView載入shp檔案效果:

Gdal Java相關Api

 

Android GIS開發系列-- 入門季(13)Gdal簡單寫個shp檔案

相關文章

聯繫我們

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