初看题目可能觉得有点懵,下面小编通过具体案例来分析方便大家理解。下图一为一个polygon层王者,有类别,unique,long。图二为一个table层英雄,现在我想为每一个英雄都生成一个图形。
图一 polygon层王者
图二 table层英雄
其实上图的图形和属性都是有对应关系的。就是table层的代码字段和polygon层的类别字段,想生成多个图形只能通过对应关系做文章。
按照小编以前的方法,如果只通过ArcGIS,步骤比较多。1,通过将图形层转点;2,点层计算XY坐标;3,点层通过对应编码join到table层上;4,将join好的table层导出属性表;5,通过属性表中的X,Y坐标生成事件产生多个点;6,将事件导出成点层;7,通过spatialjoin(参数:one-to-many)将新产生的点层与原来的polygon进行空间关联。是不是很麻烦。
现在小编介绍给大家一个快速的方法,通过ArcSDE+(ORACLE,SQLSERVER,POSTGRESS,上述三种都可以)的方法快速解决这个问题。
只要将数据放入sde中,通过下面几行代码就直接生成图形了。
select t.SHAPE,t.类别,v.人物/*创建一个关联表*/
into 王者荣耀
on t.类别 = v.代码
from 王者 t
inner join 英雄 v
alter table 王者荣耀 add OBJECTID int identity(1,1)/*增加序列*/
效果如下:
小编自己家的SDE是SQLSERVER的,所以代码是T-SQL的,其他的数据库的话代码其实只要简单改一改就好了。
这里其实大家要理解一个思路,所谓的图形在数据库里无非只是一个特殊的字段(blob),所以通过数据库来理解的话就比较容易了,其实最后的图属关联无非还是属性关联。
到这里呢,今天的内容就结束了,喜欢请扫描下面二维码关注^_^。
领取专属 10元无门槛券
私享最新 技术干货