MapWindows5学习以及编译记录
MapWindows学习记录
MapWindows介绍
图片下载站源码<
MapWindows 4
此CodePlex站点将是MapWindow v4.9的主页。MapWindow4.8的最终版本⾃2011年11⽉4⽇起提供。对该版本的⽀持,⼤约每3个⽉发布⼀次服务包。对于v4.9,在过去的⼏年⾥,许多功能已经从VB.NET/C#库到C++ ActiveX控件(MavaWIGIS)。这极⼤地改善了MapWindow的⽤户体验和性能。
最后⼀点注意:MapWindow4.9将不能完全100%向后兼容旧版本。计划进⾏⼀些优化,这些优化将破坏现有代码。当然,我们将创建迁移⼯具,但是现有的应⽤程序和插件很可能需要部分重写。
MapWindows 5
1. 直接打开,编辑,保存Image,Grid,Shapfile,TIN,DBF格式的⽂件。
2. 在地图中对图形进⾏浏览,标注,设置颜⾊等信息。
3. 在地图中进⾏空间数据查询。
4. 通过web的开源接⼝获取和显⽰地图数据。
5. 动态的在图层上标绘空间数据。
6. 存取地图中的相关数据。
7. 对不同的格式进⾏转换,例如从TIN到GIRD等。
MapWindows 6
1. 完全采⽤平台(不需要COM注册或DLL加载);
2. 可以通过使⽤Mono运⾏在Mac或Linux平台上;
3. ⼤量扩展了符号集,点、线、⾯的符号化更丰富,⽽且可以基于属性内容进⾏专题化,同时⽀持⽮量化的字体符号;
4. ⾯向对象的代码:直接对各要素进⾏重叠分析、相交分析等。⽀持OGC的⼏何对象模型,基于System.Data.DataTable的数据集;
5. 可兼容的插件模式:插件的接⼝就像普通对象的事件对象⼀样;
6. 组件模式:所有的组件通过MapWindow.dll提供,能够拖放控件就可以定制GIS程序。
MapWinGIS 6项⽬已经进⾏了搁置,暂时并没有提供更新和优化。
MapWindows5源码下载与编译
源码
我在GitHub上下载的源代码编译⼀直有问题,所以推荐从第⼀个链接,也就是CodePlex Archive上下载。如下页⾯:
但是,也要将GitHub上的源代码下载下来,后⾯还是会⽤到!
编译
源码下载查看
下载压缩包解压后,打开MapWindows 5 ⽂件夹,就会看到如下⽂件列表。点击进⼊soureCode⽂件夹。
编译源码放置在src⽂件夹下。
点进src⽂件夹,就可以看到所有的源码。开发环境为VS2017。
点击MW5.sln打开项⽬,如下图:
这时直接编译会报错,因为缺少很多引⽤项,主要的⼀部分就是MapWindows使⽤的界⾯设计是通过Syncfusion进⾏的,所以还要下载Syncfusion组件安装。以及还需要MapWinGIS库的安装,之后再来进⾏编译。所以关闭项⽬。
环境配置
Syncfusion
由于需要Syncfusion来实现界⾯开发配置,所以要编译代码必须要下载Syncfusion。
Syncfusion Essential Studio for Windows窗体是⼀个全⾯的集合,包括100多个必要的Windows窗体控件,如⽹格、图表、图表、计划程序和更快地构建强⼤的业务应⽤程序的⼯具。可以同步Windows窗体控件,内置主题,UI,本地化和与Visual Studio的⽆缝集成。
好处在于Syncfusion可以提供Syncfusion社区许可证,通过LinkedIn或XING登录可获得完整产品系列的免费许可证。免费给年总收⼊少于100万美元且开发⼈员少于5⼈的公司和个⼈使⽤。
MapWinGIS
在前⾯介绍了,是⼀个基于开源和基于C++的地理信息系统编程ActiveX控件和应⽤程序接⼝(API),可以在Visual Basic、C语⾔、Delphi或其他⽀持ActiveX(如MS Office)的语⾔中添加到Windows窗体中,为应⽤程序提供⼀个地图输⼊。MapWindows 5是通过调⽤MapWinGIS的dll动态库来进⾏开发的,所以要进⾏MapWinGIS的安装。
⾄此,完成的MapWindows 5的编译环境配置。
源码修改和编译
还原NuGget包
环境配置完成后,再到源代码⽂件夹去点击MW5.sln,打开项⽬。
虽然已经完成了配置,但是项⽬中的引⽤还是会是有黄⾊感叹号,代码运⾏不起来,⾸次拉取代码并打开后,发现引⽤的dll⼏乎全部都标有黄⾊感叹号,包括System这些标准库,如下图:
点击项⽬引⽤dll,路径也是空。
遇到这种情况不要慌,打开窗户冷静⼀下,想⼀想为什么标准库都没有正确到,VS怎么这么辣鸡…具体原因是因为⼯程包含了⼀些NuGet包,这些第三⽅库未正确加载导致的。
解决操作如下:
①到解决⽅案管理器右击解决⽅案——管理解决⽅案的NuGet程序包。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。