前端地圖數據格式標準及應用
- 坐標系EPSG
- geojson標準格式
- 基于OGC標準的地圖服務
- shapefile文件
- 3D模型數據
- 常見地圖框架
坐標系EPSG
EPSG(European Petroleum Survey Group)是一個國際組織,負責維護和管理地理坐標系統和投影系統的標準化編碼
EPSG 用于標識不同的地理空間參考系統,包括坐標系統、地理坐標系、投影坐標系等。這些標識符可用于許多應用程序和地理信息系統軟件,以確保數據在不同系統之間的正確轉換和處理。現在,EPSG已被Open Geospatial Consortium(OGC)承認并管理,成為了一個全球性的標準。
EPSG負責維護全球的坐標系統,雖然EPSG不是一個強制的標準,但是因為有ERSI、Google、Microsoft和W3C等大型公司組織的使用加持,所以對于后面進入行業的GISer和開發者而言,該標準有一定的權威性和方便性。
- WGS84(World Geodetic System 1984):是 GPS 全球定位系統建立的坐標系統,通過GPS定位拿到的原始經緯度。EPSG代號為4326 谷歌地圖
- GCJ-02(國家測量局02號標準):GCJ-02 是由中國國家測繪局(G表示Guojia國家,C表示Cehui測繪,J表示Ju局)制訂的地理信息系統的坐標系統,是在WGS84經緯度的基礎上執行加密算法而成。因為GPS得到的經緯度直接在 GCJ-02 坐標系下會定位到錯誤的地點,有種到了火星的感覺,因此在坊間也將 GCJ-02 戲稱為火星坐標系。國內的高德騰訊地圖就是用的 GCJ-02 坐標系
- BD-09(Baidu, BD):是百度地圖使用的地理坐標系,其在GCJ-02上多增加了一次變換,用來保護用戶隱私。從百度產品中得到的坐標都是BD-09坐標系。
EPSG:4326:WGS84
EPSG:3857:是Web墨卡托投影坐標系
4214:Beijing 1954地理坐標系統
4490:CGCS 2000地理坐標系統
4547:深圳
https://blog.csdn.net/josiecici/article/details/127666605
epsg查詢https://epsg.io/map#srs=4326&x=109.775391&y=34.452218&z=6&layer=streets
epsg鏈接: link
坐標轉換案例
1、amap等地圖框架自帶方法轉換
鏈接: link
2、通過epsg編碼互轉
使用proj4JS進行坐標轉換
鏈接: link
geojson標準格式
geojson是用json的語法表達和存儲地理數據
Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection
geojson將所有的地理要素分為Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection。首先是將這些要素封裝到單個的geometry里,然后作為一個個的Feature(也就是要素);要素放到一個要素集合里,從樹狀結構來理解FeatureCollection就是根節點,表示為:
點要素Point
點要素是最簡單的,類型type對應Point,然后坐標是一個1維的數組,里面有兩個元素(如果是立體的坐標就是三維x,y,z),分別為經度和緯度。properties里面可以封裝各種屬性,例如名稱、標識顏色等等。
{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[105.380859375,31.57853542647338]}
}
多點要素MultiPoint
{"type":"Feature","properties":{},"geometry":{"type":"MultiPoint","coordinates":[[105.380859375,31.57853542647338],[105.580859375,31.52853542647338]]}
}
線要素LineString
線要素就是指線段,記錄的是線的端點坐標,可視化時會按照記錄順序聯結。對于曲線(如貝塞爾曲線)目前還沒有很好的表達,但是在地理數據中,曲線一般會用LineString去擬合,現實地理世界中也沒有標準的曲線地理要素。
線要素的坐標coordinates里的二維數組和多點要素基本一樣,區別就在type上了。
{"type":"Feature","properties":{},"geometry":{"type":"LineString","coordinates":[[105.6005859375,30.65681556429287],[107.95166015624999,31.98944183792288],[109.3798828125,30.031055426540206],[107.7978515625,29.935895213372444]]}
}
MultiLineString
也是一個三維數組(和多邊形一樣);
{"type":"Feature","properties":{},"geometry":{"type":"MultiLineString","coordinates":[[[105.6005859375,30.65681556429287],[107.95166015624999,31.98944183792288],[109.3798828125,30.031055426540206],[107.7978515625,29.935895213372444]],[[109.3798828125,30.031055426540206],[107.1978515625,31.235895213372444]]]}
}
多邊形Polygon
注:單個多邊形是一個3維數組,可以包含多個二維數組,這種情況和MultiPolygon效果很像。
{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[106.10595703125,33.33970700424026],[106.32568359375,32.41706632846282],[108.03955078125,32.2313896627376],[108.25927734375,33.15594830078649],[106.10595703125,33.33970700424026]]]}}
案例:
高德加載geojson數據: link
基于OGC標準的地圖服務
OGC全稱是開放地理空間信息聯盟,是一個非盈利的國際標準組織,它制定了數據和服務的一系列標準,GIS廠商按照這個標準定義開放服務接口等
OGC提供的標準有很多種,常用的如:WMS、WMTS、WFS、WCS
常見地圖服務_WMS_WFS_WCS_ WMTS
WMS服務
Web Map Service (web地圖服務,能夠根據用戶的請求,返回相應的地圖,包括PNG、GIF、JPEG等柵格形式,或者SVG或者WEB CGM等矢量形式。
GetCapabitities返回服務級元數據,它是對服務信息內容和要求參數的一種描述;
GetMap返回一個地圖影像,其地理空間參考和大小參數是明確定義了的;
GetFeatureInfo(可選)返回顯示在地圖上的某些特殊要素的信息。
參考:網絡地圖服務(WMS)的三大操作: link.
如amap支持
接口名稱 | 接口說明 |
---|---|
GetCapabilities | 返回服務級元數據,它是對服務信息內容和要求參數的一種描述 |
GetMap | 獲取地圖圖片。該操作根據客戶端發出的請求參數在服務端進行檢索,服務器端返回一個地圖圖像,其地理空間參數和大小參數是已經明確定義的,返回的地圖圖像可以是GIF、JPEG、PNG或SVG格式 |
GetFeatureinfo | 返回顯示在地圖上的某些特殊要素的信息。該操作根據用戶所請求的X、Y坐標或感興趣的圖層,返回地圖上某些特殊要素的信息,信息以HTML,GML或ASCII的格式表示 |
WMTS服務
Web Map Tile Service(Web地圖瓦片服務)wmts相比于wms,它能夠提供分塊地圖。wmts使用瓦片矩陣集來表示 。類似一個金字塔,每一層即每一個矩陣的瓦片有不同的分辨率,每個瓦片都有唯一的編碼。
WMTS 1.0.0規范支持以HTTP KVP(Key-Value Pair)方式、SOAP 方式和REST 方式發布WMTS服務。
WMTS的讀取:
GetCapabilities:服務元數據
GetTile:圖塊資源
GetFeatureInfo:要素信息
天地圖請求基于wmts服務的切片數據示例:
http://198.18.128.114:8080/geomap-api/proxy?url=http://198.18.129.17:8003/JYWL/wmts?LAYER=JYWL_JYDT&FORMAT=image/tile&TILEMATRIXSET=Matrix_JYWL_JYDT_0&VERSION=1.0.0&STYLE=JYWL_JYDT&TILEMATRIX=13&TILEROW=1320&TILECOL=6799&service=WMTS&request=GetTile
天地圖請求GetCapabilities:
http://r740.youlishu.com:18081/GIS_JDSQWG/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetCapabilities
參考: link.
link.
接口名稱 | 接口描述 |
---|---|
GetCapabilities | 獲取WMTS的能力文檔(即元數據文檔),里面包含服務的所有信息 |
GetTile | 獲取地圖瓦片。該操作根據客戶端發出的請求參數在服務端進行檢索,服務器端返回地圖瓦片圖像 |
GetFeatureInfo | 通過在WMTS圖層上指定一定的條件,返回指定的地圖瓦片內容對應的要素信息 |
天地圖請求wmts服務的切片案例
http://198.18.128.114:8080/geomap-api/proxy?url=http://198.18.129.17:8003/JYWL/wmts?LAYER=JYWL_JYDT&FORMAT=image/tile&TILEMATRIXSET=Matrix_JYWL_JYDT_0&VERSION=1.0.0&STYLE=JYWL_JYDT&TILEMATRIX=13&TILEROW=1320&TILECOL=6796&service=WMTS&request=GetTile
天地圖請求wmts服務的切片案例-矢量瓦片,返回二進制文件
http://198.18.128.114:8080/geomap-api/proxy?url=http://58.213.148.61:8089/geostar/SLDT_DT/wmts?LAYER=SLDT_9_20&FORMAT=protobuf&TILEMATRIXSET=SLDT_9_20_Matrix_0&VERSION=1.0.0&TILEMATRIX=12&TILEROW=662&TILECOL=3401&service=WMTS&request=GetTile
百度地圖加載wmts圖層數據案例:
鏈接: link
WCS服務
Web Coverage Service(web地圖柵格數據服務),如衛星影像。
柵格是一種基于像素的數據格式,可以有效地表示連續的曲面。柵格中的信息以網格結構存儲,每個信息單元或像素具有相同的大小和形狀,但值不同。數碼照片,正射影像和衛星圖像都以這種格式存儲。
參考mapbox衛星影像介紹:
link.
接口名稱 | 接口說明 |
---|---|
GetCapabilities | 返回描述服務和數據集的XML文檔 |
DescribeCoverage | 在GetCapabilities確定什么樣的查詢可以執行、什么樣的數據能夠獲取之后執行的,它使用通用的柵格格式返回地理位置的值或屬性 |
GetCoverage | 允許客戶端請求由具體的WCS服務器提供的任一覆蓋層的完全描述 |
WFS服務
Web Feature Service(web要素服務)
返回的是要素級的GML編碼,并提供對要素的增加、修改、刪除等事務操作,是對Web地圖服務的進一步深入
回結果的是XML格式的WFS服務元數據文檔
接口名稱 | 接口說明 |
---|---|
GetCapabilities | GetCapabilities請求用于查詢WFS服務的能力信息,包括支持的操作、支持的格式、空間坐標、包含的資源等。它主要的目的是使客戶端在使用GetFeature請求前可以對WFS服務有一個基本的了解,從而可以設置正確的參數 |
DescribeFeatureType | 返回描述可以提供服務的任何要素結構的XML文檔,即圖層描述信息 |
shapefile文件
?Shapefile文件格式?是一種在地理信息系統(GIS)中廣泛使用的開放標準格式,用于存儲地理空間數據。它由ESRI(Environmental Systems Research Institute)開發,于1998年正式推出。Shapefile格式因其開放性、兼容性和廣泛的支持,成為GIS領域最為流行的矢量數據存儲格式之一?
組成
Shapefile文件格式由以下幾個核心組成部分:
?.shp文件?:存儲幾何形狀信息,包括點(Points)、線(Lines)、多邊形(Polygons)等?
?.shx文件?:索引文件,用于快速定位幾何形狀?
?.dbf文件?:存儲與幾何形狀相關的屬性信息?
此外,還有可選文件,如.prj文件包含空間參考信息,而.cpg文件提供特定編碼?
應用領域
Shapefile格式廣泛應用于地圖制作、土地管理、環境監測、交通規劃等多個領域。由于其開放性和跨平臺使用的特性,Shapefile文件成為GIS數據交互的標準文件格式?
.shp幾何數據文件
.shp文件是Shapefile格式的核心部分,它存儲了所有的幾何信息。幾何數據類型通常包括點(Points)、線(Lines)、多邊形(Polygons)等。幾何數據按照記錄的方式存儲,每條記錄都對應一個具體的地理特征。每條記錄的開始包含一個記錄頭,記錄了記錄的編號、內容長度和幾何類型等信息。緊隨其后的是實際的幾何數據,這可能是坐標點序列,線段或面邊界的集合。
每條幾何記錄通常都是以記錄頭開始,隨后是其幾何數據。在Shapefile中,點的坐標使用x和y的值表示,而線和面則需要記錄一系列點的集合。例如,對于多邊形來說,還可能包括其內環的信息。數據使用固定長度的記錄,但在需要時會使用補丁填充來保持記錄的固定長度。
.dbf屬性數據文件
.dbf文件包含與.shp幾何數據文件相對應的屬性信息,它是一個標準的dBase格式數據庫文件。每一個地理特征在.dbf文件中都有一個記錄,記錄的順序與.shp文件中的幾何記錄順序一一對應。.dbf文件包含了字段定義和數據記錄兩個部分。
字段定義部分存儲了文件中每列的名稱、類型和大小。常見的字段類型包括字符型(C)、數值型(N)、邏輯型(L)、日期型(D)等。數據記錄部分則存儲了每個地理特征的屬性值,對于每一條記錄,都有一個與之對應的屬性數據。
.shx幾何索引文件
.shx文件是索引文件,它存儲了.shp文件中幾何數據的索引信息,以便快速訪問特定的幾何記錄。索引文件通過記錄編號對應到.shp文件中的實際位置,這有助于提高數據檢索的效率。
一個索引項是由100字節組成的結構,其中前四個字節表示偏移量,指的是.shp文件中該記錄開始的位置,接下來四個字節表示記錄的長度。因此,.shx文件允許程序在不知道具體數據內容的情況下,快速定位和訪問.shp文件中的幾何數據。
shapefile介紹:鏈接: link
鏈接: link
對shapefile文件進行轉換并使用
鏈接: link
3D模型數據
3D模型: link
常見地圖框架
amap
mapbox
cesium
openlayers
maptalks