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

從數據庫繪制MapX地圖

編輯:Delphi

1、在數據庫中建立如下的表用於存儲坐標:

ID integer //唯一編號

Name string //名稱(標簽)

X float //地圖坐標X

Y float //地圖坐標Y

假設這個表命名為XUnit

2、編輯MapX地圖,添加一個新的Layer,定義好你希望將來添加圖層顯示樣式,然後設置這個圖層不可見、不可編輯,此圖層名稱假設為“企事業單位”。

3、在你的程序中添加MapX控件,命名為Map1

4、在窗口中添加BDE或者ADO組件並連接到你的數據庫,假設你添加了AdoConnection1和ADOTable1並且把他們的相關屬性都設好了ADOTable1中應該是上述表中的全部內容。

5、添加按鈕,並在按鈕中添加Click時間代碼如下:

procedure TForm1.Button1Click(Sender: TObject);
var
lyr : layer;//層
fts : feature;//特征
pt : point;//點
mstyle : style;//樣式
str : string;//特征標注
x,y : double;
begin
lyr := Map1.Layers.CreateLayer('tempAnimate', EmptyParam,1,EmptyParam, EmptyParam);
//在Map1中創建一個Layer
Map1.Layers.AnimationLayer := lyr;//設為當前層
lyr.Editable := true;//可編輯
pt := copoint.Create;
mstyle := costyle.Create;
mstyle := map1.Layers.item('企事業單位').AllFeatures.Item(1).Style;//此處獲取在層“企事業單位”中存儲的特征樣式
lyr.Style := map1.Layers.item('企事業單位').Style;//層的樣式
lyr.LabelProperties.Style := map1.Layers.item('企事業單位').LabelProperties.Style;//標簽樣式
adotable1.First;
while not adotable1.Eof do
begin
X := adotable1.fieldbyname('X').AsFloat ;
y := adotable1.fieldbyname('Y').AsFloat;
str := adotable1.fieldbyname('Name').AsString;
pt.Set_(x,y);
fts := map1.FeatureFactory.CreateSymbol(pt,mstyle);//創建特征
fts.KeyValue := str;//標注
lyr.AddFeature(fts,emptyparam);//將特征添加到層
adotable1.Next;
end;
lyr.AutoLabel := true;//自動標注
lyr.Visible := true;//可見
lyr.ZoomMin := 0;//縮放范圍
lyr.ZoomMax := 77;
end;

6、按照以上步驟我們可以直接將數據庫中的數據在地圖上表現出來,當然我們只是表現了特征點,並沒有表現那些區域等其他東西,。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved