SHP文件轉(zhuǎn)Dxf文件和GeoJson
SHP 文件介紹
shape文件由ESRI開發(fā),一個ESRI(Environmental Systems Research Institute)的shape文件包括一個主文件壶硅,一個索引文件坐慰,和一個dBASE表喉刘。其中主文件的后綴就是.shp.
ESRI Shapefile(shp),或簡稱shapefile改抡,是美國環(huán)境系統(tǒng)研究所公司(ESRI)開發(fā)的一種空間數(shù)據(jù)開放格式看铆。
Shapefile文件用于描述幾何體對象:點,折線與多邊形冀膝。例如,Shapefile文件可以存儲井霎挟、河流窝剖、湖泊等空間對象的幾何位置。除了幾何位置酥夭,shp文件也可以存儲這些空間對象的屬性赐纱,例如一條河流的名字,一個城市的溫度等等熬北。
Shapefile屬于一種矢量圖形格式疙描,它能夠保存幾何圖形的位置及相關(guān)屬性。但這種格式?jīng)]法存儲地理數(shù)據(jù)的拓?fù)湫畔⒀纫hapefile在九十年代初的ArcView GIS的第二個版本被首次應(yīng)用起胰。目前,許多自由的程序或商業(yè)的程序都可以讀取Shapefile巫延。
Shapefile是一種比較原始的矢量數(shù)據(jù)存儲方式效五,它僅僅能夠存儲幾何體的位置數(shù)據(jù),而無法在一個文件之中同時存儲這些幾何體的屬性數(shù)據(jù)炉峰。因此畏妖,Shapefile還必須附帶一個二維表用于存儲Shapefile中每個幾何體的屬性信息。Shapefile中許多幾何體能夠代表復(fù)雜的地理事物疼阔,并為他們提供強(qiáng)大而精確的計算能力瓜客。
Shapefile文件指的是一種文件存儲的方法,實際上該種文件格式是由多個文件組成的竿开。其中谱仪,要組成一個Shapefile,有三個文件是必不可少的否彩,它們分別是".shp", ".shx"與 ".dbf"文件疯攒。表示同一數(shù)據(jù)的一組文件其文件名前綴應(yīng)該相同。例如列荔,存儲一個關(guān)于湖的幾何與屬性數(shù)據(jù)敬尺,就必須有l(wèi)ake.shp,lake.shx與lake.dbf三個文件贴浙。而其中“真正”的Shapefile的后綴為shp砂吞,然而僅有這個文件數(shù)據(jù)是不完整的,必須要把其他兩個附帶上才能構(gòu)成一組完整的地理數(shù)據(jù)崎溃。除了這三個必須的文件以外蜻直,還有八個可選的文件,使用它們可以增強(qiáng)空間數(shù)據(jù)的表達(dá)能力。所有的文件名都必須遵循MS DOS的8.3文件名標(biāo)準(zhǔn)(文件前綴名8個字符概而,后綴名3個字符呼巷,如shapefil.shp),以方便與一些老的應(yīng)用程序保持兼容性赎瑰,盡管現(xiàn)在許多新的程序都能夠支持長文件名王悍。此外,所有的文件都必須位于同一個目錄之中餐曼。
必須的文件:
- .shp— 圖形格式压储,用于保存元素的幾何實體。
- .shx— 圖形索引格式源譬。幾何體位置索引渠脉,記錄每一個幾何體在shp文件之中的位置,能夠加快向前或向后搜索一個幾何體的效率瓶佳。
- .dbf— 屬性數(shù)據(jù)格式芋膘,以dBase IV的數(shù)據(jù)表格式存儲每個幾何形狀的屬性數(shù)據(jù)。
其他可選的文件:
- .prj— 投幀式霸饲,用于保存地理坐標(biāo)系統(tǒng)與投影信息为朋,是一個存儲well-known text投影描述符的文本文件。
- .sbnand.sbx— 幾何體的空間索引
- .fbnand.fbx— 只讀的Shapefiles的幾何體的空間索引
- .ainand.aih— 列表中活動字段的屬性索引厚脉。
- .ixs— 可讀寫Shapefile文件的地理編碼索引
- .mxs— 可讀寫Shapefile文件的地理編碼索引(ODB格式)
- .atx—.dbf文件的屬性索引习寸,其文件名格式為shapefile.columnname.atx(ArcGIS 8及之后的版本)
- .shp.xml— 以XML格式保存元數(shù)據(jù)。
- .cpg— 用于描述.dbf文件的代碼頁傻工,指明其使用的字符編碼霞溪。
轉(zhuǎn)換流程
下載GDAL
進(jìn)入GDAL官網(wǎng),看操作教程https://anaconda.org/conda-forge/gdal所說
先安裝 conda
環(huán)境
下載 conda https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
windows64位可下載這個就行
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Windows-x86_64.exe
安裝
安裝 gdal
conda install -c conda-forge gdal
如提示conda
命令不存在中捆,可先進(jìn)行第三步鸯匹,把安裝目錄\miniconda3\condabin
設(shè)置到環(huán)境變量 path
中
設(shè)置環(huán)境變量
安裝完把安裝目錄下面的
安裝目錄\miniconda3\condabin
設(shè)置到環(huán)境變量 path
中
安裝目錄\miniconda3\Library\bin
設(shè)置到環(huán)境變量 path
中
新建環(huán)境變量
GDAL_DATA
值為 安裝目錄\miniconda3\Library\share\gdal
如安裝目錄為"D:\Program Files",則設(shè)置為:
[圖片上傳失敗...(image-6176b1-1648544734115)]
轉(zhuǎn)換
在命令里輸入ogr2ogr進(jìn)行轉(zhuǎn)換泄伪,如要把區(qū)域?qū)?shp
轉(zhuǎn)為區(qū)域?qū)?dxf
在命令行里輸入即可
ogr2ogr -f "DXF" 區(qū)域?qū)?dxf ./區(qū)域?qū)?shp
如需轉(zhuǎn)geojson,可輸入
ogr2ogr -f "geojson" 區(qū)域?qū)?geojson ./區(qū)域?qū)?shp
網(wǎng)頁Web端打開CAD圖形
通過 https://vjmap.com/app/cloud/ 上傳圖形殴蓬,文件類型中選擇所有文件(* . * ),選擇剛上傳的dxf文件打開蟋滴。
如只需獲取dxf里面的數(shù)據(jù)染厅,除了上面的轉(zhuǎn)成Geojson
獲取幾何數(shù)據(jù)外,也可以津函,通過上傳圖形后肖粮,通過條件查詢此圖形中的幾何數(shù)據(jù),可參考示例
https://vjmap.com/demo/#/demo/map/service/22findcircledrawbounds
[圖片上傳失敗...(image-d0ae78-1648544734115)]