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

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

?? mapx.pas

?? mapx+Delephi程序 以前做的一個MapX程序框架,實現了很多mapX功能,并且使用起來很方便,可在此基礎上繼續開發. 現在本人不基本不搞mapx,搞ArcEngine了,現代碼全部貢獻了
?? 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一区二区三区免费野_久草精品视频
久久精品国产一区二区| 亚洲国产cao| 国产精品一二三在| 久久综合色之久久综合| 国产精品99久久久久久久vr | www.亚洲国产| 亚洲免费观看高清在线观看| 欧美三级午夜理伦三级中视频| 午夜精品久久久久久久99水蜜桃| 91麻豆精品国产91久久久久| 国产综合一区二区| ㊣最新国产の精品bt伙计久久| 在线免费观看一区| 人人超碰91尤物精品国产| 久久久影院官网| 91热门视频在线观看| 日韩av一区二| 国产精品久久久久久一区二区三区| 色综合久久综合网| 美腿丝袜亚洲综合| 亚洲欧洲日韩一区二区三区| 欧美日韩aaaaa| 成人一道本在线| 五月激情综合网| 国产欧美日韩精品a在线观看| 色网综合在线观看| 紧缚捆绑精品一区二区| 综合久久一区二区三区| 日韩亚洲欧美成人一区| 波多野结衣中文字幕一区 | 欧美亚洲一区三区| 激情久久久久久久久久久久久久久久| 亚洲国产激情av| 日韩一区二区在线看片| 色综合天天综合给合国产| 捆绑变态av一区二区三区| 亚洲天堂网中文字| 久久久综合激的五月天| 欧美午夜一区二区三区| 成人国产精品免费网站| 日本成人在线视频网站| 亚洲色图.com| 中文字幕欧美区| 欧美大片免费久久精品三p| 99精品视频在线免费观看| 精品亚洲国产成人av制服丝袜| 亚洲影视在线播放| 日韩毛片高清在线播放| 久久久久久久久久久黄色| 欧美日本一区二区| 日本电影欧美片| 91女厕偷拍女厕偷拍高清| 经典三级一区二区| 免费久久99精品国产| 亚洲国产综合在线| 亚洲裸体xxx| 国产精品不卡一区二区三区| 欧美mv和日韩mv的网站| 欧美另类高清zo欧美| 一本久久精品一区二区| www.久久精品| 成人h精品动漫一区二区三区| 国产精品影视天天线| 另类的小说在线视频另类成人小视频在线 | 亚洲宅男天堂在线观看无病毒| 中文字幕av在线一区二区三区| 欧美mv日韩mv亚洲| 欧美一区二区三区在线| 欧美视频你懂的| 色狠狠桃花综合| 欧美亚洲动漫制服丝袜| 91福利视频在线| 在线视频国内一区二区| 在线观看不卡一区| 欧美午夜不卡视频| 欧美精品tushy高清| 欧美精品粉嫩高潮一区二区| 欧美精品日韩一区| 日韩欧美在线不卡| 精品国精品国产尤物美女| 日韩一区二区免费在线电影| 欧美日韩国产系列| 日韩欧美一区在线观看| 欧美sm极限捆绑bd| 欧美国产一区视频在线观看| 国产精品久久久久7777按摩| 1区2区3区精品视频| 亚洲人成伊人成综合网小说| 亚洲欧洲综合另类| 一区二区免费看| 五月激情丁香一区二区三区| 日本伊人精品一区二区三区观看方式| 免费一级欧美片在线观看| 黑人精品欧美一区二区蜜桃| 国产精品一线二线三线| 不卡一二三区首页| 欧美三级乱人伦电影| 91精品久久久久久久久99蜜臂 | 久久久久久久av麻豆果冻| 久久久高清一区二区三区| 亚洲国产精品v| 亚洲午夜一区二区| 国产一区在线观看视频| 不卡的av中国片| 制服视频三区第一页精品| 欧美成人bangbros| 国产精品久久免费看| 一区2区3区在线看| 久热成人在线视频| 色香蕉久久蜜桃| 日韩一级视频免费观看在线| 国产日韩精品一区| 亚洲国产aⅴ成人精品无吗| 久久99精品国产麻豆婷婷洗澡| 风间由美中文字幕在线看视频国产欧美 | 欧美视频日韩视频| 久久久国际精品| 亚洲综合色婷婷| 国产精品中文字幕日韩精品 | 精品在线你懂的| 色综合婷婷久久| 337p日本欧洲亚洲大胆精品| 亚洲免费av高清| 国产乱人伦偷精品视频不卡| 欧美色国产精品| 国产精品欧美一区喷水| 日av在线不卡| 欧美亚洲综合另类| 国产精品久久看| 国产专区欧美精品| 欧美精品 国产精品| 亚洲欧洲国产日本综合| 久久综合综合久久综合| 欧美在线不卡一区| 国产精品美女久久久久高潮| 久久国产欧美日韩精品| 欧美午夜精品久久久| 亚洲欧洲日产国码二区| 久久成人免费网| 欧美精品在线观看一区二区| 中文字幕在线一区| 国产成人免费视频一区| 欧美一级片免费看| 亚洲综合区在线| 91丨porny丨国产| 国产视频911| 国产专区欧美精品| 日韩精品一区二区三区在线观看| 亚洲国产精品久久久久秋霞影院 | 欧美一区二区国产| 亚洲电影中文字幕在线观看| 91在线视频免费观看| 国产亚洲人成网站| 精品亚洲porn| 久久综合久久综合亚洲| 日韩电影在线观看电影| 欧美日韩亚洲综合一区| 一区二区三区四区五区视频在线观看| 成人av电影免费观看| 欧美国产日本韩| 成人aa视频在线观看| 国产欧美一区二区精品性色| 精品在线播放午夜| 欧美videofree性高清杂交| 日韩高清一区二区| 欧美一区二区视频免费观看| 天天亚洲美女在线视频| 欧美日韩一区二区三区视频| 一个色综合av| 欧美高清dvd| 奇米四色…亚洲| 久久色在线观看| 国产成人av福利| 中文字幕一区二区三| 99精品久久只有精品| 亚洲六月丁香色婷婷综合久久| 色综合久久88色综合天天6| 亚洲欧洲精品一区二区三区不卡| 99久久精品国产导航| 中文字幕在线不卡视频| 色狠狠av一区二区三区| 亚洲国产成人va在线观看天堂| 4438x成人网最大色成网站| 美国欧美日韩国产在线播放| 久久久影院官网| 91麻豆123| 蜜臀久久99精品久久久久宅男| 精品久久久久久无| 波多野结衣视频一区| 亚洲国产一区二区三区青草影视| 欧美一级日韩一级| 国产精品99久久久| 一区二区三区在线免费| 在线不卡的av| 大胆欧美人体老妇| 亚洲大型综合色站| 久久亚洲免费视频| 色久优优欧美色久优优| 久久se这里有精品| 亚洲乱码精品一二三四区日韩在线 |