亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美日韩国产一级二级| 欧美韩国一区二区| 久久久影视传媒| 一区二区三区电影在线播| 看电影不卡的网站| 欧美亚男人的天堂| 国产精品成人在线观看| 九色porny丨国产精品| 色婷婷久久久综合中文字幕| 久久青草欧美一区二区三区| 午夜视频久久久久久| 91蜜桃网址入口| 亚洲国产精品成人综合| 国产呦萝稀缺另类资源| 91精品视频网| 亚洲二区在线观看| 色综合久久久久久久久久久| 中文一区二区完整视频在线观看| 美洲天堂一区二卡三卡四卡视频 | 欧美人与性动xxxx| 国产精品二三区| 成人免费的视频| 国产色综合一区| 国产精品66部| 国产欧美日韩激情| 国产精品中文欧美| 中文字幕第一页久久| 粉嫩高潮美女一区二区三区| 久久综合五月天婷婷伊人| 精品在线视频一区| 久久先锋影音av鲁色资源网| 激情综合色综合久久| 精品国产乱子伦一区| 激情综合五月天| 国产欧美日韩综合| 国产69精品久久久久777| 国产精品区一区二区三区| 成人免费av网站| 国产精品不卡一区| 色老综合老女人久久久| 亚洲一区二区精品久久av| 在线看日韩精品电影| 亚洲成人av福利| 日韩午夜在线播放| 国产精品一级在线| 综合激情网...| 欧美日韩二区三区| 久久福利视频一区二区| 久久精品视频网| 99久久久久久| 午夜久久福利影院| 精品国产区一区| 不卡av免费在线观看| 夜夜嗨av一区二区三区| 日韩一卡二卡三卡四卡| 国产精一区二区三区| 亚洲免费高清视频在线| 制服丝袜中文字幕一区| 国产成人免费视频精品含羞草妖精| 中文字幕第一区综合| 欧美日韩视频在线一区二区| 激情图片小说一区| 亚洲色图欧美在线| 日韩欧美中文一区二区| 99久久精品免费精品国产| 视频在线观看一区| 国产精品视频九色porn| 欧美日本在线播放| 成人黄色片在线观看| 三级久久三级久久久| 国产精品色婷婷| 3atv在线一区二区三区| 99国产精品国产精品久久| 日韩黄色免费电影| 中文字幕一区在线观看视频| 制服丝袜中文字幕亚洲| 91女神在线视频| 国产盗摄视频一区二区三区| 香蕉乱码成人久久天堂爱免费| 国产日本欧美一区二区| 欧美一区二区精品久久911| 成人av在线影院| 久久国产精品99久久久久久老狼| 亚洲欧美另类久久久精品| 26uuu欧美| 欧美日韩国产综合久久| 99国产欧美久久久精品| 国产麻豆精品视频| 免费av网站大全久久| 一区二区三区在线播| 国产视频一区二区在线观看| 91麻豆精品国产综合久久久久久| 91一区二区三区在线播放| 国产综合久久久久久久久久久久| 亚洲观看高清完整版在线观看| 国产精品网站一区| 亚洲精品一区二区三区在线观看| 337p亚洲精品色噜噜狠狠| 欧美色偷偷大香| 91国产视频在线观看| 波多野结衣91| 风间由美一区二区三区在线观看 | 色综合久久综合网欧美综合网| 久久国产三级精品| 三级亚洲高清视频| 亚洲午夜精品17c| 一区二区三区.www| 一区二区三区日韩精品视频| 国产精品二三区| 国产精品久久久一本精品| 国产欧美精品区一区二区三区| 久久综合久久综合九色| 精品国产一区二区三区av性色| 欧美一级黄色大片| 亚洲制服丝袜一区| 亚洲成av人影院| 水蜜桃久久夜色精品一区的特点| 亚洲h在线观看| 三级在线观看一区二区| 日本免费新一区视频| 日韩av在线发布| 激情图片小说一区| 国产成人亚洲综合色影视| 高清不卡一区二区| 色哟哟一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 欧美性感一类影片在线播放| 欧美在线观看一二区| 欧美亚洲尤物久久| 日韩一区二区高清| 国产色产综合色产在线视频| 亚洲欧洲www| 亚洲国产成人av网| 国产一区二区三区国产| jlzzjlzz欧美大全| 欧美日韩一区 二区 三区 久久精品| 制服丝袜在线91| 国产日产精品1区| 一区二区不卡在线播放| 天天影视网天天综合色在线播放| 老司机精品视频线观看86| 懂色av噜噜一区二区三区av| 色婷婷综合激情| 欧美精品一区二区三| 国产精品久久久久久久久免费丝袜| 伊人性伊人情综合网| 免费成人结看片| 99精品欧美一区二区三区小说 | 欧美一级免费观看| 精品日韩欧美在线| 亚洲色图一区二区| 精品无人区卡一卡二卡三乱码免费卡| 国产精品资源在线看| 欧美午夜在线观看| 久久亚洲捆绑美女| 午夜视黄欧洲亚洲| 99久久精品99国产精品| 欧美刺激脚交jootjob| 亚洲欧美激情小说另类| 麻豆成人91精品二区三区| 91麻豆国产精品久久| 欧美mv和日韩mv国产网站| 一区二区三区在线免费播放| 国产精品资源网| 欧美一区二区三区思思人| 亚洲另类春色校园小说| 韩国精品一区二区| 欧美日韩精品系列| 国产精品日产欧美久久久久| 久久精品国产亚洲高清剧情介绍| 一本色道久久综合精品竹菊| 国产日韩欧美不卡| 日本欧美肥老太交大片| 欧美亚洲国产bt| 中文字幕综合网| 国产成人综合亚洲91猫咪| 日韩三区在线观看| 亚洲成人免费在线观看| 91麻豆精品在线观看| 国产精品嫩草影院com| 国产精品一区二区不卡| 91精品免费在线观看| 亚洲小少妇裸体bbw| 91亚洲精品久久久蜜桃网站| 欧美国产成人精品| 国产成人在线色| 久久精品视频一区| 国产精品 欧美精品| 日韩欧美www| 麻豆久久久久久久| 欧美一级在线免费| 麻豆精品视频在线| 日韩亚洲欧美一区| 美女www一区二区| 日韩欧美亚洲国产另类| 日本特黄久久久高潮| 91麻豆精品国产| 理论电影国产精品| 精品久久人人做人人爱| 久久精品久久99精品久久|