亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mapx.~pas

?? Delphi + MapX程序框架(地圖)源碼程序
?? ~PAS
?? 第 1 頁 / 共 3 頁
字號:
      miFeatureTypeLine   : Result:= Result+[atAlongLine];
      miFeatureTypeSymbol : if SourceFs.Count = 1 then
                              Result:= Result+[atAroundPoint] ;
    end;
  end;
end;

procedure TMapX.AnalyseSetting(AnalyseType: TAnalyseType);
var
  frmAnalyse: TfrmAnalyse;
begin
  frmAnalyse:= TfrmAnalyse.Create(nil);
  frmAnalyse.SetBuddyMap(Self);
  frmAnalyse.AnalyseType:= AnalyseType;
  frmAnalyse.SourceFs:= FMap.Layers.Item[FWorkLayer].Selection.Clone;
  try
    frmAnalyse.ShowModal;
  finally
    frmAnalyse.Free;
  end;
end;

function TMapX.GetLayerSelection(ALayer: string): CMapXFeatures;
begin
  Result:= nil;
  if LayerExist(ALayer) then
    Result:= FMap.Layers.Item[ALayer].Selection.Clone;
end;

function TMapX.GetMapHandle: HWND;
begin
  Result:= FMap.Handle;
end;

procedure TMapX.SetLayerKeyField(ALayer, AField: string);
begin
  FMap.Layers.Item[ALayer].KeyField:= AField;
end;

function TMapX.GetLayerByName(AName: string): CMapXLayer;
begin
  Result:= FMap.Layers.Item[AName];
end;

{ TMapXToolObject }

constructor TMapXToolObject.Create(const Sender: TMapX);
begin
  FMapX:= Sender;
end;

{ TMapXSelectToolObject }

procedure TMapXSelectToolObject.Execute;
begin
  inherited;
  if FMapX.LayerSelectable(FMapX.WorkLayer) then
    FEnable:= True
  else begin
    FEnable:= False;
    if not FMapX.FMap.Layers.Item[FMapX.WorkLayer].Visible then
      MessageDlg('請確認該圖層處于可視狀態!', mtInformation, [mbOk], 0)
    else
      MessageDlg('請確認該圖層處于可選擇狀態!', mtInformation, [mbOk], 0);
  end;
end;

{ TMapXPointSelectToolObject }

procedure TMapXPointSelectToolObject.Execute(X1, Y1: Double);
var
  MyPoint: CMapXPoint;
begin
  inherited Execute;
  if FEnable then
  begin
    MyPoint:= CoPoint.Create;
    MyPoint.Set_(X1,Y1);
    FSelection:= FMapX.FMap.Layers.Item[FMapX.WorkLayer].SearchAtPoint(
                               MyPoint,miSearchResultDefault);
  end;
end;

{ TPointSelectTool }

constructor TPointSelectTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttPointSelectTool), miToolTypePoint, miSelectCursor);
  FToolType:= mttPointSelectTool;
end;

procedure TPointSelectTool.Execute(X1, Y1: Double; Shift, Ctrl: WordBool);
begin
  inherited Execute(X1,Y1);
  if FEnable then
    FMapX.SetLayerSelection(Shift, Ctrl, FSelection, FMapX.WorkLayer);
end;

{ TRadiusSelectTool }

constructor TRadiusSelectTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttRadiusSelectTool), miToolTypeCircle, miRadiusSelectCursor);
  FToolType:= mttRadiusSelectTool;
end;

procedure TRadiusSelectTool.Execute(X1, Y1, Distance: Double; Shift,
  Ctrl: WordBool);
var
  MyPoint: CMapXPoint;
begin
  inherited Execute;
  if FEnable then
  begin
    MyPoint:= CoPoint.Create;
    MyPoint.Set_(X1,Y1);
    FSelection:= FMapX.FMap.Layers.Item[FMapX.WorkLayer].SearchWithinDistance(
                  MyPoint,Distance,miUnitKilometer,miSearchTypeCentroidWithin);
    FMapX.SetLayerSelection(Shift, Ctrl, FSelection, FMapX.WorkLayer);
  end;
end;

{ TRectSelectTool }

constructor TRectSelectTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttRectSelectTool), miToolTypeMarquee, miRectSelectCursor);
  FToolType:= mttRectSelectTool;
end;

procedure TRectSelectTool.Execute(X1, Y1, X2, Y2: Double; Shift,
  Ctrl: WordBool);
