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

📄 gis.txt

📁 gis 试用版代码,delphi开发版,试用期限,三十天
💻 TXT
📖 第 1 页 / 共 4 页
字号:
    SelTargetDlg.clbTargets.Items.AddObject(Targets[I].Name,
                                            TObject(Targets[I].ID));

  if SelTargetDlg.ShowModal = mrOK then
  begin
    with SelTargetDlg do
      for I := 0 to clbTargets.Items.Count - 1 do
        if clbTargets.Checked[I] then
          PollingTarget(Integer(clbTargets.Items.Objects[I]));
  end;
  SelTargetDlg.Free;
  tmrGpsData.Enabled := True;
end;

/////////////////////////////////////////////////////////////////
// 地图放大操作
/////////////////////////////////////////////////////////////////
procedure TMainForm.tbnZoomInClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_ZOOMIN;
end;

////////////////////////////////////////////////////////////////
// 地图缩小操作
////////////////////////////////////////////////////////////////
procedure TMainForm.tbnZoomOutClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_ZOOMOUT;
end;

/////////////////////////////////////////////////////////////////
// 地图漫游操作
//////////////////////////////////////////////////////////////////
procedure TMainForm.tbnGrabClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_PAN;
end;

////////////////////////////////////////////////////////////////
// 地图测量长度操作
////////////////////////////////////////////////////////////////
procedure TMainForm.tbnMeasureLenClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MEASURELENGTH;
end;

////////////////////////////////////////////////////////////////
// 地图测量面积操作
/////////////////////////////////////////////////////////////////
procedure TMainForm.tbnMeasureAreaClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MEASUREAREA;
end;

///////////////////////////////////////////////////////////////
// 地图放大镜操作
///////////////////////////////////////////////////////////////
procedure TMainForm.tbnMagnifierClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MAGNIFIER;
end;

//////////////////////////////////////////////////////////////
// 地图圆形选取地物操作
//////////////////////////////////////////////////////////////
procedure TMainForm.tbnRoundSelClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MAPROUNDSELECT;
end;

////////////////////////////////////////////////////////////////
// 地图多边形选取地物操作
/////////////////////////////////////////////////////////////////
procedure TMainForm.tbnPolygonSelClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MAPPOLYGONSELECT;
end;

////////////////////////////////////////////////////////////////
// 地图矩形选取地物操作
/////////////////////////////////////////////////////////////////
procedure TMainForm.tbnRectangleSelClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MAPRECTSELECT;
end;

/////////////////////////////////////////////////////////////////
// 地图点选地物操作
/////////////////////////////////////////////////////////////////
procedure TMainForm.tbnPointSelClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_MAPPOINTSELECT;
end;

procedure TMainForm.tbnSelTargetClick(Sender: TObject);
begin
  GpsManager.ActionType := ACTIONTYPE_SELECTTARGET;
end;

///////////////////////////////////////////////////////////////
// 打印地图
////////////////////////////////////////////////////////////////
procedure TMainForm.tbPrintClick(Sender: TObject);
begin
  ActiveGpsCtrl.LTPrint(PRINT_ALL);
end;

///////////////////////////////////////////////////////////////
// 图层管理器
////////////////////////////////////////////////////////////////
procedure TMainForm.tbnMapLayersClick(Sender: TObject);
begin
  ActiveGpsCtrl.DoLayerManager;
end;

////////////////////////////////////////////////////////////
// 终止回传操作
////////////////////////////////////////////////////////////
procedure TMainForm.btnStopPollingClick(Sender: TObject);
var
  I: Integer;
  TargetID: Longint;
  SelTargetDlg: TSelTargetDlg;
begin

  SelTargetDlg := TSelTargetDlg.Create(Self);
  SelTargetDlg.clbTargets.Items.Clear;
  for I := 0 to PollingTargets.Count - 1 do
    SelTargetDlg.clbTargets.Items.AddObject(GetTargetName(Integer(PollingTargets[I])),
                                            TObject(PollingTargets[I]));

  if SelTargetDlg.ShowModal = mrOK then
  begin
    tmrGpsData.Enabled := False;
    with SelTargetDlg do
    begin
      for I := 0 to clbTargets.Items.Count - 1 do
        if clbTargets.Checked[I] then
        begin
          TargetID := Integer(clbTargets.Items.Objects[I]);

          (*******************************************)
          (*                                         *)
          GpsManager.DelTarget(TargetID);
          (*                                         *)
          (*******************************************)

          StopPollingTarget(TargetID);
          DeleteTargetData(GetTargetName(TargetID));
        end;
    end;
    tmrGpsData.Enabled := PollingTargets.Count > 0;
  end;
  SelTargetDlg.Free;
end;

