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;
阅读(2025) | 评论(2) | 转发(0) |