giggs12347
路人甲
路人甲
  • 注册日期2004-09-18
  • 发帖数62
  • QQ
  • 铜币155枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2004回复:1

关于图元修改及添加的问题

楼主#
更多 发布于:2005-03-04 23:18
<P>各位大侠:</P>
<P>我是用delphi+mapx做的营区可视管理系统,使用oracle spatial数据库,但出现以下两个问题:</P>
<P>1.进行修改图元样式时,程序运行时,图元样式显示被正确修改,(已经保存修改)但重新运行程序时,图元的样式还是没有被修改。以下是部分源码:</P>
<P>procedure TOraLayer.ModifyFtrObjsStyle(FtrObjs: CMapXFeatures);
var
  OldStyle, NewStyle: CMapXStyle;
  i: integer;
  ptstr: string;
  ftr: CMapXFeature;
begin
  inherited;
  if (OraLayerType = CanEditLayer) or (OraLayerType = LocalMiLayer) then
  begin
    OldStyle := self.OraFtrStyle.MiStyle.Clone;
    if FtrObjs.Count > 0 then
    begin
      if MiLayer.Editable then
      begin
        self.OraFtrStyle.ShowStyleDialog;
        for i := 1 to FtrObjs.Count do
        begin
          ftr := CoFeature.Create;
          ftr := FtrObjs.Item(i);
          NewStyle := CoStyle.Create;
          NewStyle := self.OraFtrStyle.MiStyle.Clone;
          ftr.Style := NewStyle.Clone;
          Ftr.Update(true, emptyparam);
        end;
        self.YQZYMap.Map.Refresh;
      end;
    end;
  end;
end;</P>
<P>procedure TOraLayer.ModifyFtrObjsStyleOfLayer;
begin
  if (OraLayerType = CanEditLayer) or (OraLayerType = LocalMiLayer) then
  begin
    self.YQZYMap.Map.Layers.ClearSelection;
    self.MiLayer.Selection.Replace(self.MiLayer.AllFeatures);
    ModifyFtrObjsStyle(self.MiLayer.AllFeatures);
  end;
end;</P>
<P>2.添加图元时,已经定义好图元的样式了,并且spatial数据库中也有新添加图元的记录,但是在程序中该图元显示不出来。</P>
<P>procedure TMainForm.InsertRectYFFDActionExecute(Sender: TObject);
var
  Oralyr: TOraLayer;
begin
  //营房绘制</P>
<P>  if assigned(CurYQZYMap) then
    if CurYQZYMap.OraLayers.GetItemByName('YFFDLAYER') <> nil then
    begin
      Oralyr := CurYQZYMap.OraLayers.GetItemByName('YFFDLAYER');
      CurYQZYMap.OraLayers.CurEditLayer := OraLyr;
      CurYQZYMap.Map.CurrentTool := RECT_DRAW_TOOL; //POLYGON_DRAW_TOOL;
    end
    else
     // messagedlg('&Otilde;&acirc;&Ecirc;&Ccedil;&Oacute;&ordf;·&iquest;&Iacute;&frac14;&sup2;&atilde;&raquo;&aelig;&Ouml;&AElig;&sup1;¤&frac34;&szlig;&pound;&not;&Ouml;&raquo;&Auml;&Uuml;&Oacute;&Atilde;&Ocirc;&Uacute;&Oacute;&ordf;·&iquest;&Iacute;&frac14;&sup2;&atilde;&pound;&iexcl;', mtinformation, [mbOk], 0);
end;</P>
<P>我感觉程序上是没错误的,以前用tab表时也是按这种方式修改及添加图元的,程序运行正常,为什么将tab表上载到spatial数据库中就有问题呢,到底是什么方面的原因呢?</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-03-05 14:13
<P>你保存的编辑是对图形的编辑,而不是对符号样式的编辑吧</P><P>你的符号是如何保存和加载的呢</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部