浅谈WebGIS开放数据(矢量数据)

今天上午本来打算学习ol3的专题地图制作,查阅很多资料发现ol3并不支持专题制图制作,反观ol2却支持,专题地图用处很大,不知道为啥,ol3不支持了,看了一上午开放性数据,在这里聊聊我的看法。

一、主流开放数据格式

  • KML是一中文件格式
  • GML是一种地理标记语言
  • GPX是一种XML格式
  • GeoJSON是一种地理对地理结构进行编码的格式

以上四种是主流的开放格式ol3也都支持加载和解析

二、客户端绘制和服务器端绘制

在这里了解两个名词客户端绘制和服务器端绘制:

1、客户端绘制:是将服务端返回的数据进行在渲染制图,这种方式适合少量数据大量数据就会造成瘫痪,ol3中也提供几种改进方式例如BBOX策略,只获取视图范围的数据,视图范围改变进行再次请求服务器,但是这种方式造成请求次数过多,ol3又改进BBOX策略请求,形成Filter策略,这种方式缩小请求范围,避免了下载所有数据,又保证Filter的高效,客户端绘制的优势是一旦从服务器获得矢量数据,Web地图用户就能可以数据交互。

2、服务端绘制:是将地图绘制好返回图片给服务器端,缺点交互性差

三、KML

KML是由要素和栅格数据组成,这些元素包括点、线、面、影响、图形、图片、属性等比较多,这和arcgis截然相反,arcgis中数据集是独立单一要素(点要素只能包括点,先要素只能是线)格式示例:

        <Placemark>
          <styleUrl>#style-Parking</styleUrl>
          <Point>
            <coordinates>7.5584046,46.4880564,0</coordinates>
          </Point>
        </Placemark>

KML中最重要的XML标签是Placemark,他定义地理要素、符号、HTML描述标签等,例如上面地标就是Point。

ol3使用示例:

                //实例化矢量数据源,用KML格式的类解析
                var vectorSource = new ol.source.Vector({
                    url: dataUrl,
                    format: new ol.format.KML()
                });

四、GML

GML能够表示地理空间对象和非空间数据运用GML,封装的地理数据和图形解释是清楚分离的数据格式如下:

-<gml:featureMember>

<FID>2</FID>

<ID>3</ID>

<长度>0.00666304818749164</长度>

<道路名称>东亭路</道路名称>

<道路等级/>


-<Lin>


-<gml:multiLineString>


-<gml:lineStringMember>


-<gml:LineString>

<gml:coordinates>114.354756647044,30.5692995197076 114.355329432955,30.5699232772349 114.357219473538,30.571925709305 114.359205347945,30.5741088619185 114.359238150552,30.5742208752377</gml:coordinates>

</gml:LineString>

</gml:lineStringMember>

</gml:multiLineString>

</Lin>

</gml:featureMember>
如上描述、地理要素一目了然。

五、GPX

是一种为应用软件设计的通用的GPS格式,它可以同来描述点、轨迹、路程。这个格式是免费的,它保存的位置、海拔和时间在不同的GPS设备和软件之间进行交换。数据格式如下:

<wpt lat="42.454873" lon="-71.125094">
 <ele>96.926400</ele>
 <time>2001-06-02T03:26:59Z</time>
 <name>5224</name>
 <desc><![CDATA[5224]]></desc>
 <sym>Dot</sym>
 <type><![CDATA[Intersection]]></type>
</wpt>

ol3使用示例:

                 //实例化矢量数据源,用GPX格式的类解析
                var vectorSource = new ol.source.Vector({
                    url: dataUrl,
                    format: new ol.format.GPX()
                }); 

六、GeoJSON

是基于JSON对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征、特征集合。GeoJSON支持的集合类型有:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和属性,特征集合表示一系列特特征。对于同样的要素,相对于KML这种基于XML结构的格式,GeoJSON要小很多。但是GeoJSON并不像KML那样包含样式信息。需要在客户端定义样式,GeoJSON简单加载速度快。数据格式如下:

{
  "type": "FeatureCollection",
  "crs": {
    "type": "name",
    "properties": {
      "name": "EPSG:3857"
    }
  },
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [0, 0]
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [[4e6, -2e6], [8e6, 2e6]]
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [[4e6, 2e6], [8e6, -2e6]]
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [[[-5e6, -1e6], [-4e6, 1e6], [-3e6, -1e6]]]
      }
    }
  ]
}

ol3使用示例:

                var vectorSource = new ol.source.Vector({
                    url: dataUrl,
                    format: new ol.format.GeoJSON()
                })

七、总结

KML和GeoJSON比较常用,关于GML加载的示例没有找到较好的,等后期找到了增加上,通过一上午的研究对开放性数据也算有一个小的了解,现在感觉理论很重要,如果我们只会一些操作,我们始终迷惑的,关于OL3源代码我觉得还是有必要研究一下,了解其构造无论使用还是自定义写一些组件都会有很大的帮助。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
北京市气象数据分布式系统是一种基于webgis技术实现的气象数据管理平台,旨在为北京市气象局提供数据共享、数据查询、数据分析和数据可视化等功能,以促进气象数据的有效利用和管理。 该系统主要包括以下模块: 1. 数据管理模块:实现气象数据的采集、存储、管理和更新等功能,确保数据的完整性、准确性和时效性。 2. 数据查询模块:提供多种查询方式,包括时间、地点、指标等,用户可以根据需要自由组合查询条件,查询所需气象数据。 3. 数据分析模块:提供多种数据分析方法,包括趋势分析、时间序列分析、空间分析等,用户可以根据需要对气象数据进行分析和比较,发现数据的规律和趋势。 4. 数据可视化模块:提供多种数据可视化方式,包括图表、地图、动态展示等,用户可以根据需要将气象数据以可视化形式呈现,更加直观、易于理解。 5. 数据共享模块:实现数据的共享和交流,用户可以将自己的数据分享给其他用户,也可以获取其他用户的数据,促进气象数据的共享和交流。 6. 安全管理模块:确保气象数据的安全性和保密性,包括用户身份认证、数据加密、访问权限控制等,保障用户的数据安全和隐私。 通过以上模块的集成和协作,北京市气象数据分布式系统能够为用户提供全面、灵活、安全的气象数据管理服务,实现气象数据的高效利用和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值