procedure tfrmTrack.AddCar();
var
fFtrFactory : olevariant;
pItem :variant;
pitems : olevariant;
fNewSymbol :variant;
fMapSymbol : variant;
x1:double;
y1:double;
fline:boolean;
pitem1:variant;
lyrMyLayer: variant;
fFeature : Variant;
fMap : variant;
fMapB: boolean;
begin
{读取经纬度}
if not DM1.qryTrace.eof then //如果还没到末尾
begin
x1:=DM1.qryTrace.Fields[6].value;
y1:=DM1.qryTrace.Fields[7].value;
label7.Caption := datetimetostr(DM1.qryTrace.Fields[4].value);
DM1.qryTrace.next; //下一条记录
if x1<>0 then
begin
fFtrFactory := map1.FeatureFactory;
pItem := CreateOleObject('MapX.Point.4');
pitems := CreateOleObject('MapX.Points.4');
pItem.Set(X1, Y1);
if fline = false then
begin
pitem1 := pitem;
pitems.add(pitem1);
pitems.add(pitem);
fline := true;
end
else
begin
pitems.add(pitem1);
pitems.add(pitem);
pitem1 := pitem;
end;
fNewSymbol := fFtrFactory.createline(pitems,map1.DefaultStyle );
fnewsymbol.style.linewidth :=7;
fnewsymbol.style.linecolor :=clred;
fMapSymbol := lyrMyLayer.AddFeature(fNewSymbol);
fNewSymbol := fFtrFactory.CreateSymbol(pitem, map1.DefaultStyle);
fMapSymbol := lyrMyLayer.AddFeature(fNewSymbol);
if fMapB=false then
begin
fMap := fMapSymbol;
fMapB:=true;
end
else
begin
lyrMyLayer.DeleteFeature(fMap);
fMap := fMapSymbol;
end;
end;
end;
end;