supermap二次开发从0到1
2020/3/18 21:01:40
本文主要是介绍supermap二次开发从0到1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、为什么要写这篇博客
地理信息系统门外汉,计算机背景。项目要求基于csharp、supermap进行开发。在看了supermap的实例程序后,发现没有自己能用的,有的示例有参考价值,但也是边边角角,不成系统。需要自己整理思路。
二、需求
同事提供了一个算法接口,根据输入的经纬度以及其他参数,计算出某一点的某属性值(类似于高度等高程值),项目需要计算出中国范围内的每个点的属性值,然后根据属性值的不同,渲染颜色后呈现在地图上(后来知道这叫专题图)。
三、supermap情况介绍
我用的是supermap iobjet 8c,机器是64位的。由于集成了其他的软件接口,所以必须生成64位的程序,因此只能安装supermap64位安装包。这样就不能拖放控件,也不能运行示例程序(示例均为32位)。
四、开发历程
1.首先根据入门程序,实现了在winform窗体中加入mapcontrol,然后打开工作空间,显示地图的功能。 2.调用接口,计算每个点的值(以一经度、一纬度为间隔), 定义一个二维数组rec[][],来存储各个点的值,经过查看帮助文档,我大概了解到需要生成栅格专题图。那么我需要生成栅格数据,最开始我认为我的数组数据就包含了栅格数据需要的信息。所以我就想直接生成栅格数据集,然后把属性值和对应经纬度填进去就行了。但是询问客服说一般都不会这么做,会使用插值算法生成栅格数据。 但是咨询过程中supermap人员反复问我。 人:你的点数据是怎么取的? 我: 我的数据是根据经纬度算出来的啊(凌乱中) 人:经纬度是怎么取的? 我: 就是中国地图的点上的经纬度?(这是什么问题???) 人:就是坐标系不一样,经纬度也不一样,你这个参考系是什么参考系?要先确定这个 总结:因为是门外汉,我在网上搜索中国经纬度范围,得到范围值之后,就获取到点数据了,但是这个坐标系是什么坐标系?没办法解决,而且点数据肯定有坐标系等数据,而且地图的坐标系是怎样的,这些都需要对应起来。最后我的解决方法是`从所选择的地图数据中的数据集中找到一个点数据集,复制以后清空点数据内容,那么这个空的数据集就拥有跟地图同样的坐标系统,参数什么的也都不需要设置`。这样往点数据集添加点数据以后,就得到了点数据集。 3.点数据集需要转为栅格数据集,邮件客服开始给了一个接口Interpolator,但是使用过程中发现不能这样用,因为dem数据需要先构建,而在构建的过程中会自动调用这个接口(电话客服告诉我的),解决方法,通过idesktop对我生成的点数据进行dem构建(每个版本位置不同,8c在数据栏下)。然后根据参数面板中的参数设置去对相应的对象参数进行设置(进一步适当修改参数)。
4.图层显示,栅格图要显示在底层,这样就不会遮挡矢量数据,同时要把地图的数据集图层中面数据去掉(试过设置半透明,但是效果不好),只留下线数据和点数据,文字数据。这样效果才会好一点。
这篇关于supermap二次开发从0到1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统