var
  MyRect: CMapXRectangle;
begin
  inherited Execute;
  if FEnable then
  begin
    MyRect:= CoRectangle.Create;
    MyRect.Set_(X1,Y1,X2,Y2);
    FSelection:= FMapX.FMap.Layers.Item[FMapX.WorkLayer].SearchWithinRectangle(
                               MyRect,miSearchTypeCentroidWithin);
    FMapX.SetLayerSelection(Shift, Ctrl, FSelection, FMapX.WorkLayer);
  end;
end;

{ TPolygonSelectTool }

constructor TPolygonSelectTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttPolygonSelectTool), miToolTypePolygon, miRegionSelectCursor);
  FToolType:= mttPolygonSelectTool;
end;

procedure TPolygonSelectTool.Execute(const Points: IDispatch; Shift,
  Ctrl: WordBool);
var
  Region: CMapXFeature;
  Style: CMapXStyle;
begin
  Style := FMapX.FMap.DefaultStyle.Clone;
  Region:= FMapX.FMap.FeatureFactory.CreateRegion(Points, Style);
  FSelection:= FMapX.FMap.Layers.Item[FMapX.WorkLayer].SearchWithinFeature(
             Region, miSearchTypeCentroidWithin);
  FMapX.SetLayerSelection(Shift, Ctrl, FSelection, FMapX.WorkLayer);
end;

{ TRulerTool }

constructor TRulerTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttRulerTool), miToolTypePoly, miCrossCursor);
  FToolType:= mttRulerTool;
  FfrmRuler:= TfrmRuler.Create(nil);
end;

destructor TRulerTool.Destroy;
begin
  FfrmRuler.Free;
  inherited;
end;

procedure TRulerTool.Execute(X, Y: Integer; Button: TMouseButton;
  Mode: TMouseMode);
var
  X1,Y1: Single;
begin
  inherited;
  X1:= X/1.0; Y1:= Y/1.0;
  FMapX.FMap.MapUnit:= miUnitKilometer;
  if (Mode = mmDown) and (Button = mbLeft) then
  begin
    FMapX.FMap.ConvertCoord(X1,Y1,FXDown,FYDown,miScreenToMap);
    if FRulerMode = rmFinished then
      FRulePastDistance:=0;
    FRulerMode:= rmProcessing;
    FRulePastDistance:= FRulePastDistance+FRuleCurrDistance;
    FfrmRuler.Visible:= True;
  end;

  if (Mode = mmMove) and (FRulerMode = rmProcessing) then
  begin
    FMapX.FMap.ConvertCoord(X1,Y1,FXMove,FYMove,miScreenToMap);
    FRuleCurrDistance:= FMapX.FMap.Distance(FXDown, FYDown, FXMove,FYMove);
    FfrmRuler.Edit1.Text:= FloatToStr(FRuleCurrDistance);
    FfrmRuler.Edit2.Text:= FloatToStr(FRuleCurrDistance+FRulePastDistance);
  end;
end;

{ TAreaTool }

constructor TAreaTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttAreaTool), miToolTypePoly, miCrossCursor);
  FToolType:= mttAreaTool;
  FfrmArea:= TfrmArea.Create(nil);
end;

destructor TAreaTool.Destroy;
begin
  FfrmArea.Free;
  inherited;
end;

procedure TAreaTool.Execute(const Points: IDispatch);
var
  i: Integer;
  Region: CMapXFeature;
  Style: CMapXStyle;
  LastSec: Double; //周長中首尾點的長度。周長= FGirth+ LastSec。