//////////////////////////////////////////////////////////////////////
// OnCreate事件处理程序
//////////////////////////////////////////////////////////////////////
procedure TMainForm.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  //载入地图及符号库
  LoadMapsSymbols;

  (*******************************************************)
  (*                                                     *)
  if GpsManager.GeoMaps.Count > 0 then
  begin
    GpsManager.GeoMaps.Begin_;
    for I := 0 to GpsManager.GeoMaps.Count - 1 do
      cbbMaps.Items.Add(GpsManager.GeoMaps.GetNext.Name);
  end;
  (*                                                     *)
  (*******************************************************)

  cbbMaps.ItemIndex := 0;

  // 建立目标数组
  InitTargets(MAX_TARGETS);

  //目标名称显示位置
  with cbbCaptionPos, Items do
  begin
    AddObject('尾部', TObject(POS_TAIL));
    AddObject('左上角', TObject(POS_LEFTTOP));
    AddObject('顶部', TObject(POS_TOP));
    AddObject('右上角', TObject(POS_RIGHTTOP));
    AddObject('右侧', TObject(POS_RIGHT));
    AddObject('右下角', TObject(POS_RIGHTBOTTOM));
    AddObject('底部', TObject(POS_BOTTOM));
    AddObject('左下角', TObject(POS_LEFTBOTTOM));
    AddObject('左侧', TObject(POS_LEFT));
    ItemIndex := 0;
  end;

  //可供用户选择的颜色设置
  AddComboBoxColors(Self);

  //系统默认设置
  SetLTDefault;
  pgcControlPanel.ActivePage := tsMonitor;
end;

/////////////////////////////////////////////////////////
// 增加监控窗口操作
/////////////////////////////////////////////////////////
procedure TMainForm.btnAddWinClick(Sender: TObject);
begin
  CreateMonitorWindow;
  Tile;
end;

/////////////////////////////////////////////////////////
// 系统缺省设置
/////////////////////////////////////////////////////////
procedure TMainForm.SetLTDefault;
begin
  //多目标监控状态
  sbnMulti.Down := True;

  {***************************************************************}
  {**                      目标属性                             **}
  {***************************************************************}

  //去零漂
  cbDisableMoveOnQuiet.Checked := GpsManager.DisableMoveOnQuiet;
  //去零漂速度限制
  edtSpeedLimit.Text := IntToStr(Round(GpsManager.SpeedLimit));
  //正常目标名称前景色
  cbbNormalFg.ItemIndex :=
      cbbNormalFg.Items.IndexOfObject(TObject(GpsManager.TargetNameNormalFontColor));
  //正常目标名称背景色
  cbbNormalBg.ItemIndex :=
      cbbNormalBg.Items.IndexOfObject(TObject(GpsManager.TargetNameNormalBackColor));
  //激活目标名称前景色
  cbbActiveFg.ItemIndex :=
      cbbActiveFg.Items.IndexOfObject(TObject(GpsManager.TargetNameActiveFontColor));
  //激活目标名称背景色
  cbbActiveBg.ItemIndex :=
      cbbActiveBg.Items.IndexOfObject(TObject(GpsManager.TargetNameActiveBackColor));
  //目标符号宽度
  edtSymbolWidth.Text := IntToStr(GpsManager.CarSymbolWidth);
  //目标符号高度
  edtSymbolHeight.Text := IntToStr(GpsManager.CarSymbolHeight);
  //目标名称位置
  cbbCaptionPos.ItemIndex := 0;
  //误差圈颜色
  cbbErrCircleColor.ItemIndex :=
      cbbErrCircleColor.Items.IndexOfObject(TObject(GpsManager.ErrRoundColor));
  //误差圈半径
  edtErrorCircleRadius.Text := IntToStr(Round(GpsManager.ErrorRoundRadius));
  //误差圈宽度
  edtErrorCircleWidth.Text := IntToStr(GpsManager.ErrRoundWidth);

  {***************************************************************}
  {**                      显示属性                             **}
  {***************************************************************}
  //放大镜尺寸
  edtMagnifierH.Text := IntToStr(GpsManager.MagnifierHeight);
  edtMagnifierW.Text := IntToStr(GpsManager.MagnifierWidth);
  //放大倍数
  edtMagnifierRatio.Text := IntToStr(GpsManager.MagnifierTime);
  //轨迹点颜色
  cbbPointColor.ItemIndex :=
      cbbPointColor.Items.IndexOfObject(TObject(GpsManager.TailLPointColor));
  //轨迹线颜色
  cbbLineColor.ItemIndex :=
      cbbLineColor.Items.IndexOfObject(TObject(GpsManager.TailLineColor));
  //轨迹点半径
  edtPointRadius.Text := IntToStr(GpsManager.TailPointSize);
  //轨迹线宽度
  edtLineWidth.Text := IntToStr(GpsManager.TailLineWidth);
  //显示轨迹连线
  cbShowTailLine.Checked := Boolean(GpsManager.ShowTailLine);
  //显示轨迹点
  cbShowTailPoint.Checked := Boolean(GpsManager.ShowTailLine);


