之前写过关于占地分析的方案,使用的是geoserver地图服务分析数据,这次还可以使用turf.js来实现功能,改效果展示的是切割效果

  • 具体可从以下链接查看turf.js的一些操作:
  • Turf.js中文网
  • 使用的地图是:MapBox
/*** 占地分析*/export const SPACE_QUERY_FUN_L = async (ShpName1, ShpName2) => {const queryInfo1 = await axios.get(`/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&outputFormat=application/json&typeName=${ShpName1}`)const queryInfo2 = await axios.get(`/geoserver/wfs?service=wfs&version=1.1.0&request=GetFeature&outputFormat=application/json&typeName=${ShpName2}`)const allValues = queryInfo2.data.featuresconst e = turf.flatten(queryInfo1.data.features[0].geometry)const allValues1 = e.featuresconst allFeatures1 = []for (let i = 0; i < allValues1.length; i++) {const converted = turf.toWgs84(allValues1[i])allFeatures1.push(converted)}const allFeatures_zdfx = ZDFX_LAYER_MEOD(allValues, queryInfo1)return allFeatures_zdfx
}export const ZDFX_LAYER_MEOD = (allValues, queryInfo1) => {const allFeatures = []for (let i = 0; i < allValues.length; i++) {const intersection = turf.intersect(turf.toWgs84(turf.flatten(allValues[i].geometry).features[0].geometry),turf.toWgs84(turf.flatten(queryInfo1.data.features[0].geometry).features[0].geometry))if (intersection !== null) {const newVal = { ...intersection, properties: allValues[i].properties, id: allValues[i].id }allFeatures.push(newVal)}}if (allFeatures.length) {return turf.featureCollection(allFeatures)} else {allFeatures.features = []return allFeatures}
}

思路:
1.首先获取两个图层的属性信息拿到geometry数据
2.由于返回的图层是一个多多边形,所以需要处理减少嵌套使用turf.flatten方法
3.然后转换坐标,将投影坐标转换成地理坐标,使用turf.toWgs84方法
4.然后将转换之后的两个数据进行比较交集,使用turf.intersect方法
4.这时候就得到了我们想要的效果,展示到地图上就有切割效果了

如图:

![](https://img-blog.csdnimg.cn/a0f958806a1e484584ed26b8c230da6e.png#pic_center

利用turf.js分析数据---占地分析相关推荐

  1. Turf.js——用于地理空间分析的js库,处理各种地图算法

    Turf.js--用于地理空间分析的js库,处理各种地图算法 一.官网 中文--https://turfjs.fenxianglu.cn/ 英文--https://turfjs.org/ npm地址- ...

  2. Turf.js(地理空间GIS分析的js库),处理地图相关算法

    场景 Turf.js Advanced geospatial analysis for browsers and Node.js 浏览器和Node.js的高级地理空间分析. 特点 Modular, s ...

  3. EDG夺冠,用爬虫+数据分析+自然语言处理(情感分析)+数据可视化分析3万条数据:粉丝都疯了(唯一原创)

    原创不易,本文禁止抄袭.转载,违权必究! 目录 一.EDG夺冠信息 二.实战目标 2.1 网络爬虫 2.2 数据可视化(词云图) 2.3 自然语言处理(情感分析) 三.bilibili接口分析 四.编 ...

  4. 利用Turf.js实现点线面几何体的拓扑关系判断

    通过官网http://turfjs.org/或者github https://github.com/Turfjs/turf了解 第一步:先引用js文件 <script src='https:// ...

  5. 数据分析之数据质量分析和数据特征分析

    1.数据质量分析 数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础,没有可信的数据,数据挖掘构建的模型将是空中楼阁. 数据质量分析的主要任务 ...

  6. 数据治理分析项目最佳实践

    当今信息化建设程度不断深入,企业在优化整合各种IT能力,使IT成为企业的前进驱动力与核心竞争力的同时,将视角关注于更深层次的数据治理与分析,预示着以数据.流量.知识为主的数字经济时代到来,此背景下,数 ...

  7. python分析pdf年报 货币现金_如何用Python从大量pdf 中提取表格中的数据进行分析?...

    根据一楼答案@森林的建议 说说我的处理经验 我也是借助开源项目tabula,不得不说tabula的功能确实很强大. 我是用Python来处理数据,但是没有用tabula-py,因为表格跨列跨行等情况比 ...

  8. 电子取证实例:基于文件系统的磁盘数据取证分析

    0×1 简介 随着计算机犯罪个案数字不断上升和犯罪手段的数字化,搜集电子证据的工作成为提供重要线索及破案的关键.恢复已被破坏的计算机数据及提供相关的电子资料证据就是电子取证.NSTRT也曾协助进行过电 ...

  9. 《Python数据分析与挖掘实战》一3.1 数据质量分析

    本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第3章,第3.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...

最新文章

  1. UITextField长度限制的写法
  2. Linux缓冲区溢出问题
  3. 关于数据存储的经典题
  4. Hadoop源代码分析(四)
  5. vi - a linux command
  6. 初次使用NHibernate遇到的问题
  7. Response.End()在Webform和ASP.NET MVC下的表现差异
  8. 下一站,北京-欢乐谷
  9. 虚拟机体验NAS私人云(第四篇):虚拟机安装群晖DSM7.01系统(附赠新版DS918+和DS3615xs启动映像)
  10. PPT制作教程—基础技巧
  11. 斜线“\”与反斜线“/”应用场景的整理(转)
  12. matlab 怎么求直线斜率,matlab中如何求近似(不平滑)直线的斜率
  13. excel 画图_Excel做数据分析?看这篇就够了!
  14. 20岁后长高增高秘诀
  15. HIS(医院信息系统HospitalInformationSystem)
  16. CSDN电子书PC端上线:打造高效阅读、助力问题解决
  17. rust: 引用第三方库(Cargo.toml、Cargo.lock文件)
  18. 用计算机猜手机锁屏密码,手机开机密码忘了怎么办(教你几招快速解开锁屏密码)...
  19. ERP系统也有生产管理的功能,它与MES管理系统有什么差异
  20. 新增量赛道启动,车规级高精度定位方案商竞争力TOP10

热门文章

  1. 元宇宙务“虚”,网易智企务“实”
  2. PostgreSQL vacuum原理一功能与参数
  3. 离线安装K3S Server(v1.19.8+k3s1)
  4. google chorme f2 无法打开开发者工具
  5. GPG error: NVIDIA NO_PUBKEY A4B469963BF863CC
  6. 计算机毕业设计springboot轰趴馆管理
  7. 一般测试测几轮?每轮测什么?
  8. EnhancerAtlas:人和小鼠的增强子数据库
  9. 汤雪梅:中国第一打工女皇不当总裁爱创业
  10. 拥抱夏天的方式有很多,来这12处避暑凉爽整个夏天