生活随笔
收集整理的這篇文章主要介紹了
Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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的字符型屬性,字符長度為50FieldDefn 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
?
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支持與幫助,是萬萬不能的。
本文轉自wenglabs博客園博客,原文鏈接http://www.cnblogs.com/arxive/p/7751997.html
:,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Android GIS开发系列-- 入门季(13)Gdal简单写个shp文件的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。