⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umap.pas

📁 用DELPHI 和MAPX的基础练习.是学习的好资料
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit UMap;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, OleCtrls, MapXLib_TLB, StdCtrls, Buttons,
  ExtCtrls,comobj, DB, DBTables, Menus;
type
  TFMap = class(TForm)
    //Map1: TMapX;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Button1: TButton;
    BitBtn5: TBitBtn;
    Table1: TTable;
    Database1: TDatabase;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    OpenGeoSet1: TMenuItem;
    OpenDialog1: TOpenDialog;
    OpenLayer1: TMenuItem;
    OpenDialog2: TOpenDialog;
    N1: TMenuItem;
    SaveGeoSet1: TMenuItem;
    Save1: TMenuItem;
    SaveDialog1: TSaveDialog;
    Export1: TMenuItem;
    SaveDialog2: TSaveDialog;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    StatusBar1: TStatusBar;
    PrintDialog1: TPrintDialog;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    N33: TMenuItem;
    N34: TMenuItem;
    N35: TMenuItem;
    N36: TMenuItem;
    N37: TMenuItem;
    N38: TMenuItem;
    N39: TMenuItem;
    N40: TMenuItem;
    N41: TMenuItem;
    N42: TMenuItem;
    N43: TMenuItem;
    N44: TMenuItem;
    Map1: TMapX;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Map1MapViewChanged(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure OpenGeoSet1Click(Sender: TObject);
    procedure OpenLayer1Click(Sender: TObject);
    procedure SaveGeoSet1Click(Sender: TObject);
    procedure Save1Click(Sender: TObject);
    procedure Export1Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure Map1ToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1, X2,
      Y2, Distance: Double; Shift, Ctrl: WordBool;
      var EnableDefault: WordBool);
    procedure N10Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure Map1PolyToolUsed(Sender: TObject; ToolNum: Smallint;
      Flags: Integer; const Points: IDispatch; bShift, bCtrl: WordBool;
      var EnableDefault: WordBool);
    procedure N6Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N17Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    procedure N23Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure N26Click(Sender: TObject);
    procedure N27Click(Sender: TObject);
    procedure N28Click(Sender: TObject);
    procedure N29Click(Sender: TObject);
    procedure N30Click(Sender: TObject);
    procedure N32Click(Sender: TObject);
    procedure N33Click(Sender: TObject);
    procedure N34Click(Sender: TObject);
    procedure N35Click(Sender: TObject);
    procedure N36Click(Sender: TObject);
    procedure N38Click(Sender: TObject);
    procedure N39Click(Sender: TObject);
    procedure N40Click(Sender: TObject);
    procedure N41Click(Sender: TObject);
  private
    { Private declarations }
  public

     RulerUnit          :integer;
     RulerUnitString    :String;
     ExportHeight       :double;
     ExportWidth        :double;
     ExportFormat       :integer;
     ExportFormatString :string;
     ExportFormatExt    :string;
     UsePolyRuler       :boolean;
     UserLineRuler      :boolean;

    { Public declarations }
  end;

var
  FMap: TFMap;

const
  PolyRulerToolID = 104;
  RulerToolID     = 105;
implementation

uses Uoption, UDatasets, UCreateTheme, UModifyTheme, UModifyLegend, UFind,
  UZoom, UViewLayer, UStyle;

{$R *.dfm}

procedure TFMap.BitBtn1Click(Sender: TObject);
begin
 Map1.CurrentTool:=miZoomInTool;
end;

procedure TFMap.BitBtn2Click(Sender: TObject);
begin
 MAP1.CurrentTool:=miZoomOutTool;
end;

procedure TFMap.BitBtn3Click(Sender: TObject);
begin
MAP1.CurrentTool:=miPanTool;
end;


