简介
@mapbox/geojson-segment是一个在地图上进行GeoJSON对象分段的工具包,能够将GeoJSON对象按照一定的规则分割成若干个子GeoJSON对象,便于进行地图显示和分析操作。
安装
npm install @mapbox/geojson-segment
使用
函数
segment
function segment(geojson: GeoJSON, options?: Options): GeoJSON[];
segment
函数是整个包的核心函数,它接受一个GeoJSON对象和一些可选的选项,然后将GeoJSON对象分成若干个子GeoJSON对象。结果以数组形式返回。
interpolate
function interpolate(geometry: any, distance: number): any;
interpolate
函数是本工具包内部的一个函数,用于在给定的GeoJSON几何体上插入点,使得GeoJSON几何体被切成若干个等长的线段。它接收一个几何体对象和一个距离值,返回被插入点后的几何体对象。
选项
segment
函数接受一个可选的options
参数。
-- -------------------- ---- ------- --------- ------- - --- - --------- -- ------------- -------- --- - --------- -- ------------- ------- --- - --------- -- --------------- ------- --- - --------- -- ------------- ------- -展开代码
options
对象具体说明:
roadNetwork
:布尔型参数,表示是否适用于房屋版图的分割规则。默认为false
,表示适用于普通情况的分割规则。如果设置为true
,则采用房屋版图的分割规则。房屋版图的分割规则会将宽度大于30米的路段分成若干个相等长度的子路段。maxDistance
:数值型参数,表示最大距离,用于限制插值时两个插值点之间的距离,单位是米。segmentLength
:数值型参数,表示线段长度,用于控制GeoJSON对象的分段粒度,单位是米。earthRadius
:数值型参数,表示地球半径,用于进行插值计算,单位是米。默认值为地球半径的平均值6371008.8米。
示例
-- -------------------- ---- ------- ------ - ------- - ---- -------------------------- ----- ------- - - ----- ------------- ------------ - --------------------- ------------------- --------------------- ------------------- --------------------- ------------------- --------------------- -------------------- --------------------- ------------------- -- ------ --------------------- ------------------ --------------------- ------------------- --------------------- ------------------- --------------------- ------------------- - -- ----- -------- - ---------------- - ------------ --- -- ---------------- -------------- ----- -- ------------------------ --- ----------------------展开代码
在上面这个例子中,我们将一条LineString类型的GeoJSON对象输入到函数中,然后指定了maxDistance
和segmentLength
选项,将其分割为若干个LineString类型的对象,存放在数组中。我们可以将线段坐标数组输入到地图API中,用于地图展示分段效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bcb967216659e244696