展开

关键词

geotools编写shp转sql,实现shp数据入Oracle Spatial库

概述 用到Oracle Spatial就很难避免shp文件的入库问题,虽然有shp2sdo工具,但是用起来不是很习惯,所以,本文讲述如何结合geotools实现shp2sql的转换。 效果 ? import java.util.List; import java.util.Map; import com.lzugis.geotools.model.Fields; public class Shp2Orcale shp2orcl =new Shp2Orcale(); String shppath = "D:\\data\\wgs84\\capital.shp"; String sql\\capital.sql"; try{ long start = System.currentTimeMillis(); //读取shp 文件 shp2orcl.readShape(shppath); shp2orcl.getShpFields(); shp2orcl.createTableSql

71840

GeoTools之shp文件操作

操作 本文主要写的是利用GeoTools 连接shp文件,并对其进行增删改。 由于过于简单,就当笔记记录一下,时间宝贵的同学就不要看了。 最终代码如下所列: 1.往shp文件中增加记录 public void addFeature(List<String> dataList) throws IOException { System.out.println Exception eek) { eek.printStackTrace(); transaction.rollback(); } } 2.往shp System.currentTimeMillis() - currentTimeMillis; System.out.println("耗时:"+l/1000.0); } 3.往shp System.currentTimeMillis() - currentTimeMillis; System.out.println("耗时:"+l/1000.0); } 4.查询shp

