zoukankan      html  css  js  c++  java
  • WEBGIS体系和OGC标准

    WEBGIS体系和OGC标准

     

    1. WEB地图

    -         以数据为核心的巨头网站

    -         指路导航网站

    -         地图社区和其它重视兴趣点的应用

    1. GML:是一个基于XML之上的地理信息描述、转换、传输的标准。

    -         打开天地图网站,运行搜索服务,点击浏览器调试工具,网络,可以看到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 获取对象信息

    1. WFS(Web Feature Service)

    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(锁要素)

    1. GeoJSON

    { "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);

    1. KML——Google Earth数据格,用于保存用户添加的地标等数据。kmz是kml的压缩格式。保存的kml文件类似ArcMap中的mxd文件。具体格式写法可以用EditPlus打开。
  • 相关阅读:
    Binomial Coeffcients(山东省第二届省赛G题)
    合法的C标示符(判断是否是数字或字母)
    HDU2544最短路问题Floydwarshall Algorithm做法
    简单N的阶乘
    手动实现类的属性
    基本语法基本的数据类型
    UITableViewCell的背景
    基本语法类
    UITableView专题
    单击视图空白处隐藏IPhone键盘
  • 原文地址:https://www.cnblogs.com/chuang8/p/3230240.html
Copyright © 2011-2022 走看看