使用Turf的squareGrid
函数可以在指定的范围内创建一个网格。网格可以按照一定的间隔和单位进行创建。
bbox
:表示创建网格的范围。可以是一个由4个数字组成的数组[minX, minY, maxX, maxY]
,或者是一个包含这4个数字的GeoJSON对象。
cellSize
:表示网格单元格的大小。可以是一个数字代表单元格的边长,也可以是一个字符串(如"2 miles"或"10 kilometers")代表单元格的长度单位。
units
:表示cellSize
的长度单位。可选值包括degrees
,radians
,miles
,kilometers
,yards
和feet
,默认为kilometers
。
mask
:一个GeoJSON对象,表示网格中不允许出现的部分,这些部分会被删除。
该函数返回一个表示网格的GeoJSON对象,其中包含一个FeatureCollection
,每个特征都代表网格中的一个单元格。
每个单元格具有以下属性:
bbox
:单元格所在矩形区域的范围
id
:单元格的唯一标识
properties
:一个空的属性对象
geometry
:一个表示单元格几何形状的GeoJSON对象
var bbox = [-90, 30, -85, 40];
var cellSize = 10;
var squareGrid = turf.squareGrid(bbox, cellSize, {units: 'miles'});
console.log(squareGrid);
输出:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[-90, 30],
[-90, 32.851339183141316],
[-88.4178480736721, 32.851339183141316],
[-88.4178480736721, 30],
[-90, 30]
]
]
},
"id": "1"
},
// 其他单元格特征
]
}
上述例子将在bbox
指定的范围内创建一个网格,每个单元格的大小为10英里。返回结果为一个GeoJSON对象,其中包含一个FeatureCollection
,每个特征都代表网格中的一个单元格。每个单元格都是一个表示多边形的GeoJSON对象。
如果指定的范围太小或单元格大小太大,则该函数可能会引发错误。如果发生此类情况,请调整范围或单元格大小,并再次尝试。