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.
合并文件,官网的案例
var geojsonMerge = require('@mapbox/geojson-merge');
var mergedStream = geojsonMerge.mergeFeatureCollectionStream(['features.geojson','others.geojson'])
mergedStream.pipe(process.stdout);
在浏览器端,需要导入文件,fileReader读取文件,获取json,再合并
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)
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
可以增加过滤规则,具体还是看官方文档。在浏览器端,其实用第一个就好
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
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
GIS常用npm包:GeoJSON文件合并与元素过滤\属性过滤\图形合并的更多相关文章
- nodejs常用npm包
express常用npm包整理如下 art-template 一款js模板引擎,性能不错 jayson 一款纯node的rpc应用包,可实现rpc服务.tcp.http等服务 multer ...
- 7. Buffer_包描述文件_npm常用指令_fs文件读写_模块化require的规则
1. Buffer 一个和数组类似的对象,不同是 Buffer 是专门用来保存二进制数据的. 特点: 大小固定: 在创建时就确定了,且无法调整 性能较好: 直接对计算机的内存进行操作 每个元素大小为1 ...
- nodejs npm包管理常用命令介绍
1.输入 npm config ls -l 可以查看当前的设置 2.针对某一项设置,可以通过下面方式: npm config set 属性名 属性值 eg:npm config set prefix ...
- 关于 npm 包管理器最常用的内容都在这儿了
Nodejs的诞生,给前端开发世界带来了翻天覆地的变化. 前端工程化,各种工具,以及向后端的能力扩展. 车子离不开轮子,node(前后端)开发离不开npm这个包管理工具,在这总结下常用配套工具: np ...
- npm的.npmrc文件在哪里?缓存及全局包文件在什么位置?
npm的.npmrc文件在哪里?缓存及全局包文件在什么位置? npm作为node开发过程中的必备工具,长期使用之后,您可能会想:这些全局安装的node包都放在硬盘里面的哪个地方?配置文件.npmr ...
- SSH框架应用中常用Jar包用途介绍
struts2需要的几个jar包:1)xwork-core-2.1.62)struts2-core-2.1.83)ognl-2.7.34)freemarker-2.3.155)commons-io-1 ...
- 记npm包开发全过程
概述 为什么开发npm包? 如何开发? 如何写单元测试? package.json 如何发布模块? 如何使用? 为什么开发npm模块? NPM的全称是Node Package Manager,是一个N ...
- 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包
前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...
- 了解可执行的NPM包
NPM是Node.js的包管理工具,随着Node.js的出现,以及前端开发开始使用gulp.webpack.rollup以及其他各种优秀的编译打包工具(大多数采用Node.js来实现),大家都开始接触 ...
- npm的packagejson文件
一.name,npm包名name和version字段是package.json文件中最重要的字段,都是必须的字段,如果你的npm包没有指定这两个字段,将无法被安装.name和version字段被假定组 ...
随机推荐
- c# 光学三原色混合,颜色叠加-dong
东的备注: 光的三原色:红.绿.蓝 红+绿=黄 红+蓝=品红 蓝+绿=青 红+绿+蓝=白 无颜色为黑 下看代码 Bitmap image1 = new Bitmap(500, 500);//红 Bit ...
- C#.NET 国密SM4 CBC 对称加解密 与JAVA互通 ver:20231103
C#.NET 国密SM4 CBC 对称加解密 与JAVA互通 ver:20231103 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JA ...
- 分享一次公司晋级考试的SQL题目,非常有趣的案例(postgresql 标量子查询 where lie 谓词过滤条件)
同事今天晋级高级工程师考试,发来一道公司出题目让我帮忙进行优化,其中场景二的案例非常有意思. 题目内容如下: 原始SQL: scott=> explain analyze scott-> ...
- iOS程序生命周期流程
盛年不重来,一日难再晨.及时宜自勉,岁月不待人. iOS系统资源是有限的,合理的去配置应用程序的运行状态以及了解app的生命周期对于大多数开发者来说是很重要的一件事情!在后台进行运行时app会受到 ...
- 3款高评价的.Net开发的WMS系统推荐
本文简介 WMS仓库管理系统是一款专业的仓库管理系统,旨在帮助企业实现仓储管理的智能化.信息化和自动化.通过该系统,企业可以实现对仓库的进货.出货.库存等各个环节的全面把控,提高仓储管理水平,降低运营 ...
- 如何搭建园区3d可视化大屏
搭建园区3D可视化大屏需要考虑多个方面,包括硬件设备.数据源获取.软件工具和可视化设计. 以下是一个详细的步骤指南,帮助您了解如何搭建园区3D可视化大屏. 1. 硬件设备选择: - 显示屏幕:选择适合 ...
- centos虚拟机安装
目录 一.准备工作 1.vmware workstation软件安装 2.准备ios镜像 二.创建Centos虚拟机 三.进行Centos7的系统安装 四.虚拟机快照的使用 1.创建虚拟机快照 2.还 ...
- C++ 邮件槽ShellCode跨进程传输
在计算机安全领域,进程间通信(IPC)一直是一个备受关注的话题.在本文中,我们将探讨如何使用Windows邮件槽(Mailslot)实现ShellCode的跨进程传输.邮件槽提供了一种简单而有效的单向 ...
- [ABC281F] Xor Minimization
div class="part"> Problem Statement You are given a sequence of non-negative integers $ ...
- vue-test ------class绑定
<template> <p :class="{'active':isActive}">Class样式绑定</p> <p :class=&q ...