程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 從數據庫繪制MapX地圖(二)

從數據庫繪制MapX地圖(二)

編輯:Delphi
從數據庫繪制MapX地圖(二) 主題:MapX Delphi數據庫 地圖 Layer Style Font   我在二〇〇四年四月十五日發表文章《從數據庫繪制MapX地圖》之後,我收到大量讀者的來信,由於繁忙,不能一一回復,在這裡對此表示真誠的歉意!僅以此文感謝對我表示支持的眾位兄弟姐妹,謝謝你們。 這裡提供的是一種更為高效的從數據庫繪制MapX地圖的方法,我在數據庫中建立了如下的數據表: 表名稱:Xunit               ID :字符串    //用於唯一標識各個圖元,也可以是數字類型的               NAME :字符串       //圖元的名稱               X :浮點數       //圖元橫坐標               Y :浮點數       //圖元縱坐標   代碼清單: //aqXUnit是一個TADOQuery,其中SQL語句為“SELECT * FROM XUNIT”。 procedure TfrmMain.DrawLayerFromDB; var   oBLayer : BindLayer;      SearchLayer : Layer;   ds : Dataset; begin   //使用這個過程必須保證aqXUnit表已經打開!   if not aqXUnit.Active then   begin     GiveMsg('系統基礎表沒有打開!');//調用自定義提示方法     exit;   end;   //創建BindLayer,非常討厭半英半漢,沒辦法,不會翻譯^_^   oBLayer := coBindLayer.Create;   oBLayer.LayerName := 'ARTEMIS';   oBLayer.LayerType := miBindLayerTypeXY;//必須使用這個參數才能綁定XY坐標   oBLayer.RefColumn1 := 'X';//第一個參數必須指定為橫坐標   oBLayer.RefColumn2 := 'Y';//縱坐標   //添加數據集   ds := mapMain.Datasets.Add(12,//數據集類型,這是miDataSetADO,即ADO專用的                         aqXUnit.Recordset,//使用這個方法獲得ADO中的_Recordset類型                              'DS_SK',//數據集名稱                              'ID',//傳入的是Xunit表中的字段ID的名稱                              EmptyParam,                              oBLayer,//BindLayer                              EmptyParam, EmptyParam);   //下邊將設置新圖層的各項屬性   searchLayer := mapMain.Layers.Item('ARTEMIS');   //字體顏色   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('NAME');   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; end;   這個方法比上文提到的方法應該快了很多很多,哈哈~~ 楊雨田 [email protected] 二〇〇四年七月十三日
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved