Z
zdy928
Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
目前做一个水情测报的项目,要实现水情信息(遥测站点雨量.水位.电压)等数据在地图上的实时显示,现在关于遥测站点的图层都有,水情信息数据也存在数据库中,但是不明白怎么样让这些水情数据实时显示在地图上(至少要实现,我选择雨量数据时候,地图上显示各个站的雨量,选择水位数据时候,显示各个站的水位).
目前我是这样做的用动态图层的标注功能,但是总感觉这样的方法不好,要实现实时还需要一分钟刷新一次,因为adosee中数据是实时的)
map1.Layers.AnimationLayer:=nil;
lyr:=Map1.Layers.CreateLayer('Animate', EmptyParam,1,EmptyParam, EmptyParam);
map1.Layers.AnimationLayer :=lyr;
lyr.Editable :=true;
pt:=copoint.Create
mstyle:=costyle.Create;
lyr.Style :=Map1.Layers.Item['water'].Style
lyr.LabelProperties.Style := map1.Layers.item['water'].LabelProperties.Style;
adosee.open;
adosee.first;
while not adosee.Eofdo
begin
if adosee.fieldbyname('R').Asfloat>0 then
begin
tmpCD:=adosee.fieldbyname('CD').AsString;
X := adosee.fieldbyname('XX').AsFloat;
y := adosee.fieldbyname('YY').AsFloat
str := adosee.fieldbyname('RN').AsString;
pt.Set_(x,y);
fts := map1.FeatureFactory.CreateSymbol(pt,mstyle);
fts.KeyValue :=tmpCD+ #13 + str;
lyr.AddFeature(fts,emptyparam);
end;
adosee.Next;
end;
adosee.close;
lyr.AutoLabel := true;
lyr.Visible := true;
lyr.ZoomMin := 0;
lyr.ZoomMax := 77;
呵呵,大家给提些建议,启发一下.ths ths
目前做一个水情测报的项目,要实现水情信息(遥测站点雨量.水位.电压)等数据在地图上的实时显示,现在关于遥测站点的图层都有,水情信息数据也存在数据库中,但是不明白怎么样让这些水情数据实时显示在地图上(至少要实现,我选择雨量数据时候,地图上显示各个站的雨量,选择水位数据时候,显示各个站的水位).
目前我是这样做的用动态图层的标注功能,但是总感觉这样的方法不好,要实现实时还需要一分钟刷新一次,因为adosee中数据是实时的)
map1.Layers.AnimationLayer:=nil;
lyr:=Map1.Layers.CreateLayer('Animate', EmptyParam,1,EmptyParam, EmptyParam);
map1.Layers.AnimationLayer :=lyr;
lyr.Editable :=true;
pt:=copoint.Create
mstyle:=costyle.Create;
lyr.Style :=Map1.Layers.Item['water'].Style
lyr.LabelProperties.Style := map1.Layers.item['water'].LabelProperties.Style;
adosee.open;
adosee.first;
while not adosee.Eofdo
begin
if adosee.fieldbyname('R').Asfloat>0 then
begin
tmpCD:=adosee.fieldbyname('CD').AsString;
X := adosee.fieldbyname('XX').AsFloat;
y := adosee.fieldbyname('YY').AsFloat
str := adosee.fieldbyname('RN').AsString;
pt.Set_(x,y);
fts := map1.FeatureFactory.CreateSymbol(pt,mstyle);
fts.KeyValue :=tmpCD+ #13 + str;
lyr.AddFeature(fts,emptyparam);
end;
adosee.Next;
end;
adosee.close;
lyr.AutoLabel := true;
lyr.Visible := true;
lyr.ZoomMin := 0;
lyr.ZoomMax := 77;
呵呵,大家给提些建议,启发一下.ths ths