zoukankan      html  css  js  c++  java
  • 数据处理:由面得点,构造其边界

      上周做了一次数据处理:根据中国区域的面状数据,得到省界,再由省界边线转换成点,得点坐标并在一个三维场景Openwebglobe里面构造边界,因为暂时只知道由点坐标来构造线。

    工具:ArcToolbox、Excel

    过程:

    1.由面数据得线数据。(由于在三维场景中点数据构造线数据时,其内在渲染方式的问题,需要注意公共边的问题,需要使用“Select Features”这个工具,可以单独处理同一图层内不同部分的数据(很关键的一步)。

    2.简化线。

    3.线转点,并获取点的坐标。

    4.属性表导出整理。

    效果图:(左图为源数据,右图为结果)

    详细过程:

    1.面转线

    因为面数据是带属性的,而属性表中的省名是很重要的,是后面识别各省区的重要字段,所以转换时要保留这些重要属性,故使用“Feature to Line”,如果使用“Polygon to Line”的话,这些属性就没了。如图所示,左图为Feature to Line的结果,右图为Polygon to Line的结果。

     

    另外,这里有点特殊,因为在Openwebglobe中渲染机制的问题(不了解,只能用下面所说办法了),需要的是不相邻省区边界转换出来的点坐标来构造线,否则会出现线条混乱的问题。

    可是一整块面状数据如何将不同省区分多次弄出来呢?可以通过“Select Features”这个工具,将他们点选出来,使用“Feature to Line”时,就会只处理点选部分数据,多次处理后就可以得到不相邻省区的数据了。

    2.简化线

      转换之前,先把线简化一下,要不后面转换出来的点密密麻麻的(将近3万个点),工作量会剧增。使用“Simplify Line”这个工具,通过搜索找到它。

      可以看到,把线简化以后,线上的折点少了很多,这样下一步根据线转换出折点时,点的数量会少很多,减少工作量,这里简化时设置最大允许偏移容差是15000m,因为要求不是精确,只是示意性展示。

      这一步其实是在面转线完毕后进行的,当时处于摸索阶段,所以顺序搞错了,实际上是得到不相邻省区的各个图层后,再做多次简化处理。

    3.线转点,并获取坐标

    使用“Feature Vertices To Points”,根据线数据转换得到折点,可以看到线简化之后,点的数量明显减少。

    当然,最终我们还是要获取点的坐标,“Add XY Coordinates”可以帮助我们,得到点图层的所有点数据的坐标,并自动更新到属性表里面。

      

    4.属性表处理

    将属性表导出来,用Excel进行处理,批量整理成符合格式需求的数据,这一步会有些工作量,然后将整理好的数据进行构造即可。

    附Openwebglobe相关地址:https://github.com/OpenWebGlobe 下载WebViewer

    http://www.openwebglobe.org/  官网,页面已经更新了,论坛可访问,后续会有新的版本出来,修正一些Bug。是不是可以不用手动构造了呢?

  • 相关阅读:
    centos8重置root密码
    Mysql查询某列最长字符串记录
    ssm连接mysql出现Connections could not be acquired from the underlying database 问题
    spring-基于xml配置Bean
    WinForm控件命名缩写
    SQL Server 将一张表的某个字段更新到另一张表中
    SQL Server 取出指定字符后字符串(用于分割)
    小白学CMD下运行MySQL
    Bootstrap3.0和bootstrap2.x的区别
    有关js弹出提示框几种方法
  • 原文地址:https://www.cnblogs.com/colinhou/p/2833247.html
Copyright © 2011-2022 走看看