一、数据的获取
- 数据是从湖泊-流域科学数据中心上面下载的,不过呢,下载之前需要进行实名认证,并且填写数据的用途。如果需要的是三级数据(更详细的数据),申请起来会更加麻烦(填写申请表、打印、盖章、签字等)。
- 网站上面要求是不要随意传播的,如果需要的话自己去申请就好,也不需要费用,只不过大概要等一天。如果实在急,可以私聊我发给你原始的数据(下边给出的数据不是原始数据,因为经过了我的处理)。
二、数据的转换
- 下载好数据之后,将以“.shp”为后缀名的文件转成geojson形式,就可以在openlayers显示出来了,当然也可以转成其他的形式。
- 我用的是geoserver来转换的。发布服务选择好坐标系就可以了,因为Openlayers默认的坐标系是EPSG:3857,所以我选择的是3857坐标系。
- 转换好的geojson数据不经处理是不能显示的,我删除了一些东西就能显示了。
- 这是淮河流域geojson格式边界数据的下载链接:
https://www.aliyundrive.com/s/HT2rStLp4kk
三、数据的显示
- 我用的Openlayers版本是3点几的,显示轮廓的关键代码如下:
var layer = new ol.layer.Vector({
title: 'add Layer',
source: new ol.source.Vector({
projection: 'EPSG:3857',
url: "huai.json",
format: new ol.format.GeoJSON()
})
});
map.addLayer(layer);
- 代码说明:上面的huai.json就是淮河流域边界数据的文件名,最后用map对象的addLayer()方法将图层加到地图上显示。
四、效果
以下是我做的项目的截图:
轮廓数据还是比较精确的,起码比自己随便勾画的精确。有什么不懂的可以留言。