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:,如需轉載請自行聯系原作者


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285302.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VS code 搭建Vue 項目

必備工具:Vs Code、NodeJs 1、新建一文件目錄來存放工程文件 2、右鍵用VS Code打開 3、Ctr 打開terminal面板,建議先將設置鏡像服務器,可能否則安裝比較慢。 npm config set registry https://registry.npm.taobao.org --globalnpm config…

C語言試題135之畫方形

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:用 rectangle 畫方形 2 、溫…

C#(Sharp)操作數據庫原理及案例精析(強烈建議收藏)

劉一哥C#從入門到精通系列精品教程合集: 1.【C#程序設計】教學講義——第一章:C#語言概述 2.【C#程序設計】教學講義——第二章:簡單C#程序設計 3.【C#程序設計】教學講義——第三章:C#語言基礎 4.吐血整理:C#順序、選擇、循環結構用法與案例,這一篇就夠了! 5.C#數組原來…

SpringMVC4零配置--web.xml

servlet3.0規范后,允許servlet,filter,listener不必聲明在web.xml中,而是以硬編碼的方式存在,實現容器的零配置。 ServletContainerInitializer:啟動容器時負責加載相關配置 Java代碼 package javax.servl…

GoldenGate介紹

Oracle Golden Gate軟件是一種基于日志的結構化數據復制備份軟件,它通過解析源數據庫在線日志或歸檔日志獲得數據的增量變化,再將這些變化應用到目標數據庫,從而實現源數據庫與目標數據庫同步。Oracle Golden Gate可以在異構的IT基礎結構&…

[轉]我們為什么要用vue,他解決了什么問題,如何使用它?

Vue.js新手入門指南 最近在逛各大網站,論壇,以及像SegmentFault等編程問答社區,發現Vue.js異常火爆,重復性的提問和內容也很多,樓主自己也趁著這個大前端的熱潮,著手學習了一段時間的Vue.js,目前…

java反射機制續

http://www.cnblogs.com/fingerboy/p/5325261.html轉載于:https://www.cnblogs.com/yangmin-78819/p/5328869.html

測量人看過來:多種語言編寫的測量坐標反算神器附源碼(C#/VB)

坐標正算:【小程序】坐標正算神器V1.0(附源程序) 坐標反算一直是困擾測量人的一個問題,坐標反算是指已知兩點坐標,反求邊長和方位角。本文演示用C#和VB語言實現過程。 文章目錄 一、坐標反算原理1. 原理圖2. 計算公式3. 象限角4. 限角和坐標方位角的關系二、C#語言實現1. …

如何獲取GC(垃圾回收器)的STW(暫停)時間?

前言在現代的容器化和微服務應用中,因為分布式的環境和錯綜復雜的調用關系,APM(Application Performance Monitoring 應用性能監控)顯得尤為重要,它通過采集應用程序各種指標和請求鏈路,讓你知道系統當前的…

C語言試題136之打印出楊輝三角形(要求打印出 10 行如下圖)

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:打印出楊輝三角形(要求打印…

C#控件綁定數據源方式

1:控件數據源綁定泛型Dictionary<string,string> 1):Dictionart<string,string> Dnew Dictionary(string,string);xxx.DataSourcenew BindingList<string>(D.values.ToList());2):Dictionary<string, string> D new Dictionary<string,string>;…

【ArcGIS風暴】ArcGIS矢量數據分層設色后導出或裁剪后顏色分類丟失完美解決辦法

在利用ArcGIS做土地利用現狀圖或者規劃圖時,事先費了好大勁把每個地類對應的圖斑進行了符號化(用不同的顏色表示),后來把符號化好的數據導出,并進行加載,發現顏色分類完全丟失了,同樣,在利用某個重點區域范圍裁剪后,顏色變成了單一的顏色。 符號化成果: 導出后加載矢…

如何使用Cmder替換cmd

一、cmder介紹 cmder是一款Windows環境下非常簡潔美觀易用的cmd替代者&#xff0c;它支持了大部分的Linux命令。支持ssh連接linux&#xff0c;使用起來非常方便。比起cmd、powershell、conEmu&#xff0c;其界面美觀簡潔&#xff0c;功能強大。 二、下載地址 地址&#xff1a…

C語言試題137之畫點

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:利用putpixel 畫點。 2 、溫…

7z壓縮文檔的powershell示例

首先要安裝7-Zip到c:\Program Files\7-Zip&#xff1b; 示例如下&#xff1a; 1234567891011121314151617181920212223242526272829303132#define Function DeleteLogfunction DeleteLog{ param($filePath,$TimeOutDays) $allFilesget-childitem -path $filePath …

Delphi WinExec ShellExec 用法介紹

2019獨角獸企業重金招聘Python工程師標準>>> Delphi WinExec ShellExec 用法介紹 在Windows程序設計中WinAPI也為我們提供了類似的函數&#xff0c;它們就是WinExec()和ShellExecute()&#xff0c;下面就來討論一下這兩個函數的用法。 1)WinExec() 函數原型&#x…

各大主流編程語言性能PK,結果出乎意料

出品 | OSC開源社區&#xff08;ID&#xff1a;oschina2013&#xff09;“什么編程語言速度最快”&#xff0c;為了回答這個問題&#xff0c;The Benchmarks Game 專門面向主流編程語言設計了性能測試。測試的項目包括&#xff08;可點擊文末閱讀原文查看詳情&#xff09;&…

閉包 —JavaScript面向對象高級

# 閉包 # 我的理解&#xff1a;面試時&#xff0c;先說作用域鏈&#xff0c;再說閉包產生的原因&#xff0c;然后是垃圾回收GC&#xff0c;最后說閉包。 a.一個函數內部聲明的變量&#xff0c;就是它的私有變量. b.在javascript中特性中&#xff0c;函數是可以訪…

【MapBox】5種地圖(底圖)樣式自由切換附源碼

文章目錄 一、不同地圖顯示樣式1. 衛星2. 淺色3. 深色4. 街道5. 戶外二、完整源碼一、不同地圖顯示樣式 MapBox提供了5種不同形式的地圖顯示樣式: 1. 衛星 2. 淺色

[轉]vue項目中,main.js,App.vue,index.html如何調用

1、main.js是我們的入口文件&#xff0c;主要作用是初始化vue實例&#xff0c;并引入所需要的插件 2、App.vue是我們的主組件&#xff0c;所有頁面都是在App.vue下進行切換的。其實你也可以理解為所有的路由也是App.vue的子組件。所以我將router標示為App.vue的子組件。 index…