一、先用QGIS绘制一个环形Feature并保存为GeoJson,看看环形Feature的数据结构是什么样
- 先绘制一个多边形,右键保存
- 在绘制好的多边形内添加环形(注意:这期间左下角一定要选中所编辑layer,否则会报错)
- 如果没有这个组件,右键工具栏,勾选Advanced Digitizing Toolbar
- 导出咱们刚刚画好的这个环形Feature为GeoJson
- 打开刚刚保存的GeoJson文件,看看它的数据结构,发现环形Feature的里外两个环的坐标数组都放在coordinates内,且外环在前,内环在后:
{
"type": "FeatureCollection",
"name": "test",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"features": [
{
"type": "Feature",
"properties": {
"id": 1
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
98.62682583778792,
54.32228639928258
],
[
109.40281163615893,
55.957263554897494
],
[
116.64873312127047,
55.02829926193448
],
[
117.35474598392236,
52.94741924569732
],
[
114.64217024847035,
51.832662094141696
],
[
112.7842416625443,
50.68074637086755
],
[
103.71755016322525,
50.792222086023116
],
[
98.62682583778792,
54.32228639928258
]
],
[
[
103.9976189834291,
53.8974727328586
],
[
105.91267520881026,
51.91148849913
],
[
107.99323012033545,
54.18118476624841
],
[
103.9976189834291,
53.8974727328586
]
]
]
]
}
}
]
}
二、着手制作镂空的内蒙区域GeoJson
了解环形Feature的GeoJson结构之后,接下来我们可以把现有的内蒙古区域GeoJson改造一下,让它变成镂空的。
- 用QGIS画个方框,一定要把内蒙整个包进去,然后获得这个方框的坐标数组,具体过程不作赘述
- 我这获得的坐标数组:
[ [ 70.35465968686151, 73.302099634723305 ], [ 158.04277887424999, 73.181814148869549 ], [ 157.922493388396219, 11.234788934184962 ], [ 70.114088715153997, 12.317358306868769 ], [ 70.35465968686151, 73.302099634723305 ] ]
- 修改内蒙的GeoJson文件,把上一步获得的坐标数组加到内蒙边界坐标数组前边
- 加载一下修改好的GeoJson看看效果:
三、搞这有啥用?
- 制图时多叠一层它实现白化