GIS常用npm包:GeoJSON文件合并与元素过滤\属性过滤\图形合并
GeoJSON文件合并
普通的geoJSON文件合并,只需geojson-merge插件就够了,https://www.npmjs.com/package/@mapbox/geojson-merge
-
mergeFeatureCollectionStream 合并文件
Merge GeoJSON files containing GeoJSON FeatureCollections into a single stream of a FeatureCollection as a JSON string.
-
merge 合并GeoJSON数组
Merge a series of GeoJSON objects into one FeatureCollection containing all features in all files. The objects can be any valid GeoJSON root object, including FeatureCollection, Feature, and Geometry types.
合并文件,官网的案例
1 2 3 | var geojsonMerge = require( '@mapbox/geojson-merge' ); var mergedStream = geojsonMerge.mergeFeatureCollectionStream([ 'features.geojson' , 'others.geojson' ]) mergedStream.pipe(process.stdout); |
在浏览器端,需要导入文件,fileReader读取文件,获取json,再合并
1 2 3 4 | var geojsonMerge = require( '@mapbox/geojson-merge' ) let features = [] // Todo push jgeoJSON let jsonObject = geojsonMerge.merge(features) |
GeoJSON过滤
GeoJSON一feature properties过滤
https://www.npmjs.com/package/turf-filter
turf.filter(features, key, value)
1 2 3 4 5 6 7 8 9 10 11 12 13 | var features = turf.featurecollection([ turf.point([-72.581777, 44.260875], {species: 'oak' }), turf.point([-72.570018, 44.260691], {species: 'birch' }), turf.point([-72.576284, 44.257925], {species: 'oak' }), turf.point([-72.56916, 44.254605], {species: 'redwood' }), turf.point([-72.581691, 44.24858], {species: 'maple' }), turf.point([-72.583837, 44.255773], {species: 'oak' }) ]); var key = 'species' ; var value = 'oak' ; var filtered = turf.filter(features, key, value); |
这个过滤比较简单,https://www.npmjs.com/package/feature-filter-geojson
可以增加过滤规则,具体还是看官方文档。在浏览器端,其实用第一个就好
1 2 3 4 5 6 7 8 9 10 | var ff = require( 'feature-filter' ); var filter = [ "all" , [ "==" , "class" , "street_limited" ], [ "<=" , "admin_level" , 3], [ "!=" , "$type" , "Polygon" ] ] var testFilter = ff(filter); let feature = GeoJSONObject testFilter(feature); |
https://www.npmjs.com/package/geojson-filter,这个也是一样的,但是推荐用第一个
geojson-dissolve
GeoJSON 里面的点线面合并为Multi(point/linestring/polygon)
Dissolve contiguous GeoJSON (Multi)LineStrings and (Multi)Polygons into single units.
说实话,这个实际项目,我目前还没有用到。
merge polygon 合并多边形
merge-simple-polygons:https://www.npmjs.com/package/merge-simple-polygons
Merge two (adjacent) simple polygons into another simple polygon.
Takes two arrays of vertex IDs, each spanning a planar polygon and returns:
-
false if the given polygons share no vertices
-
null if there would be more than one resulting simple polygon (if the two given polygons share either exactly one vertex, which would result in two polygons or multiple egdes that are not connected, which would result in a polygon with a "hole")
-
a list of vertex IDs forming the merged polygon
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const mergePolygons = require( 'merge-simple-polygons' ) const polygonA = [ 'a' , 'b' , 'c' , 'd' , 'e' ] const polygonB = [ 'e' , 'a' , 'g' , 'h' , 'i' , 'd' ] const polygonC = mergePolygons(polygonA, polygonB) console.log(polygonC) // ['a', 'b', 'c', 'd', 'i', 'h', 'g'] const polygonD = [ 'a' , 'b' , 'c' ] const polygonE = [ 'd' , 'e' , 'f' ] console.log(mergePolygons(polygonD, polygonE)) // false const polygonF = [ 'a' , 'b' , 'c' , 'd' , 'e' ] const polygonG = [ 'a' , 'b' , 'f' , 'e' , 'd' , 'g' ] console.log(mergePolygons(polygonF, polygonG)) // null |
这个,turfjs http://turfjs.org/docs/#booleanContains
其他GIS数据转 GeoJSON
Turn your geo data into GeoJSON.
转载本站文章《GIS常用npm包:GeoJSON文件合并与元素过滤\属性过滤\图形合并》,
请注明出处:https://www.zhoulujun.cn/html/GIS/WebGIS/8201.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了