begin
  inherited;
  FMapX.FMap.MapUnit:= miUnitKilometer;
  FMapX.FMap.AreaUnit:= miUnitSquareKilometer;
  //無周長,無面積
  if CMapxParts(Points).Count = 1 then
  begin
    FGirth:= 0;
    FArea:= 0;
  end;
  //有周長
  if CMapxPoints(Points).Count >= 2 then
  begin
    FGirth:= FGirth+FMapX.FMap.Distance(CMapxPoints(Points).Item[CMapxPoints(Points).Count].X,
                                  CMapxPoints(Points).Item[CMapxPoints(Points).Count].Y,
                                  CMapxPoints(Points).Item[CMapxPoints(Points).Count-1].X,
                                  CMapxPoints(Points).Item[CMapxPoints(Points).Count-1].Y);
    if CMapxPoints(Points).Count > 2 then
      LastSec:=     FMapX.FMap.Distance(CMapxPoints(Points).Item[CMapxPoints(Points).Count].X,
                                  CMapxPoints(Points).Item[CMapxPoints(Points).Count].Y,
                                  CMapxPoints(Points).Item[1].X,
                                  CMapxPoints(Points).Item[1].Y);
  end;
  //有面積
  if CMapxParts(Points).Count >= 3 then
  begin
    Style := FMapX.FMap.DefaultStyle.Clone;
    Region:= FMapX.FMap.FeatureFactory.CreateRegion(Points, Style);
    FArea:= Region.Area;
  end;
  FfrmArea.Edit1.Text:= FloatToStr(FGirth+LastSec);
  FfrmArea.Edit2.Text:= FloatToStr(FArea);
  FfrmArea.Visible:= True;
end;

{ TLabelTool }

constructor TLabelTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttLabelTool), miToolTypePoint, miCrossCursor);
  FToolType:= mttLabelTool;
end;

procedure TLabelTool.Execute(X1, Y1: Double);
begin
  inherited;
  if Assigned(FSelection) then
    if FSelection.Count > 0 then
      FMapX.FMap.Layers.Item[FMapX.WorkLayer].LabelAtPoint(X1,Y1);
end;

{ TInforTool }

constructor TInforTool.Create(const Sender: TMapX);
begin
  inherited;
  FMapX.FMap.CreateCustomTool(Ord(mttInforTool), miToolTypePoint, miCrossCursor);
  FToolType:= mttInforTool;
  FfrmInfor:= TfrmInfor.Create(nil);
end;

destructor TInforTool.Destroy;
begin
  FfrmInfor.Free;
  inherited;
end;

procedure TInforTool.Execute(X1, Y1: Double);
var
  i: Integer;
  FieldName, FieldValue: string;
begin
  inherited;
  if FEnable then
  begin
    FfrmInfor.ValueListEditor1.Strings.Clear;
    if FSelection.Count > 0 then
    begin
      FMapX.BindLayerData(FMapX.WorkLayer);
      for i:= 1 to FMapX.FMap.Datasets.Item[FMapX.WorkLayer].Fields.Count do
      begin
        FieldName:= FMapX.FMap.Datasets.Item[FMapX.WorkLayer].Fields.Item[i].Name;
        //只取第一個對象信息
        if FMapX.FMap.Datasets.Item[FMapX.WorkLayer].Value[FSelection.item[1],i] <> null then
          FieldValue:= string(FMapX.FMap.Datasets.Item[FMapX.WorkLayer].Value[FSelection.Item[1],i]);
        FfrmInfor.ValueListEditor1.InsertRow(FieldName,FieldValue,True);
      end; // for i
      FfrmInfor.Label1.Caption:= '1個對象';
    end  // if FSelection
    else FfrmInfor.Label1.Caption:= '0個對象';
    FfrmInfor.Visible:= True;
  end; // if FEnable
end;

{ TMapXTheme }

constructor TMapXTheme.Create(const Sender: TMapX);
begin
  FMapX:= Sender;
  FFeatureIDList:= TStringList.Create;
end;

destructor TMapXTheme.Destroy;
begin
  FFeatureIDList.Free;                
  inherited;
end;

procedure TMapXTheme.LoadFromStream(AStream: TStream);
begin

end;

procedure TMapXTheme.SaveToStream(var Stream);
begin

end;

procedure TMapXTheme.CreateLayerTheme(ALayer: string;
  FeatureIDs: TStringList);
begin

end;


{ THawkMap }

constructor THawkMap.Create(AOwner: TComponent);
begin
  inherited;
  CurrentTool:= mttRectSelectTool;
end;

procedure THawkMap.MapXOnToolUsed(ASender: TObject; ToolNum: Smallint; X1,
  Y1, X2, Y2, Distance: Double; Shift, Ctrl: WordBool;
  var EnableDefault: WordBool);
var
  rcDrag: CMapxRectangle;
begin
  if ToolNum = Ord(mttRectSelectTool)then
  begin
    rcDrag:=CoRectangle.Create;
    rcDrag.Set_(X1, Y1, X2, Y2);
    if Assigned(FBuddyMapX) then
      FBuddyMapX.FMap.Bounds:= rcDrag;
  end;
end;

