如何把GIS中SHP文件轉(zhuǎn)AutoCAD的Dxf文件并Web網(wǎng)頁顯示

SHP文件轉(zhuǎn)Dxf文件和GeoJson

SHP 文件介紹

shape文件由ESRI開發(fā),一個(gè)ESRI(Environmental Systems Research Institute)的shape文件包括一個(gè)主文件,一個(gè)索引文件,和一個(gè)dBASE表。其中主文件的后綴就是.shp.

ESRI Shapefile(shp),或簡(jiǎn)稱shapefile,是美國(guó)環(huán)境系統(tǒng)研究所公司(ESRI)開發(fā)的一種空間數(shù)據(jù)開放格式。

Shapefile文件用于描述幾何體對(duì)象:點(diǎn),折線與多邊形。例如,Shapefile文件可以存儲(chǔ)井、河流、湖泊等空間對(duì)象的幾何位置。除了幾何位置,shp文件也可以存儲(chǔ)這些空間對(duì)象的屬性,例如一條河流的名字,一個(gè)城市的溫度等等。

Shapefile屬于一種矢量圖形格式,它能夠保存幾何圖形的位置及相關(guān)屬性。但這種格式?jīng)]法存儲(chǔ)地理數(shù)據(jù)的拓?fù)湫畔?。Shapefile在九十年代初的ArcView GIS的第二個(gè)版本被首次應(yīng)用。目前,許多自由的程序或商業(yè)的程序都可以讀取Shapefile。

Shapefile是一種比較原始的矢量數(shù)據(jù)存儲(chǔ)方式,它僅僅能夠存儲(chǔ)幾何體的位置數(shù)據(jù),而無法在一個(gè)文件之中同時(shí)存儲(chǔ)這些幾何體的屬性數(shù)據(jù)。因此,Shapefile還必須附帶一個(gè)二維表用于存儲(chǔ)Shapefile中每個(gè)幾何體的屬性信息。Shapefile中許多幾何體能夠代表復(fù)雜的地理事物,并為他們提供強(qiáng)大而精確的計(jì)算能力。

Shapefile文件指的是一種文件存儲(chǔ)的方法,實(shí)際上該種文件格式是由多個(gè)文件組成的。其中,要組成一個(gè)Shapefile,有三個(gè)文件是必不可少的,它們分別是".shp", ".shx"與 ".dbf"文件。表示同一數(shù)據(jù)的一組文件其文件名前綴應(yīng)該相同。例如,存儲(chǔ)一個(gè)關(guān)于湖的幾何與屬性數(shù)據(jù),就必須有l(wèi)ake.shp,lake.shx與lake.dbf三個(gè)文件。而其中“真正”的Shapefile的后綴為shp,然而僅有這個(gè)文件數(shù)據(jù)是不完整的,必須要把其他兩個(gè)附帶上才能構(gòu)成一組完整的地理數(shù)據(jù)。除了這三個(gè)必須的文件以外,還有八個(gè)可選的文件,使用它們可以增強(qiáng)空間數(shù)據(jù)的表達(dá)能力。所有的文件名都必須遵循MS DOS的8.3文件名標(biāo)準(zhǔn)(文件前綴名8個(gè)字符,后綴名3個(gè)字符,如shapefil.shp),以方便與一些老的應(yīng)用程序保持兼容性,盡管現(xiàn)在許多新的程序都能夠支持長(zhǎng)文件名。此外,所有的文件都必須位于同一個(gè)目錄之中。

必須的文件:

  • .shp— 圖形格式,用于保存元素的幾何實(shí)體。
  • .shx— 圖形索引格式。幾何體位置索引,記錄每一個(gè)幾何體在shp文件之中的位置,能夠加快向前或向后搜索一個(gè)幾何體的效率。
  • .dbf— 屬性數(shù)據(jù)格式,以dBase IV的數(shù)據(jù)表格式存儲(chǔ)每個(gè)幾何形狀的屬性數(shù)據(jù)。

其他可選的文件:

  • .prj— 投幀式,用于保存地理坐標(biāo)系統(tǒng)與投影信息,是一個(gè)存儲(chǔ)well-known text投影描述符的文本文件。
  • .sbnand.sbx— 幾何體的空間索引
  • .fbnand.fbx— 只讀的Shapefiles的幾何體的空間索引
  • .ainand.aih— 列表中活動(dòng)字段的屬性索引。
  • .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位可下載這個(gè)就行
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)]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容