end;

procedure TMainForm.SetWinAttribs;
begin
  {***************************************************************}
  {**                      监控窗口属性                         **}
  {***************************************************************}

  //自动换图
  cbAutoChangeMap.Checked := Boolean(ActiveGpsCtrl.AutoChangeMap);
  //显示标尺
  cbShowRuler.Checked := ActiveGpsCtrl.ShowRuler;
  //显示比例尺
  cbShowRuler.Checked := Boolean(ActiveGpsCtrl.ShowScale);
  //显示影像图
  cbShowImage.Checked := ActiveGpsCtrl.ShowImage;
  //标尺背景色
  cbbRulerColorBg.ItemIndex :=
      cbbRulerColorBg.Items.IndexOfObject(TObject(GpsManager.RulerBackColor));
  //标尺前景色
  cbbRulerColorFg.ItemIndex :=
      cbbRulerColorFg.Items.IndexOfObject(TObject(GpsManager.RulerForeColor));
  //窗口背景色
  cbbWinBgColor.ItemIndex :=
      cbbWinBgColor.Items.IndexOfObject(TObject(ActiveGpsCtrl.BackColor));


end;

////////////////////////////////////////////////////////////////
// 更换地图
///////////////////////////////////////////////////////////////
procedure TMainForm.cbbMapsChange(Sender: TObject);
var
  I: Integer;
  AGeoMap: IRTGeoMap;
begin
  if ActiveGpsCtrl.CurrentMap.Name = cbbMaps.Items[cbbMaps.ItemIndex] then
    Exit;
  GpsManager.GeoMaps.Begin_;
  for I := 0 to GpsManager.GeoMaps.Count - 1 do
  begin
    AGeoMap := GpsManager.GeoMaps.GetNext;
    if AGeoMap.Name = cbbMaps.Items[cbbMaps.ItemIndex] then
    begin
      ActiveGpsCtrl.CurrentMap := AGeoMap;
      (ActiveMDIChild as TMonitorWin).Caption := AGeoMap.Name;
      Break;
    end;
  end;
end;

/////////////////////////////////////////////////////////////////////////////
// 删除监控窗口
/////////////////////////////////////////////////////////////////////////////
procedure TMainForm.btnRemoveWinClick(Sender: TObject);
begin
  if MDIChildCount <= 1 then
    Exit;
  (**************************************************************)
  (*                                                            *)
  GpsManager.DelGpsWin(
      (ActiveMDIChild as TMonitorWin).GpsCtrl.ControlInterface);
  (*                                                            *)
  (**************************************************************)
  (ActiveMDIChild as TMonitorWin).Free;
  Tile;
end;

//////////////////////////////////////////////////////////////////////////////
// 向下拉列表框添加颜色供用户选择
//////////////////////////////////////////////////////////////////////////////
procedure TMainForm.AddComboBoxColors(Control: TWinControl);
var
  AComboBox: TCombobox;
  I: Integer;

  procedure AddColors(C: TComboBox);
  begin
    with C.Items do
    begin
      AddObject('clBlack', TObject(clBlack));
      AddObject('clMaroon', TObject(clMaroon));
      AddObject('clGreen', TObject(clGreen));
      AddObject('clOlive', TObject(clOlive));
      AddObject('clNavy', TObject(clNavy));
      AddObject('clPurple', TObject(clPurple));
      AddObject('clTeal', TObject(clTeal));
      AddObject('clGray', TObject(clGray));
      AddObject('clSilver', TObject(clSilver));
      AddObject('clRed', TObject(clRed));
      AddObject('clLime', TObject(clLime));
      AddObject('clYellow', TObject(clYellow));
      AddObject('clBlue', TObject(clBlue));
      AddObject('clFuchsia', TObject(clFuchsia));
      AddObject('clAqua', TObject(clAqua));
      AddObject('clWhite', TObject(clWhite));
    end;
  end;

begin
  with Control do
  begin
    for I := 0 to ControlCount - 1 do
    begin
      if not (Controls[I] is TWinControl) then
        Continue;
      if (Controls[I] is TComboBox) and (Controls[I] <> cbbMaps)
          and (Controls[I] <> cbbCaptionPos) then
      begin
        AComboBox := TComboBox(Controls[I]);
              AComboBox.Style := csOwnerDrawFixed;
        AComboBox.OnDrawItem := DrawColorItem;
        AddColors(AComboBox);
      end else

⌨️ 快捷键说明

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