procedure THawkMap.MapXOnMapViewChanged(Sender: TObject);
var
  Style: CMapxStyle;
  Pts:CMapxPoints;
  Rect: CMapXRectangle;
begin
  if Not LayerExist('HawkLayer') then
  begin
    FMap.Layers.CreateLayer('HawkLayer',EmptyParam,EmptyParam,EmptyParam,EmptyParam);
    FMap.Layers.Item['HawkLayer'].Editable:= true;
  end;
  if FMap.Layers.Item['HawkLayer'].AllFeatures.Count > 0 then
    FMap.Layers.Item['HawkLayer'].DeleteFeature(FMap.Layers.Item['HawkLayer'].AllFeatures.Item[1]);
  Rect:= FBuddyMapX.FMap.Bounds;
  pts:= CoPoints.Create;
  pts.AddXY(Rect.XMin,Rect.YMin,Emptyparam);
  pts.AddXY(Rect.XMax,Rect.YMin,Emptyparam);
  pts.AddXY(Rect.XMax,Rect.YMax,Emptyparam);
  pts.AddXY(Rect.XMin,Rect.YMax,Emptyparam);
  Style:= coStyle.Create;
  with Style do
  begin
    RegionBorderWidth:=1;
    RegionBorderColor:= clRed;
    RegionTransparent:= True;
    RegionPattern:= miPatternNoFill;
  end;
  FMap.Layers.Item['HawkLayer'].AddFeature(FMap.FeatureFactory.CreateRegion(Pts,Style),EmptyParam);
end;

procedure THawkMap.SetBuddyMap(AMapX: TMapX);
begin
  if FBuddyMapX <> nil then
     FBuddyMapX.FMap.OnMapViewChanged:= nil;
  if FBuddyMapX <> AMapX then
  begin
    FBuddyMapX:= AMapX;
    FBuddyMapX.FMap.OnMapViewChanged:= MapXOnMapViewChanged;
    MapXOnMapViewChanged(FBuddyMapX);
  end;
end;

procedure THawkMap.SetFileName(const Value: string);
begin
  inherited;
  FMap.Title.Visible:= False;
end;






initialization


finalization
  if hToolTip <> 0 then
    DestroyWindow(hToolTip);