procedure TFMap.FormCreate(Sender: TObject);
var
Features:CMapxFeatures;//地图特征集
Feature:CMapxFeature;
i,j:integer;
fields:CMapXfields;//字段集
ds:CMapXDataSet;//数据集
unusedParam: OleVariant;//未用到参数定义
Param: Variant;
pntStyle:CMapxStyle;
MyFont:TFont;
begin

  
  Map1.CreateCustomTool(RulerToolID,miToolTypeLine, miSizeCursor, miSizeCursor, miSizeCursor, EmptyParam);
  Map1.CreateCustomTool(PolyRulerToolID,miToolTypePoly, miSizeCursor, miSizeCursor, miSizeCursor, EmptyParam);
  {Map1.Layers.Add('E:\test1\networkdata.TAB',2);

  // Map1.GeoSet := 'C:\Documents and Settings\zhaolei\My Documents\jin.gst';
  //Map1.Layers.Add('C:\Documents and Settings\zhaolei.SF\My Documents\map1\基站参数表.tab',2);
  // Map1.Layers.item[1].OverrideStyle:=true;
  //Map1.Layers.item[1].AutoLabel:=true;
  ds := Map1.Datasets.Add(miDataSetLayer, Map1.Layers.Item[1], EmptyParam, EmptyParam, EmptyParam, EmptyParam,
                          EmptyParam, EmptyParam);
  pntstyle:=coStyle.create;
  MyFont:=TFont.Create;
  Features:= Map1.Layers[1].AllFeatures;
 { Map1.Layers.item[1].BeginAccess(miAccessReadWrite);
  for i:=1 to Features.Count do
     begin
     myfont.Name :='MapInfo Miscellaneous';
     myfont.Size:=24;
     pntStyle.SymbolFontColor:= clblue;
     pntStyle.SymbolFontRotation:= ds.Value[i,29];
     pntStyle.SymbolCharacter:=76;
      Feature.Style:=pntStyle;
     Feature.Update(EmptyParam,EmptyParam);
    end;
  Map1.Layers.item[1].EndAccess(miAccessEnd); }
  {Map1.Layers.item[1].LabelProperties.Dataset:= ds;
  Map1.Layers.item[1].LabelProperties.DataField := ds.Fields.Item[29];
  //Map1.Layers.item[1].LabelProperties.Position := miPositionBR;
  Map1.Layers.item[1].LabelProperties.Overlap:= true;
  Map1.Layers.item[1].LabelProperties.LineType:=miLineTypeArrow;
  Map1.Layers.item[1].AutoLabel := True ; }

end;



procedure TFMap.BitBtn4Click(Sender: TObject);
var
   param: variant;
   ds:    CMapXdataSet;
   unusedParam: OleVariant;
   fields: Variant;
   thmFX: CMapXTheme;
   thmJD: CMapXTheme;
   pntStyle: CMapXStyle;
   Features: CMapXFeatures;
   Feature:CMapXFeature;
   i:integer;
   MyFont:TFont;
   rc:  RangeCategory;
   iNumRanges:integer;
   Features1:CMapxFeatures;//地图特征集
   Feature1:CMapxFeature;

begin
    map1.Layers[1].Style:=map1.DefaultStyle;
    ds := Map1.Datasets.Add(miDataSetLayer, Map1.Layers.Item[1], EmptyParam, EmptyParam, EmptyParam, EmptyParam,
                             EmptyParam, EmptyParam);
    ds.Themes.Add(miThemeRanged, 'wd','JD',EmptyParam);
    ds.Themes.Add(miThemeIndividualValue, 'fxj', 'FX',EmptyParam);

    thmJD:= ds.Themes.item[1];
    thmFX:= ds.Themes.item[2];

      for i := 1 to thmFX.ThemeProperties.IndividualValueCategories.Count  do
    begin
     pntStyle := thmFX.ThemeProperties.IndividualValueCategories.Item[i].Style;
     pntStyle.SymbolFontRotation:= ds.Value[i,10];
     thmFX.ThemeProperties.IndividualValueCategories.Item[i].Style:= pntStyle;
    end;


   iNumRanges:=thmJD.ThemeProperties.NumRanges;
    rc:=thmJD.ThemeProperties.RangeCategories[1];
    rc.Style.SymbolFontColor:=clblue;
    rc:=thmJD.ThemeProperties.RangeCategories[iNumRanges];
    rc.Style.SymbolFontColor:=clYellow;

    {for i := 1 to thmFX.ThemeProperties.IndividualValueCategories.Count  do
    begin
      if i=1 then
      begin
      iNumRanges:=thmJD.ThemeProperties.NumRanges;
      pntStyle.SymbolFontColor:= clblue;
      pntStyle.SymbolFontRotation:= ds.Value[i,29];
      pntStyle.SymbolCharacter:=123;
      rc:=thmJD.ThemeProperties.RangeCategories[1];
      thmFX.ThemeProperties.IndividualValueCategories.Item[i].Style:= pntStyle;
      rc.Style:=pntStyle;
      end;
      if (i>1)  and (i<thmFX.ThemeProperties.IndividualValueCategories.count)   then
      begin
      pntStyle.SymbolFontRotation:= ds.Value[i,10];
      thmFX.ThemeProperties.IndividualValueCategories.Item[i].Style:= pntStyle;
      end;
      if i = thmFX.ThemeProperties.IndividualValueCategories.Count then
      begin
      rc:=thmJD.ThemeProperties.RangeCategories[iNumRanges];
      pntStyle.SymbolFontColor:= clyellow;
      pntStyle.SymbolFontRotation:= ds.Value[i,10];

      thmFX.ThemeProperties.IndividualValueCategories.Item[i].Style:= pntStyle;
      rc.Style:=pntStyle;
      end;
    end;
    iNumRanges:=thmJD.ThemeProperties.NumRanges;
    pntStyle.SymbolFontColor:= clblue;
    rc:=thmJD.ThemeProperties.RangeCategories[1];
    rc.Style:=pntStyle;
    rc.Style.SymbolCharacter:=123;
    rc:=thmJD.ThemeProperties.RangeCategories[iNumRanges];
    pntStyle.SymbolFontColor:= clyellow;
    rc.Style:=pntStyle; }


end;

procedure TFMap.Button1Click(Sender: TObject);
var
   param: variant;
   ds1:    CMapXdataSet;
   unusedParam: OleVariant;
   fields: CMapXfields;
   iNumRanges:integer;
   rc :RangeCategory;
   thmJD:CMapXTheme;
    SourceData: OLEVariant;

begin
     {创建 QueryInfo 对象并设置它的属性}
     param := CreateOleObject('MapX.ODBCQueryInfo.5');
     param.SqlQuery := 'select * from networkdata';
     param.DataSource := 'db2';
     param.ConnectString := 'ODBC;';
     fields := CoFields.Create;
     fields.Add('jd','jd', miAggregationAuto,miTypeFloat);
     fields.Add('wd','wd', miAggregationAuto,miTypeFloat);
     fields.Add('dhl','dhl', miAggregationAuto,miTypeFloat);
     {通过QueryInfo增加数据集}
     //ds := Map1.Datasets.Add(miDataSetODBC, Map1.Layers.Item[1], EmptyParam, EmptyParam, EmptyParam, EmptyParam,
     //                        EmptyParam, EmptyParam);
     ds1:= Map1.Datasets.Add(miDataSetODBC ,param, 'ODBC Dataset',EmptyParam, EmptyParam, EmptyParam,  fields, EmptyParam);
     ds1.Themes.Add(miThemeIndividualValue, 'wd','wd',EmptyParam);
     thmJD:= ds1.Themes.item[1];
     { iNumRanges:=thmJD.ThemeProperties.NumRanges;
      rc:=thmJD.ThemeProperties.RangeCategories[1];
      rc.Style.SymbolFontColor:=clblue;
      rc.Style.SymbolCharacter:=44;
      rc:=thmJD.ThemeProperties.RangeCategories[iNumRanges];
      rc.Style.SymbolFontColor:=clYellow;}
end;

procedure TFMap.BitBtn5Click(Sender: TObject);
begin
  map1.currentTool := miRectSelectTool;
end;

procedure TFMap.Button2Click(Sender: TObject);
var
ds:      CMapXDataSet;
Features:CMapXFeatures;
Feature :CMapXFeature;
Style:   CMapXStyle;
i:       integer;
begin
  ds := Map1.Datasets.Add(miDataSetLayer, Map1.Layers.Item[1], EmptyParam, EmptyParam, EmptyParam, EmptyParam,
                          EmptyParam, EmptyParam);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -