hf_linux
路人甲
路人甲
  • 注册日期2004-08-31
  • 发帖数12
  • QQ
  • 铜币156枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1323回复:2

在数据绑定的时候如何自定义图标啊?

楼主#
更多 发布于:2004-09-02 13:29
<P>用下面的代码实现了绑定。</P>
<P>我能根据node表的一个字段如TYPE定义不同的Symbol符号吗? 现在在地图显示的是默认的五角星。想换成其它的几种符号</P>
<P>procedure TfrmMain.DrawNodeLayerFromDB ;
var
  oBLayer : BindLayer;
  SearchLayer : Layer;
  ds : Dataset;
  qsql:string;
begin
//准备数据源
qsql := 'select * from node where longitude<>0 and latitude<>0';
with ADOQueryTmp do
begin
  close;
  SQL.Clear;
  SQL.Add(qsql);
  Open;
end;
//  fields := CoFields.Create;
 // fields.Add('longitude', 'longitude', miAggregationAuto, miTypeString);
 // fields.Add('nodeID', 'nodeID', miAggregationAuto, miTypeString);
//  fields.Add('TOTPOP', 'TOTPOP', miAggregationAuto, miTypeNumeric);</P>
<P>
  oBLayer := coBindLayer.Create;
  oBLayer.LayerName := '节点';
  oBLayer.LayerType := miBindLayerTypeXY;//必须使用这个参数才能绑定XY坐标
  oBLayer.RefColumn1 := 'longitude';//第一个参数必须指定为横坐标
  oBLayer.RefColumn2 := 'latitude';//纵坐标
  //添加数据集
  ds := mapMain.DataSets.Add(12,//数据集类型,这是miDataSetADO,即ADO专用的
                        ADOQueryTmp.Recordset,//使用这个方法获得ADO中的_Recordset类型
                             'DS_Node',//数据集名称
                             'py',//传入的是Xunit表中的字段ID的名称
                             EmptyParam,
                             oBLayer,//BindLayer
                             EmptyParam,
                      EmptyParam);</P>
<P>  //下边将设置新图层的各项属性
   searchLayer := mapMain.Layers.Item['节点'];
 // searchLayer := oBLayer;
  //字体颜色
  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['nodeName'];
  searchLayer.LabelProperties.LabelZoom := true;
  //设置图层缩放比例范围
  searchLayer.ZoomMin := 0;
  searchLayer.ZoomMax := 200;
  searchLayer.ZoomLayer := true;
  //设置标签缩放比例范围
  searchLayer.LabelProperties.LabelZoomMin := 0;
  searchLayer.LabelProperties.LabelZoomMax := 200;
  searchLayer.LabelProperties.LabelZoom := true;
  //自动标记图元
  searchLayer.AutoLabel := true;</P>
<P>end;
</P>
喜欢0 评分0
echo2003
点子王
点子王
  • 注册日期2003-07-28
  • 发帖数2453
  • QQ76947571
  • 铜币5473枚
  • 威望1点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
1楼#
发布于:2004-09-03 08:33
<P>你指定符号的名称就可以改变符号了</P>
举报 回复(0) 喜欢(0)     评分
hf_linux
路人甲
路人甲
  • 注册日期2004-08-31
  • 发帖数12
  • QQ
  • 铜币156枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-09-08 20:44
<P>我能根据node表的一个字段如TYPE定义不同的Symbol符号吗? 现在在地图显示的是默认的五角星。想换成其它的几种符号</P><P>大大。如果我的NODE表的TYPE字段有A,B,C,D,E,F几种类型</P><P>我想绑定的时候根据TYPE的不同字段设置不同的符号,具体该怎么弄啊???????HELP</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部