1.8K40
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用Python处理shp文件

    Python中也提供了大量的shp文件处理方法,有底层的一些库,也有一些封装比较完整的库。 .shp') 获取shp文件中属性信息 >>> shps.schema {'properties': OrderedDict([('ID_0', 'int:10'), ('type') >>> shp.get('id') >>> shp.get('geometry') shps 变量包含了一些方法可以获取shape文件中的每个边界,比如 .next,.iterms等。 写shp文件 构建shp文件的操作很少使用,但有时候可能需要从已有的shp文件中提取一个子区域。 >>> shp = next(iter(shps)) >>> subshp.write(shp) ## 写入字段 >>> subshp.flush() ## 更新文件 >>> subshp.close

    8.6K30

    用GeoTools实现shp+sld导出图片

    概述: 本文讲解通过Geotools实现用shp和sld导出图片。 实现: ? public static void main(String[] args){ long start = System.currentTimeMillis(); Shape2Image shp2img = new Shape2Image(); String shpPath = "D:\\data\\beijing\\China4326.shp"; String sldPath = "D:\\ data\\beijing\\China4326.sld"; String shpPath1 = "D:\\data\\gdal\\university.shp"; String sldPath1 (shpPath, sldPath); shp2img.addShapeLayer(shpPath1, sldPath1); shp2img.getMapContent(paras, imgPath

    79030

    GDAL的java环境配置以及将shp转换为json

    概述: 前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。 这个需求,以前在Arcgis Online上见过,所以还是比较熟悉的,所以我就给他说:先将zip解压,再读取shp数据并将之转换为Geojson返回前台,并在web上展示出来。 很庆幸的是,者为同仁很快就实现了shp到Geojson的转换,就问我Arcgis for js 中怎么展示Geojson,我截了个Arcgis for js的API给他他就实现了上述的功能。 gdal.SetConfigOption("SHAPE_ENCODING",""); String strVectorFile = "D:\\data\\china\\capital.shp

    65330

    关于GDAL读写Shp乱码的问题总结

    正文 最近在使用GDAL读写Shp格式中的属性字段的时候也遇到了中文乱码的问题,总结下自己遇到的情况。 1.1. shp文件本身的编码的问题 应该是由于shp格式加入了对宽字符的支持,所以导致有段时间的shp文件和ArcGIS是存在不匹配的问题,所以在网上搜索资源的时候遇到了大量的关于ArcMap显示shp 现在的shp格式的文件应该已经稳定下来了,新添加了一个.cpg的文件,里面保存着属性表的编码格式: ? 图1-1:shp格式的.cpg文件 从ArcGIS10.2开始,只要是属性表编码与.cpg文件记录的编码方式一致,就不会再有显示乱码的问题。 GDAL设置 可以通过全局设置函数CPLSetConfigOption(),来配置读取Shp文件的读取编码。

    1.2K40

    geotrellis使用(四十二)将 Shp 文件转为 GeoJson

    话不多说,开始今天的主题,今天主要介绍如何将 Shp 文件转为 GeoJson,这在 QGIS、ArcGIS 等专业软件中很容易实现,只需要点个按钮就行了,本文正是来研究这点个按钮背后发生的故事。 一、实现方式 1.1 理论分析 其实这个过程逻辑上比较简单,首先将 Shp 文件读入内存,再分别读出空间属性和普通属性,将二者组合起来按照 GeoJson 文件的格式写入即可。 1.2 具体实现 读 Shp 文件 只需要一行代码即可解决: val datas = ShapeFileReader.readSimpleFeatures(path) 这是 GeoTrellis 封装好的读 Shp文件的方法,但是此种方式存在一个问题,无法设置读 Shp 文件时的编码方式,如果 Shp 文件不是 UTF-8 编码会存在乱码的问题,简单改造一下源码即可实现: val datas = { 三、总结 本文介绍了两种语言下实现 Shp 转为 GeoJson 的方式,主要是分析解决问题的思路。

    50120

    geotools实现两个shp的相交计算

    关键点 要实现类似的功能有两个关键点: 1、已经计算过的两个数据不能重复计算; 2、需要保留两个shp图形的属性。 这两点在后面的代码里面会有相对比较详细的注释的。 实现结果 ? ? ? double start = System.currentTimeMillis(); String inputPath1 = "D:\\data\\province.shp ", inputPath2 = "D:\\data\\test.shp", outputPath = "D:\\data\\province_test.shp

    84821

    geotools实现shp数据的缓冲区分析

    概述: 本文讲述如何在geotools中实现shp数据的缓冲区分析并保存到shp文件中。 效果: ? ShapeBuffer geoR = new ShapeBuffer(); String shpfile = "/Users/lzugis/Documents/chinadata/capital.shp "; String buffile = "/Users/lzugis/Documents/chinadata/capital_buffer.shp"; try{ //读取shp文件

    83560

    python与地理空间分析(3)shp文件操作

    Shapefile文件的结构包括多个文件,最重要的文件包括.shp,.shx,.dbf以及.prj文件: 文件扩展 作用 备注 .shp 用于存储要素几何的主文件,其中包括几何图形 必要文件,有的软件只需要 shp文件 .shx 形状要素索引文件,适当尺寸的几何元素索引信息可以加快访问速度 必要文件必须和shp文件在一起 .dbf 数据库文件,其中包含几何元素的属性信息 必要文件,可以通过excel打开,查看属性信息 cpg .dbf的代码文件 为.dbf文件提供国际化支持 .shp.xml 元数据 地理空间元数据.xml的容器 需要注意的是在拷贝shp文件时,需要至少把前4个文件一起拷贝,单独拷贝shp文件无法读取 库,因此本文主要介绍利用OGR库对shp文件的处理。 kml文件 Conclusion 本期主要介绍了python GDAL/OGR对shp文件的读写和格式转换,下一部分将对shp文件的空间分析算法和常用操作进行介绍,例如判断两个shp的交并差补以及点插值为面等算法内容

    7.1K71

    geotools中shp和geojson格式的相互转换

    概述: 在本文中,讲述如何在geotools中实现shp和geojson数据的相互转换。 效果: ? public class FileFormat { private static CommonMethod cm = new CommonMethod(); /** * geojson转换为shp failure"); map.put("message", e.getMessage()); e.printStackTrace(); } return map; } /** * shp start = System.currentTimeMillis(); String shpPath = "/Users/lzugis/Documents/chinadata/cityboundry.shp = fileFormat.shape2Geojson(shpPath, jsonPath); // String shpPath = "D:/data/beijing/China43262.shp

    4.7K30

    高质量编码-物探Excel转换为shp文件

    =0): pointExcel=xlrd.open_workbook(excelPath) pointSheet=pointExcel.sheet_by_index(0) #shp =shapefile.Writer(shapefile.POINT) #2.7 shp=shapefile.Writer(shpPath,shapefile.POINTZ) fields (field) for i in range(1,pointSheet.nrows): #shp.pointz(pointSheet.row(i)[xIndex].value, (i)[x].value,includeIndexs))) #shp.save(shpPath) #2.7 shp.close() def genLine(pointExcelPath (i)[x].value,includeIndexs))) #shp.save(shpPath) #2.7 shp.close() if __name__=='__main__':

    21430

    利用python把shp文件写入PostgresSQL数据库

    目的: 把shp文件写入pg数据库。注意:shp文件含点、线、面(‘POINT’,'LINESTRING','POLYGON')~这是重点。 首先,你需要有一个shp文件。我有一个点文件。 其次,将shp文件导入Geodataframe中。 再把Geodataframe写入pg数据库。 密码 #localhost:port就不解释了 map_data = gpd.GeoDataFrame.from_file('D:/Thesis/fjsouthwest/New_Shapefile.shp 更多的,利用GDAL写入shp也可以正常运行了: import os os.system('ogr2ogr '+'-overwrite '+'-f '+'"'+"PostgreSQL"+'"'+' PG localhost user=user dbname=dbname password=password"+'"'+' '+'"'+"D:/Thesis/fjsouthwest/grid/mxn/mxn.shp

    37341

    Geotools读取shp文件并在Ol2中展示

    概述: 在前面有一篇文章中讲到了GDAL将shp转换为GeoJson的实现,以及ol2、3以及Arcgis for js中GeoJson的加载,今天呢,书接上文,介绍Geotools如何读取shp 读取shp package com.lzugis.web; import net.sf.json.JSONArray; import org.geotools.data.shapefile.ShapefileDataStore java.text.SimpleDateFormat; import java.util.*; @WebServlet(description = "read shape", urlPatterns = {"/shp String layer = request.getParameter("layer"); String shpPath = "D:\\data\\china\\"+layer+".shp $.ajax({ type: 'POST', url: "http://localhost:8081/lzugis/shp

    59030

    python使用gdal对shp读取,新建和更新的实例

    昨天要处理一个shp文件,读取里面的信息,做个计算然后写到后面新建的field里面。先写个外面网上都能找到的新建和读取吧。 1.读取shp文件 #-*- coding: cp936 -*- try: from osgeo import gdal from osgeo import ogr exceptImportError: ,这里使用python中GDAL包来进行shp文件的生成,这里本质是利用ogc地理标准的坐标字符串来生成shp。 可以使用该方法,下载在线shp数据,只需要知道所需要素的geojson格式数据中坐标串即可。或者图像识别中获取的矢量边界赋予经纬度。 以上这篇python使用gdal对shp读取,新建和更新的实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    1.2K30

    Geotools之“Hello World”——打开本地shp文件并显示

    本节讲述的是geotools的开胃菜,打开本地shp文件,并在窗口中显示。 引言:geotools简介。 Geotools是Java语言编写的开源GIS工具包。 打开shp文件 ? 查看对象属性 接下来,说说实现方式。 data store file chooser dialog for shapefiles File file = JFileDataStoreChooser.showOpenFile("shp map.addLayer(layer); // Now display the map JMapFrame.showMap(map); } } 上述代码即可打开shp

    69330

    利用Python裁切tiff图像且读取tiff,shp文件的实例

    _ == '__main__': #shapefile_path, raster_path shapefile_path = r'C:\Users\Administrator\Desktop\裁切shp \New_Shapefile.shp' raster_path = r'C:\Users\Administrator\Desktop\2230542.tiff' main( shapefile_path 以上这篇利用Python裁切tiff图像且读取tiff,shp文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    1K30

    一篇文章教你搞定JSON素材,从此告别SHP时代~

    现在shp的素材相比json整体都不太流行了,无论是制作成本上还是占用内存上以及与实际行政区划的更新速度上,json地图素材轻便、时效、易获取,很多网站都提供这种轻量级的数据文件。 这里提供给大家三个网址: http://geojson.io/#map=7/32.064/117.268 以上网址自选、也可以通过导入shp数据转换格式(其中就可以将topojson转化为geojson 啊噢,完美的搞定json数据,你肯定看不出来这根使用shp导入的地图数据做出来的图有啥区别,因为根本就没有任何区别(排除两者在经纬度算法上的差异),因为我们并没有使用shp或者json中声明的任何关于地图素材的格式属性

    76260

    使用Python以优雅的方式实现根据shp数据对栅格影像进行切割

    一、前言        前面一篇文章(使用Python实现子区域数据分类统计)讲述了通过geopandas库实现对子区域数据的分类统计,说白了也就是如何根据一个shp数据对另一个shp数据进行切割。 本篇作为上一篇内容的姊妹篇讲述如何采用优雅的方式根据一个shp数据对一个栅格影像数据进行切割。废话不多说,直接进入主题。 3.3 读取shp        这在上一篇文章中也已经做了详细描述,不再赘述,需要强调的时此处也需要将shp进行投影转换,使其与我们要处理的影像一致,所以简单的方式就是直接读取影像的投影信息,将shp 首先将shp数据转换为geojson,然后使用rasterio进行切割。 __geo_interface__]        其中shpdata为读出的shp数据对象。

    2K110

    扫码关注云+社区

    领取腾讯云代金券