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.mzph.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 、温…

SpringMVC4零配置--web.xml

servlet3.0规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。 ServletContainerInitializer:启动容器时负责加载相关配置 Java代码 package javax.servl…

GoldenGate介绍

Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。Oracle Golden Gate可以在异构的IT基础结构&…

如何获取GC(垃圾回收器)的STW(暂停)时间?

前言在现代的容器化和微服务应用中,因为分布式的环境和错综复杂的调用关系,APM(Application Performance Monitoring 应用性能监控)显得尤为重要,它通过采集应用程序各种指标和请求链路,让你知道系统当前的…

C语言试题136之打印出杨辉三角形(要求打印出 10 行如下图)

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:打印出杨辉三角形(要求打印…

【ArcGIS风暴】ArcGIS矢量数据分层设色后导出或裁剪后颜色分类丢失完美解决办法

在利用ArcGIS做土地利用现状图或者规划图时,事先费了好大劲把每个地类对应的图斑进行了符号化(用不同的颜色表示),后来把符号化好的数据导出,并进行加载,发现颜色分类完全丢失了,同样,在利用某个重点区域范围裁剪后,颜色变成了单一的颜色。 符号化成果: 导出后加载矢…

如何使用Cmder替换cmd

一、cmder介绍 cmder是一款Windows环境下非常简洁美观易用的cmd替代者,它支持了大部分的Linux命令。支持ssh连接linux,使用起来非常方便。比起cmd、powershell、conEmu,其界面美观简洁,功能强大。 二、下载地址 地址&#xff1a…

C语言试题137之画点

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:利用putpixel 画点。 2 、温…

Delphi WinExec ShellExec 用法介绍

2019独角兽企业重金招聘Python工程师标准>>> Delphi WinExec ShellExec 用法介绍 在Windows程序设计中WinAPI也为我们提供了类似的函数,它们就是WinExec()和ShellExecute(),下面就来讨论一下这两个函数的用法。 1)WinExec() 函数原型&#x…

各大主流编程语言性能PK,结果出乎意料

出品 | OSC开源社区(ID:oschina2013)“什么编程语言速度最快”,为了回答这个问题,The Benchmarks Game 专门面向主流编程语言设计了性能测试。测试的项目包括(可点击文末阅读原文查看详情)&…

【MapBox】5种地图(底图)样式自由切换附源码

文章目录 一、不同地图显示样式1. 卫星2. 浅色3. 深色4. 街道5. 户外二、完整源码一、不同地图显示样式 MapBox提供了5种不同形式的地图显示样式: 1. 卫星 2. 浅色

[转]vue项目中,main.js,App.vue,index.html如何调用

1、main.js是我们的入口文件,主要作用是初始化vue实例,并引入所需要的插件 2、App.vue是我们的主组件,所有页面都是在App.vue下进行切换的。其实你也可以理解为所有的路由也是App.vue的子组件。所以我将router标示为App.vue的子组件。 index…

C语言试题138之画椭圆

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:画椭圆 ellipse 2 、温馨提示…

光纤熔接过程详细说明

在我们实际的网络工作当中会遇到光纤的熔接,由于目前光纤熔接的工艺已经成熟完善,对于一根六芯光纤整个熔接过程需要2名工程师,大约需要花费1个小时的时间就可以完成。我们首先考虑的是为光纤线缆留出足够的长度来,多了好办&#…

Playwright之录制

前言前段时间看了大佬分享的关于Playwright.NET的文章感觉挺有意思,想要阅读点击:此处,然后跟随大佬的脚步,学习了一点自动化玩,其中有一个录制功能感觉挺好玩,下面就来简单看看介绍手动操作浏览器&#xf…

【MapBox】在地图上创建多个Marker点,设置鼠标经过提示信息,单击跳转到链接

本文讲述在MapBox地图上创建多个Point点,然后设置鼠标经过每个点提示信息,再让每个点鼠标点击跳转到指定的不同的链接地址。 任务描述: 显示MapBox地图添加Marker设置鼠标经过提示设置Marker单击链接效果展示: 点击Marker跳转到指定的链接地址。 源码赠送: <!DOCTYPE …

Timequest的波形窗口调出

在使用TIMEQUEST做时序约束的时候,波形是很直观的一个界面,但是在操作的时候顺手向下一拉,波形窗口就不见了, 再report timing的时候就这样了,只有summary,没有波形窗口了. 找了半天的的view等等菜单没找到怎么打开,最后将鼠标放在下图位置他又出现了 出现上下拉的标签向上拉就…

[转]vue-codemirror 代码编辑器

codemirror 是一个非常强大的代码编辑器插件&#xff0c;但官方并没有提供 vue 的支持版本&#xff0c;不过跟 vue 集成的步骤并不复杂&#xff0c;以下是具体实现 更多精彩 更多技术博客&#xff0c;请移步 IT人才终生实训与职业进阶平台 - 实训在线相关网址 Vue 官方插件库推…

C语言试题139之输入 3 个数 a,b,c,按大小顺序输出(利用指针)

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:输入 3 个数 a,b,c,按大小顺…