supermap二次开发从0到1

1、为何要写这篇博客

地理信息系统门外汉,计算机背景。项目要求基于csharp、supermap进行开发。在看了supermap的实例程序后,发现没有本身能用的,有的示例有参考价值,但也是边边角角,不成系统。须要本身整理思路。

2、需求

同事提供了一个算法接口,根据输入的经纬度以及其余参数,计算出某一点的某属性值(相似于高度等高程值),项目须要计算出中国范围内的每一个点的属性值,而后根据属性值的不一样,渲染颜色后呈如今地图上(后来知道这叫专题图)。

3、supermap状况介绍

我用的是supermap iobjet 8c,机器是64位的。因为集成了其余的软件接口,因此必须生成64位的程序,所以只能安装supermap64位安装包。这样就不能拖放控件,也不能运行示例程序(示例均为32位)。

4、开发历程

1.首先根据入门程序,实现了在winform窗体中加入mapcontrol,而后打开工做空间,显示地图的功能。
2.调用接口,计算每一个点的值(以一经度、一纬度为间隔), 定义一个二维数组rec[][],来存储各个点的值,通过查看帮助文档,我大概了解到须要生成栅格专题图。那么我须要生成栅格数据,最开始我认为个人数组数据就包含了栅格数据须要的信息。因此我就想直接生成栅格数据集,而后把属性值和对应经纬度填进去就好了。可是询问客服说通常都不会这么作,会使用插值算法生成栅格数据。
可是咨询过程当中supermap人员反复问我。
人:你的点数据是怎么取的?
我:  个人数据是根据经纬度算出来的啊(凌乱中)
人:经纬度是怎么取的?
我:  就是中国地图的点上的经纬度?(这是什么问题???)
人:就是坐标系不同,经纬度也不同,你这个参考系是什么参考系?要先肯定这个
总结:由于是门外汉,我在网上搜索中国经纬度范围,获得范围值以后,就获取到点数据了,可是这个坐标系是什么坐标系?没办法解决,并且点数据确定有坐标系等数据,并且地图的坐标系是怎样的,这些都须要对应起来。最后个人解决方法是`从所选择的地图数据中的数据集中找到一个点数据集,复制之后清空点数据内容,那么这个空的数据集就拥有跟地图一样的坐标系统,参数什么的也都不须要设置`。这样往点数据集添加点数据之后,就获得了点数据集。
3.点数据集须要转为栅格数据集,邮件客服开始给了一个接口Interpolator,可是使用过程当中发现不能这样用,由于dem数据须要先构建,而在构建的过程当中会自动调用这个接口(电话客服告诉个人),解决方法,经过idesktop对我生成的点数据进行dem构建(每一个版本位置不一样,8c在数据栏下)。而后根据参数面板中的参数设置去对相应的对象参数进行设置(进一步适当修改参数)。

捕获.PNG
4.图层显示,栅格图要显示在底层,这样就不会遮挡矢量数据,同时要把地图的数据集图层中面数据去掉(试过设置半透明,可是效果很差),只留下线数据和点数据,文字数据。这样效果才会好一点。算法

相关文章
相关标签/搜索