Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1282940
  • 博文数量: 135
  • 博客积分: 10588
  • 博客等级: 上将
  • 技术积分: 1325
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-18 11:12
文章分类

全部博文(135)

文章存档

2013年(6)

2012年(3)

2011年(11)

2010年(7)

2009年(14)

2008年(6)

2007年(42)

2006年(46)

分类:

2006-08-31 10:22:49

 
procedure TFrmMain.CreateWallLayer;
//创建水井  图层
var
  oBLayer : BindLayer;
  SearchLayer : Layer;
  ds : Dataset;
  name:string;
begin
  name:='Walls';
  //更新地图显示图层对应的数据集
  with ADOQGraphic do
  begin
    Close;
    SQL.Clear;
    Sql.Text:=strWallSql; //数据集的sql语句,其中必须要有经度,纬度,编号,名称这四个字段,其中编号是点在数据库中的标志,名称用来显示地图上点的名称
    Open;
  end;
  oBLayer := coBindLayer.Create;
  oBLayer.LayerName := name;
  oBLayer.LayerType := miBindLayerTypeXY;//必须使用这个参数才能绑定XY坐标
  oBLayer.RefColumn1 := '经度';//第一个参数必须指定为横坐标
  oBLayer.RefColumn2 := '纬度';//纵坐标
  //添加数据集
  ds := MapMain.Datasets.Add(12,//数据集类型,这是miDataSetADO,即ADO专用的
                          ADOQGraphic.Recordset,//使用这个方法获得ADO中的_Recordset类型
                          'DS_'+name,//数据集名称
                          '编号',//传入的是表中的字段ID的名称
                          EmptyParam,
                          oBLayer,//BindLayer
                          EmptyParam,
                          false);
  //下边将设置新图层的各项属性
  searchLayer := MapMain.Layers.Item(name);
  searchLayer.OverrideStyle:= True;
  SearchLayer.Style.SymbolType:=miSymbolTypeBitmap;
  searchLayer.Style.SymbolBitmapName:='YIEL1-32.BMP'; //标志位图
  searchLayer.Style.SymbolBitmapTransparent:=true;
  searchLayer.Style.SymbolBitmapSize:=12;
  //字体颜色
  searchLayer.LabelProperties.Style.TextFontColor := miColorPurple;
  searchLayer.LabelProperties.Style.TextFontHalo := true;
  searchLayer.LabelProperties.Style.TextFontBackColor := miColorWhite;
  //设置图元显示的标签
  searchLayer.LabelProperties.Dataset := ds;
  searchLayer.LabelProperties.DataField := ds.Fields.Item('名称');
  searchLayer.LabelProperties.LabelZoom := true;
  //设置图层缩放比例范围
  searchLayer.ZoomMin := 0;
  searchLayer.ZoomMax := 100;
  searchLayer.ZoomLayer := true;
  searchLayer.AutoLabel:=true;
  //设置标签缩放比例范围
  searchLayer.LabelProperties.LabelZoomMin := 0;
  searchLayer.LabelProperties.LabelZoomMax := 100;
  searchLayer.LabelProperties.LabelZoom := true;
end;
   
阅读(2030) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~