delphi+mapx+bmp(300分)

  • 主题发起人 主题发起人 zdy928
  • 开始时间 开始时间
Z

zdy928

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,我现在用mapx开发一个显示实时雨量信息的程序,程序每小时刷新一次,对有雨的站点,显示为下雨的图片,并且显示具体的数据,我用下面的方法来实现:
lyr :=Map1.Layers.Item['rain'];
lyr.KeyField:='id';
//把查找的图层的值给一个图层
ds := map1.Datasets.Add(miDataSetLayer, lyr ,EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
//向地图的数据集中加入查找到的图层
lyr.Find.FindDataset := ds;
//字段数据集
lyr.Find.FindField := ds.Fields.Item[2];//数据集字段
str := Format('%s',['99876']);
//要查找的id号
ft := lyr.Find.Search(str,EmptyParam);//找到的图元 (如果找到两个的话就有问题)
ftt:=ft.Layer.GetFeatureByID(ft.FeatureID );
X:=ftt.CenterX;
Y:=ftt.Centery;
map1.Annotations.AddSymbol(x,y).Graphic.Style..SymbolBitmapName:='LITE1-32.bmp' //LITE1-32.bmp文件在C:/Program Files/MapInfo/MapX 5.0/CUSTSYMB目录下
程序运行没问题,可是总不能显示为我要的图片,而是缺省的样式。
想问一下:
1、 如果实现在Annotations上显示自定义图片?
2、 如果不能实现,有没有其他的方法。
3、 我的目标是:在查找的图元上显示一个自定义图片和相关的数据,并且能刷新。
4、 另外显示文字的时候,文字的大小好象随着图片的方法和缩小而变化,能让它不变大变小吗?map1.Annotations.AddText('89.10',X,Y,miPositionTC).Graphic.Style.TextFontColor :=clred//89.10往往会覆盖在标注的图片上,并且随图片放大而放大。
 
Annotations图层是按map的默认图元样式来添加图元的。
if Map1.DefaultStyle.PickSymbol then

begin

map1.Annotations.AddSymbol(X1,Y1);
end;

我试了一下,Annotations图层好象不能添加misymboltypebitmap(位图)类型的图元,你要自己建个临时图层来显示你的位图。

文字图元是要随地图变化的,要不变,可能只能用标注了。
 
with NewStyledo

begin

SymbolType := miSymbolTypeBitmap;
SymbolBitmapSize := 20;
SymbolBitmapTransparent := False;
SymbolBitmapName :='STAT1-32.BMP';
end;

可以设置你想要变换的图片
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部