end.

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品久| 91蜜桃传媒精品久久久一区二区| 精品视频资源站| 亚洲一区二区三区四区在线免费观看 | 在线免费不卡视频| 亚洲国产一区二区三区| 亚洲国产高清不卡| 精品一区二区三区在线播放 | 欧美久久高跟鞋激| 免费人成网站在线观看欧美高清| 欧美刺激午夜性久久久久久久| 国产在线国偷精品产拍免费yy| 久久久亚洲午夜电影| 91玉足脚交白嫩脚丫在线播放| 亚洲久本草在线中文字幕| 欧美无人高清视频在线观看| 九九视频精品免费| 亚洲欧美综合色| 一本大道av一区二区在线播放| 亚洲一区二区三区国产| 精品福利av导航| 色综合色综合色综合色综合色综合 | 国产日韩在线不卡| 欧美日韩精品欧美日韩精品一| 国产精品亚洲成人| 香蕉av福利精品导航| 国产精品网站在线观看| 欧美日本一道本在线视频| 国产精品一区在线观看乱码 | 在线观看91精品国产麻豆| 国产精品911| 久久不见久久见免费视频1| 一区在线中文字幕| 6080yy午夜一二三区久久| 91免费看`日韩一区二区| 一区二区三区精品视频| 精品国产免费一区二区三区香蕉| 91精品91久久久中77777| 国产精品1024| 久草中文综合在线| 免费观看91视频大全| 日韩精品色哟哟| 日本不卡视频在线观看| 五月天激情综合网| 丝袜脚交一区二区| 久久精品二区亚洲w码| 蜜桃视频一区二区三区| 五月婷婷欧美视频| 日韩av电影一区| 视频一区国产视频| 美女视频黄 久久| 久久aⅴ国产欧美74aaa| 国产精品白丝av| 国产成人精品一区二区三区四区| 国产剧情一区在线| 精品国产91乱码一区二区三区 | 色综合激情五月| 欧美日韩综合色| 日韩免费视频一区二区| 久久久久高清精品| 亚洲日本电影在线| 亚洲自拍偷拍图区| 麻豆freexxxx性91精品| 国产不卡在线一区| 成人黄页毛片网站| 欧美日韩亚洲国产综合| 亚洲国产精品久久久男人的天堂| 日韩电影免费在线观看网站| 国产一区二区三区免费播放| 色噜噜狠狠成人网p站| 欧美久久久久久蜜桃| 中文乱码免费一区二区| 丝袜美腿亚洲色图| 91在线观看一区二区| 日韩一区二区在线观看视频| 国产精品传媒视频| 国产一区三区三区| 欧美欧美午夜aⅴ在线观看| 中文一区二区在线观看| 日本不卡视频一二三区| 色综合一个色综合亚洲| 久久精品夜色噜噜亚洲a∨| 青娱乐精品视频| 欧美在线观看一区| 国产精品第五页| 国产一区二区三区免费| 91精品国产欧美一区二区18 | 国产精品无码永久免费888| 日本视频一区二区| 国产精品久久久久久久午夜片| 蜜桃久久精品一区二区| 日韩色在线观看| 亚洲精品视频观看| 99久久精品99国产精品| 日本一区二区三区电影| 懂色av一区二区三区免费观看| 精品国产91久久久久久久妲己| 美女看a上一区| 久久网这里都是精品| 波多野结衣亚洲一区| 中文字幕国产一区| 欧美一区二区三区婷婷月色| 久久精品国产99国产| 久久亚区不卡日本| 国产不卡视频在线播放| 日韩一区中文字幕| 91在线精品一区二区| 亚洲三级视频在线观看| 7777精品伊人久久久大香线蕉| 美女mm1313爽爽久久久蜜臀| 精品国产一区二区精华| 久久电影国产免费久久电影 | 欧美午夜片在线看| 日韩电影在线看| 国产精品剧情在线亚洲| 在线观看国产一区二区| 国内成人精品2018免费看| 亚洲欧美日韩国产一区二区三区| 欧美日高清视频| 不卡的av在线播放| 秋霞成人午夜伦在线观看| 国产精品美女一区二区三区| 欧美一区二区福利视频| 成人av网在线| 久草这里只有精品视频| 一个色在线综合| 国产精品另类一区| 日韩欧美一区在线观看| 色噜噜偷拍精品综合在线| 国产一区二区三区美女| 免费成人结看片| 亚洲国产毛片aaaaa无费看 | 亚洲欧洲成人精品av97| 精品国产亚洲在线| 欧美一区二区在线不卡| 在线观看视频一区| www.亚洲在线| 91在线免费看| 日本乱人伦一区| 日韩片之四级片| 欧美色视频一区| 欧美区视频在线观看| 欧美日韩激情在线| 9191国产精品| 日韩免费视频一区| 久久久噜噜噜久久人人看 | 亚洲精品福利视频网站| 综合久久一区二区三区| 亚洲精品va在线观看| 悠悠色在线精品| 秋霞影院一区二区| 精品一区二区三区免费观看| 狠狠色狠狠色综合日日91app| 韩国av一区二区三区四区| 东方aⅴ免费观看久久av| av福利精品导航| 欧美日韩三级视频| 精品国产sm最大网站| 中文字幕免费不卡在线| 一区二区三区在线免费播放| 欧美a级一区二区| 粉嫩久久99精品久久久久久夜| 色一情一伦一子一伦一区| 91麻豆精品国产91久久久使用方法 | 成人黄色在线网站| 日本道色综合久久| 久久综合色婷婷| 国产精品视频第一区| 亚洲一区二区四区蜜桃| 国产精品一区二区久久精品爱涩| 99精品国产一区二区三区不卡| 在线影视一区二区三区| 欧美成人r级一区二区三区| 国产日韩在线不卡| 美女爽到高潮91| 在线区一区二视频| 亚洲国产视频a| 国产一级精品在线| 欧美一三区三区四区免费在线看| 国产精品久久久一本精品 | 99久久精品一区| 久久久国产精品麻豆| 美女任你摸久久| 欧美精品aⅴ在线视频| 尤物在线观看一区| 色综合久久中文字幕综合网| 国产欧美视频在线观看| 狠狠网亚洲精品| 欧美大白屁股肥臀xxxxxx| 日韩电影在线免费| 4438成人网| 日本成人在线网站| 欧美放荡的少妇| 亚洲高清在线精品| 欧美色欧美亚洲另类二区| 丝瓜av网站精品一区二区| 制服丝袜日韩国产| 日本怡春院一区二区| 日韩三级在线免费观看| 国产成人精品三级|