国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 18:20:33
字體:
來源:轉載
供稿:網友
數據庫繪制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;
 
這個方法比上文提到的方法應該快了很多很多,哈哈~~
二〇〇四年七月十三日

上一篇:MapX使用數據庫數據添加專題圖(系列之三)

下一篇:AXScript.pas,從官方站點找到的IActivsScript接口

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 徐闻县| 通海县| 喀喇沁旗| 鄱阳县| 宿松县| 三江| 和林格尔县| 南投县| 洞口县| 广宁县| 新兴县| 蕉岭县| 固阳县| 墨江| 渑池县| 称多县| 合山市| 台中县| 都江堰市| 宝丰县| 洞口县| 柳江县| 册亨县| 安龙县| 新源县| 贡山| 安西县| 文水县| 建始县| 荔浦县| 封丘县| 平潭县| 疏附县| 石渠县| 长垣县| 博罗县| 东阳市| 湘潭市| 滕州市| 东丰县| 保亭|