WEBGIS体系和OGC标准
WEBGIS體系和OGC標準
?
-???????? 以數據為核心的巨頭網站
-???????? 指路導航網站
-???????? 地圖社區和其它重視興趣點的應用
-???????? 打開天地圖網站,運行搜索服務,點擊瀏覽器調試工具,網絡,可以看到xml下面GML的數據格式。
-???????? 也可以在GeoServer(細節:端口7878)中看到點、線、面三種數據格式,并且在GeoServer中進行了展示
3.WMS(Web Map Service)
打開GeoServer,輸入:127.0.0.1:7878/geoserver/web/→右邊點擊“WMS 1.1.1”(版本號),下載xml格式的標準文件。
[1]?? GetCapabilities(獲取服務能力)
<Get></Get>? <Post></Post>? <GetMap></GetMap>(顯示各種支持的地圖格式)
[2]?? GetMap(獲得地圖)
點擊“Layer Preview”→選擇一個“sf:restricted”→Select one,WMS,GIF→瀏覽圖層。可以將此時的游覽器地址欄復制到EditPlus中可以清晰看到獲取地圖的參數:
?
- Request=GetMap 表示操作類型為獲得地圖
- Layers=layerName 表示需要獲得圖層名字為XX的地圖,圖層名字可以為多個圖層,多個圖層的名字用逗號進行分割
- Styles=styleName 表示獲得圖層的樣式文件,如果值為空的話,說明當前的地圖圖層使用的是默認地圖樣式
- Bbox=589434.8564686741,4914006.337837095,609527.2102150217,4928063.398014731 表示根據地圖的坐標范圍獲得對應的地圖數據
- Width=256 表示獲得的地圖圖片的寬度
- Height=256 表示獲得地圖圖片的高度
- Srs=EPSG:26713 表示地圖的空間坐標系的srid值 (坐標系的編號)
[3]?? GetFeatureInfo 獲取對象信息
WFS是一個基于Web服務技術的地理要素在線服務標準。它主要實現了地理數據的Web服務和異構系統的互操作規范。同樣可以在GeoServer中看到詳細信息。
[1]?? GetCapabilities(獲取服務能力)
[2]?? DescribeFeatureType(要素類型特征描述)
[3]?? GetFeature(獲取對象)
GeoServer→Demos→Demo requests→WFS getFeature-1.1.xml(要輸入admin 密碼);同樣可以用Layer Preview→sf:roads→WFS,GML3來測試。可以將此時的游覽器地址欄復制到EditPlus中可以清晰看到獲取地圖的參數:
- Request=GetFeature 表示操作類型為獲得地圖要素的屬性信息
- typeName=layerName 表示獲取地理要素信息的圖層名稱
- maxFeatures=50 表示生成地理要素信息最多的條目數
- outputFormat=text/xml 表示生成地理要素的數據存儲格式,一般為text/xml,即XML格式
[4]?? Transaction(事務處理包括增、刪、修改要素)
GeoServer→Demos→Demo requests里面選擇各種事件(如Delete等)查看參數。
[5]?? LockFeature(鎖要素)
{ "type": "FeatureCollection",
??"features": [
????{ "type": "Feature",
??????"geometry": {
"type": "Point","coordinates": [102.0, 0.5]
},
??????"properties": {"prop0": "value0"}
????},
????{ "type": "Feature",
??????"geometry": {
????????"type": "LineString",
????????"coordinates":
?[
???????[102.0, 0.0], [103.0, 1.0], [104.0, 0.0],[105.0, 1.0]
??????]
??????},
??????"properties": {
????????"prop0": "value0",
????????"prop1": 0.0
??????}
????},
????{ "type": "Feature",
??????"geometry": {
????????"type": "Polygon",
????????"coordinates": [
???????????[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
?????????????[100.0, 1.0], [100.0, 0.0] ]
????????]
??????},
??????"properties":
{
?????????"prop0": "value0",
?????????"prop1": {"this": "that"}
??????}
????}
??]
}
[1]?? JSON 是源于javascript 對象,javascript 對象(Object)就是用大括號括起來,中間以鍵/值的形式表現并用逗號分割,“鍵”就是對象的屬性,而“值”就是該屬性的值。javascript 中還有個數組(Array),用中括號括起來,中間只有單個的值并用逗號分割。不管是對象還是數組,其中的值可以是任何元素(對象,數組,字符串,數字等),這就是此中結構的靈活之處。JSON 與XML 很相似,也具有層次結構,是一種輕量級的解決方案。
[2]?? GeoJSON 保留了JSON 的結構,但增加了一些約束條件:
ü?????? GeoJSON 總是由一個對象組成,這個對象可以為要素集合(featurecollection),要素(feature)或者幾何體( geometry)。
ü?????? GeoJSON 對象必須包含一個type 屬性,type ?的值可為 “Point”, ?“MultiPoint”, ?“LineString”, ?“MultiLineString”, ?“Polygon”, ?“MultiPolygon”, “GeometryCollection”, ?“Feature”, or “FeatureCollection”。
ü?????? Geometry對象是那些type值為 “Point”, ?“MultiPoint”, ?“LineString”, ?“MultiLineString”, ?“Polygon”, ?“MultiPolygon”, ?“GeometryCollection”的GeoJSON 對象。Geometry 對象除了GeometryCollection 外必須包含一個coordinates 屬性,其中包含一個點列表。
ü?????? Feature 對象是type 值為”Feature”的GeoJSON 對象。Feature 對象必須包含一個geometry 屬性,其值為一個Geometry 對象。Feature 對象必須含有一個properties 屬性,其值可為一個JSON 對象。
ü?????? GeometryCollection 對象是type值為”GeometryCollection”的GeoJSON 對象。代表一個幾何型集合,與FeatureCollection 不同的是他包含的是Geometry 對象,而不是Feature 對象。GeometryCollection 對象必須含有一個geometries 屬性,其中包含一組Geometry 對象。
ü?????? GeoJSON 對象可以有一個”bbox”屬性,是”[minx,miny,maxx,maxy]“的結構,他表示了該對象的顯示范圍。
[3]?? 如上面的例子,由大括號括起來的都是GeoJSON 對象,例子中是一個FeatureCollection 對象,他包含了一組Feature 對象,還可以添加這個集合的其他屬性。每個Feature 對像都包含一個Geometry 對象和一個屬性(JSON 對象),Geometry 對象有所不同,類型不同,coordinates 的數據結構也不同。
ü?????? 點,表示點只需要經度和緯度,用中括號括起來代表一個點坐標。{ "type": "Point", "coordinates": [100.0, 0.0] }
ü?????? 線,由一系列點組成,在一組有序點外面再括一個中括號。
{ "type": "LineString", "coordinates": [ [100.0, 0.0],
??????????????????????????????????? [101.0, 1.0] ] }
ü?????? 面,在線的外面再加一個中括號,面列表中的線收尾必須一致。但為什么未免還要加個呢?為了表示面中的洞,第一項表示外圍的圈,第二項(如果有的話)表示內圍的圈。
{ "type": "Polygon",
? "coordinates": [? [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
?????????????????? [100.0, 1.0], [100.0, 0.0] ]
?? ??????????]
}
ü?????? 除了以上還有多點,多線,多面就不多講了,可以自己去看看。
[4]?? GeoJSON 基本上就這些內容,跟詳細的可以去這里。GeoJSON 只是為更好數據通信提供一個標準,現在已有超過20個項目支持了GeoJSON,包括客戶端的和服務器端的,而且大多數語言都支持JSON。如果你喜歡這種更輕量級的解決方案,那么就加入進來吧。更多請訪問:
http://www.geojson.org/geojson-spec.html#appendix-a-geometry-examples
?
[5]?? 一個OpenLayers的簡單例子:
//初始化map
var featurecollection = 'geojson對象';
//獲得一個geojson的模板
var geojson = new OpenLayers.Format.GeoJSON();
var layer = new OpenLayers.Layer.Vector();
//用模板來解析這個geojson對象
layer.addFeatures(geojson.read(featurecollection));
map.addLayer(layer);
轉載于:https://www.cnblogs.com/chuang8/p/3230240.html
總結
以上是生活随笔為你收集整理的WEBGIS体系和OGC标准的全部內容,希望文章能夠幫你解決所遇到的問題。