首页 > 编程知识 正文

刀塔1基本操作,星际1基本操作练习

时间:2023-05-06 01:44:31 阅读:214811 作者:4247

本文转载自hi.baidu.com/redpanda/blog/category/Mapx/index/1

 

mapX - 基本操作(1)

 

1、使用自定义图标

     在绘制地图的过程中,必然会用到我们自定义的图标作为标注信息。操作步骤如下:

      (1)把图片拷贝到mapX的安装目录下的CUSTSYMB目录下面。mapx对象在加载的时候,会从这个目录里面载入图片,但是如果只是使用mapinfo来绘制地图的话,就不需要拷贝到这个目录里。

      (2)把图片拷贝到C:/Documents and Settings/Administrator/Application Data/MapInfo/MapInfo/Professional/950/CustSymb 。只要安装了mapinfo950,就有这个目录。

注:对图片格式有严格的要求: (1)必须是bmp格式的。 (2)如果要mapX加载的话,图片位深度为 4或者8(3)如果想要图片背景是透明的,就需要保证图片的背景色是纯白的。

        至于怎么制作这样的图片,在下一篇文章中会补充。

      (3)如果是在mapinfo中直接绘制地图,操作如下:

        打开mapinfo9.5,打开要编辑的图层,并置成可编辑状态。在右边的 drawing 工具条中选择工具 “”,在弹出的“Symbol style”选择框中,Font 选择“Custom Symbols”,在Symbol 中选择你要使用的图片。如果你在symbol中没有发现你要找的图片,可能图片还没有加进去,就点击“reload”按钮,重载一下。 其他选项默认就可以啦。选定之后点击“OK”。在drawing 工具条中选择工具“”,再点击地图,就可以进行标注了。

       (4)如果要在程序中编程实现,代码如下

 

 

编码情景是,有一个gst文件:myGst.gst,在程序里面有一个TMap对象:mMap,加载myGst.gst.这个gst文件有两层,一层是底图层:myMap.tab,一层是水源层water.tab。我要在水源层上添加水滴图标,即鼠标点在地图上,在鼠标点击的位置就标注一个水滴,水滴的图片已经拷贝到指定的位置,图片名字为water.bmp。

 

 

添加水滴部分的代码如下,写成了一个函数,这个函数就是在mX,mY的位置标注图元。

 

    ///@desc: 添加图元到指定的层

    ///@param: mMap:地图对象

    ///       mLayerName: 要插入图元的层名字

    ///       mPicName: 图片的名字

    ///       mX,mY:图元显示的位置(经纬度坐标)

    ///time: 2010-01-26

    /// @ author:csdancyz@163.com

procedure addBitMap(mMap:TMap; mLayerName:string;mPicName:String; mX,mY:Double);

var

    pnt : mapxlib_tlb.point;

    lyr : mapxlib_tlb.layer;

    bitmapStyle : mapxlib_tlb.style;

    feafrc : mapxlib_tlb.featurefactory;

    ftr : mapxlib_tlb.feature;

begin

     assert((mMap <> nil) or (mLayerName <> '') or (mPicName <> ''));

     //位图图元的样式

     bitmapStyle := CoStyle.Create ;

     bitmapStyle.SymbolType := miSymbolTypeBitmap;

     bitmapStyle.SymbolBitmapName := mPicName;

     bitmapStyle.SymbolBitmapTransparent := true;

    bitmapStyle.SymbolBitmapSize := 14

     //选中图层,置为可编辑

     lyr := mMap.Layers.Item[mLayerName];

     lyr.Editable := true;

     //创建点对象

     pnt :=copoint.Create;

     pnt.Set_(mX,mY);

     //创建Feature对象并添加到图层

     feafrc := mMap.FeatureFactory ;

     ftr :=feafrc.CreateSymbol(pnt,bitmapstyle);

     lyr.AddFeature(ftr,emptyparam);

     lyr.refresh;

end;

 

 

 

 

 

在这个情景中,调用的语句为:

 

 

//其中mapX,mapY是鼠标的地图位置,由屏幕坐标转换成了地图坐标

addBitMap(mMap,mMap.Layers.Item[‘water’] ,’water.bmp’, mapX,mapY);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。