采用Delphi进行MapGIS二次开发

分类:代码, 博客, 资源 标签:

近来忽然用到了MapGIS进行制图,而MapGIS是支持二次开发的,看了些二次开发的教程,多是基于VC6或者VB开发的。由于MapGIS同时支持COM组件进行二次开发的,因此想用试验下如何在Delphi下进行MapGIS的二次开发,鼓捣了一下还算是比较顺利的。

  1. 首先在Delphi下创建新的包(Package)工程;
  2. 然后把MapGIS相关的组件库导入(Component/Import)[注意的是要先安装MapGIS SDK];
  3. 这样便有了一堆*_TLB.pas文件,然后安装包(Install),会报错,使用逐一添加文件的方法{
    contains
    EDITVIEWLib_TLB in ‘EDITVIEWLib_TLB.pas’,
    ACTXEDITLib_TLB in ‘ACTXEDITLib_TLB.pas’,
    EDITGISATTLib_TLB in ‘EDITGISATTLib_TLB.pas’,
    ATTSTRUEDITLib_TLB in ‘ATTSTRUEDITLib_TLB.pas’,
    MapTree_TLB in ‘MapTree_TLB.pas’,
    GISATTEDITLib_TLB in ‘GISATTEDITLib_TLB.pas';},重新安装,成功,也许可以再多包含些文件,可以自行试验。
  4. 成功安装Delphi导入相关的MapGIS组件包后,默认情况下一般在ActiveX栏下面多了几个组件(最重要的是TEditView)。
  5. 新建可执行文件工程,把TEditView添加进来,成功。

编写MapGIS二次开发代码时需要注意的是由于导入组件时自动生成的pas文件存在重复定义接口的问题,所以在进行MapGIS功能调用时会报类型不匹配的错误,可以自己修改相应的文件,出于简单考虑,只是调用函数时进行了相应的类型转换,或者声明为MAPGISBASCOM1Lib_TLB.Type interface。

如果需要MapGIS控件支持中键拖动及滚轮缩放当首先注册新的窗口函数,在捕获到中键消息及滚轮缩放消息进行适当处理。

最后还有一项还是在使用Delphi进行MapGIS开发中遇到的小问题,那就是小心防火墙的问题哦……



分类:代码, 博客, 资源 标签:

3 Responses to “采用Delphi进行MapGIS二次开发”

  1. ralin  on 十月 15th, 2012

    楼主,请问下MapGIS相关的组件库导入是导入的哪些呢?

    • 水文工具集  on 十月 15th, 2012

      导入了这几个,也许多了
      contains
      EDITVIEWLib_TLB in ‘EDITVIEWLib_TLB.pas’,
      ACTXEDITLib_TLB in ‘ACTXEDITLib_TLB.pas’,
      EDITGISATTLib_TLB in ‘EDITGISATTLib_TLB.pas’,
      ATTSTRUEDITLib_TLB in ‘ATTSTRUEDITLib_TLB.pas’,
      MapTree_TLB in ‘MapTree_TLB.pas’,
      GISATTEDITLib_TLB in ‘GISATTEDITLib_TLB.pas';


发表评论

You must be logged in to post a comment.