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文件相关推荐

  1. Android GIS开发系列-- 入门季(11) Callout气泡的显示

    一.气泡的简单显示 首先我们要获取MapView中的气泡,通过MapView的getCallout()方法获取一个气泡.看一下Callout的简单介绍: 大体的意思是通过MapView获取Callou ...

  2. Android GIS开发系列-- 入门季(5) FeatureLayer加载本地shp文件与要素查询

    FeatureLayer是要素图层,也是Arcgis的主要图层.用这个图层可以加载本地的shp文件.下面我们看怎样加载shp文件到MapView中.查看ArcGis API可知FeatureLayer ...

  3. Android Studio 开发系列之二:创建简单的APP启动界面

    1.准备措施:准备一张用来开机的P好的照片 2.在原有项目的基础上,新建一个Activity,命名为StartActivity(这个其实无所谓,都可以) 3.将准备好的照片放入mipmap中 (1)复 ...

  4. 《 Android物联网开发从入门到实战》

    今天小编分享的这本书是国内第一本Android物联网开发书籍,由42个全真实战案例,环环相扣,深入解析Android物联网开发. <Android物联网开发从入门到实战>内容分为 5篇,共 ...

  5. 《 Android物联网开发从入门到实战》国内第一本开发书籍!

    今天小编分享的这本书是国内第一本Android物联网开发书籍,由42个全真实战案例,环环相扣,深入解析Android物联网开发. <Android物联网开发从入门到实战>内容分为 5篇,共 ...

  6. Android自定义控件开发系列(零)——基础原理篇

    在后边的文章中发现在说Android自定义时,有时候要重复解释很多东西,所以想想返回来增加一篇"基础原理篇",直接进入正题吧-- 首先的问题是:在Android项目开发中,什么时候 ...

  7. Android蓝牙开发系列文章-玩转BLE开发(一)

    我们在<Android蓝牙开发系列文章-策划篇>中计划讲解一下蓝牙BLE,现在开始第一篇:Android蓝牙开发系列文章-玩转BLE开发(一).计划要写的BLE文章至少分四篇,其他三篇分别 ...

  8. Android游戏开发的入门实例

         在Android系统上开发游戏是Android开发学习者所向往的,有成就感也有乐趣,还能取得经济上的报酬.那怎样开发Android游戏呢?下面介绍一个简单的入门实例.        一.创建 ...

  9. Android蓝牙开发系列文章-蓝牙设备类型知多少?

    在写<Android蓝牙开发系列文章-蓝牙音箱连接>时,计划细化出一篇讲解蓝牙设备类型的文章,现在它来了~ 阅读其他内容,可以点击<Android蓝牙开发系列文章-策划篇>,或 ...

最新文章

  1. 签名工具 signtool.exe 参数简介
  2. android中Invalidate和postInvalidate的区别
  3. 从0到1建立一张评分卡之可视化分析
  4. Verilog HDL语言实现的单周期CPU设计(全部代码及其注释)
  5. 子商城管理之签到活动
  6. LeetCode 1002. 查找常用字符(哈希)
  7. Fiddler (一) 教程(Web调试工具)
  8. Linux(Ubuntu)设置系统时区
  9. HTML标签的分类与特点
  10. 与素数有关的一些性质及证明(一)
  11. 阅读《构建执法》11-12章
  12. java bzip2 压缩,Java bzip2压缩与解压缩工具类
  13. 项目经理必看逻辑思维书单
  14. Cross Domian iFrame Exceptions 跨域iFrame屏蔽例外
  15. AI元宇宙数字人直播带货软件 全天24小时直播带货系统 含搭建教程
  16. 数据传输方式串行快于并行
  17. 汽车芯片TJA1057GTK/3高速 CAN 收发器3 毫米 x 3 毫米 x 0.85 毫米
  18. sql server unique约束的增加与删除
  19. 夏普比率excel_在Excel中计算比率
  20. php kestrel,转载 kestrel php 讯息队列

热门文章

  1. 同态加法_同态的Spotify
  2. 新的一年,如何高效学习前端前沿知识~
  3. 杭州 3~5年 前端面经,高频面试题总结
  4. Android 系统权限
  5. SINOCES 2011
  6. go语言中的方法method
  7. 《Python游戏编程入门》——1.2 初识Python
  8. GetDisplayName 获取枚举的显示值
  9. linux操作系统cp命令
  10. 【转】CSS样式覆盖规则