为什么我使用放大工具,我的标注也放大????(100分)

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

zhiqunluo

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用Delphi+MapX开发环境。我在在地图上显示车辆图标和车辆名称。在使用放大工具时
车辆名称也放大,我不想让车辆名称的标注放大该如何做呢?谢谢
代码:
procedure TChildWindow.FormCreate(Sender: TObject);
var
unusedVt: OleVariant;
MyFont: TFont;
begin

TVarData(unusedVt).VType := varError;
TVarData(unusedVt).VError := DISP_E_PARAMNOTFOUND;
// Add car layer and make it an animation layer
lyrMyLayer := Map1.Layers.CreateLayer('cars',unusedVt,unusedVt,1,unusedVt);
map1.Layers.AnimationLayer := map1.Layers.Item(lyrMyLayer.Name);

MyFont := TFont.Create;
OleFontToFont(map1.DefaultStyle.SymbolFont,MyFont);
MyFont.Size := 0;
MyFont.Name := 'MapInfo Transportation';
Map1.DefaultStyle.SymbolCharacter := 66;
Map1.DefaultStyle.SymbolType := miSymbolTypeBitmap;

CarsList := TList.Create;
end;


procedure TChildWindow.AddCarsToMap(CarNo:String;
longitude,latitude:Double);
var
fNewSymbol :Variant;
fFtrFactory :Variant;
pItem :Variant;
begin

//create standAlone feature object
fFtrFactory := Map1.FeatureFactory;

//create point object to pass to createSymbol
pItem := CreateOleObject('MapX.Point.4');
pItem.Set(longitude,latitude);

//use Feature Factory to create new feature
fNewSymbol := fFtrFactory.CreateSymbol(pItem, Map1.DefaultStyle);

//add feature to Lyaer
fMapSymbol := lyrMyLayer.AddFeature(fNewSymbol);

NewCars := new(PCars);
NewCars^.Name := CarNo;
NewCars^.fFeature := fMapSymbol;

pItem.Set(longitude , latitude - 0.002);

//use Feature Factory to create new Feature
fNewSymbol := fFtrFactory.CreateText( pItem , CarNo , miPositionTL , Map1.DefaultStyle );

//add Feature to Lyaer
fMapSymbol := lyrMyLayer.AddFeature(fNewSymbol);
NewCars^.fCapion := fMapSymbol;
CarsList.Add(NewCars);
varClear(FnewSymbol);

end;

 
为什么我使用放大工具时,我建立的这个标注也跟着放大。我如何让它不放大。
fNewSymbol := fFtrFactory.CreateText( pItem , CarNo , miPositionTL , Map1.DefaultStyle );
 
hehe,偶正在研究关于符号样式的放大和缩小,答案是位图的符号样式不可以随地图的缩放而缩放,但是偶用矢量字体标注时,却可以随地图缩放,应该是你说的这种情况。
我想是不是存在位图字体呢,用他标注是否能达到效果。

你可以试试,我接触MapX也不长,共同学习,共同进步。呵呵


抵制日货,从我做起。
 
你可以用symbol画个小点,让它的内容是你标注的文本,在做gst时自动标注,那样你的标注就不放大了,不能用矢量文本。
 
顶部