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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mapx.~pas

?? mapx+Delephi程序 以前做的一個MapX程序框架,實現(xiàn)了很多mapX功能,并且使用起來很方便,可在此基礎上繼續(xù)開發(fā). 現(xiàn)在本人不基本不搞mapx,搞ArcEngine了,現(xiàn)代碼全部貢獻了
?? ~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('請確認該圖層處于可視狀態(tài)!', mtInformation, [mbOk], 0)
    else
      MessageDlg('請確認該圖層處于可選擇狀態(tài)!', 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一区二区三区免费野_久草精品视频
在线观看一区不卡| 久久久久99精品一区| 亚洲色图一区二区三区| 国产麻豆精品在线观看| 欧美日韩一级大片网址| 一区二区三区日韩精品| 91老司机福利 在线| 国产精品久久免费看| 激情深爱一区二区| 精品欧美乱码久久久久久1区2区| 男人的天堂久久精品| 日韩欧美一级在线播放| 亚洲一区二区三区自拍| 欧美曰成人黄网| 亚洲韩国一区二区三区| 欧美区在线观看| 日韩精品成人一区二区三区| 欧美日高清视频| 另类中文字幕网| 久久九九久精品国产免费直播| 国产米奇在线777精品观看| 欧美一区二区三区色| 激情另类小说区图片区视频区| 精品国产免费久久| 成人小视频在线| 中文字幕av一区二区三区免费看| 不卡av免费在线观看| 亚洲精品菠萝久久久久久久| 成人黄色片在线观看| 亚洲免费毛片网站| 欧美精品视频www在线观看| 日韩影院免费视频| 国产日韩精品一区| 大胆亚洲人体视频| 亚洲在线视频一区| 欧美日韩一本到| 精品亚洲porn| 1024精品合集| 日韩视频在线一区二区| 国产aⅴ综合色| 亚洲精品免费电影| 日韩欧美在线综合网| 粉嫩av亚洲一区二区图片| 亚洲成人免费观看| 欧美一区二区三区思思人| 粉嫩av亚洲一区二区图片| 亚洲高清免费观看高清完整版在线观看| 欧美一区二区三区免费视频| 看电视剧不卡顿的网站| 中文字幕在线不卡国产视频| 欧美疯狂做受xxxx富婆| 成人一级视频在线观看| 日韩一区在线看| 精品欧美乱码久久久久久1区2区| 欧美一区二区三区四区视频 | 日本道在线观看一区二区| 午夜伦欧美伦电影理论片| 久久久精品国产99久久精品芒果| 日本韩国欧美一区二区三区| 国产激情91久久精品导航| 亚洲香肠在线观看| 欧美一卡二卡在线| 色吊一区二区三区| 国产精品自拍av| 日韩高清一区在线| 亚洲欧美色一区| 久久精品欧美一区二区三区麻豆| 欧美色成人综合| gogo大胆日本视频一区| 国产一区二区精品久久99| 亚洲精品高清在线观看| 中文字幕一区在线观看| 欧美一区二区精品| 欧美日韩精品一区二区天天拍小说 | 亚洲精品中文字幕在线观看| 久久女同精品一区二区| 日韩亚洲欧美成人一区| 欧美性猛交一区二区三区精品| 久久成人久久爱| 日本欧美一区二区| 亚洲日本va在线观看| 国产欧美一区二区精品婷婷| 日韩欧美国产一二三区| 欧美电影一区二区三区| 91成人免费电影| ww亚洲ww在线观看国产| 日韩三区在线观看| 91精品国产综合久久国产大片| 欧美中文字幕不卡| 日本高清不卡视频| 欧美在线视频你懂得| 一本大道综合伊人精品热热 | 亚洲欧美偷拍三级| 一区二区三区国产| 午夜精品福利在线| 韩国欧美国产一区| 成人黄色网址在线观看| 色老汉一区二区三区| 欧美美女网站色| 久久日韩精品一区二区五区| 亚洲国产高清aⅴ视频| 亚洲精品老司机| 免费成人结看片| 成人激情电影免费在线观看| 欧美无砖砖区免费| www国产精品av| 亚洲欧美电影一区二区| 日本不卡123| 不卡一区二区三区四区| 欧美理论电影在线| 久久久欧美精品sm网站| 亚洲人成人一区二区在线观看| 无吗不卡中文字幕| 国产精品一区不卡| 欧美日韩在线一区二区| 久久这里都是精品| 性欧美疯狂xxxxbbbb| 国产精品一级二级三级| 欧美在线制服丝袜| 久久久久国产精品厨房| 亚洲自拍欧美精品| 大尺度一区二区| 91精品国产全国免费观看| 中文字幕av一区二区三区免费看 | 国产成人自拍在线| 欧美日韩一区二区三区视频| 久久精品免视看| 日韩精品亚洲专区| 91同城在线观看| 久久亚洲欧美国产精品乐播| 亚洲444eee在线观看| 成人黄色国产精品网站大全在线免费观看| 欧美特级限制片免费在线观看| 久久精品亚洲精品国产欧美kt∨| 天堂成人国产精品一区| 成人免费视频一区| 精品久久久久久久久久久久包黑料 | 91高清视频免费看| 国产日韩欧美一区二区三区综合| 丝袜诱惑制服诱惑色一区在线观看 | 久久精品视频免费| 麻豆精品久久久| 在线观看亚洲一区| 国产精品系列在线| 国产精品2024| 欧美精品一区二区三区久久久| 亚洲电影在线免费观看| 色先锋资源久久综合| 中文字幕免费观看一区| 精品一二三四区| 日韩欧美一卡二卡| 日韩福利电影在线观看| 欧美日韩一区二区三区在线| 综合电影一区二区三区 | 免费高清成人在线| 欧美日韩一级二级三级| 亚洲综合视频在线观看| thepron国产精品| 国产精品电影院| 成人久久18免费网站麻豆 | 91精品国产一区二区| 五月激情综合网| 欧美久久免费观看| 日韩高清中文字幕一区| 欧美日本韩国一区| 天堂在线亚洲视频| 日韩三级免费观看| 美女国产一区二区三区| 日韩亚洲欧美综合| 免费观看成人av| 久久亚洲二区三区| 国产91富婆露脸刺激对白| 国产精品久久久久永久免费观看| 成人国产精品免费网站| 亚洲日本在线天堂| 欧美系列亚洲系列| 青椒成人免费视频| 久久综合色婷婷| 成人午夜在线免费| 亚洲精品高清视频在线观看| 欧美私人免费视频| 麻豆视频一区二区| 国产清纯白嫩初高生在线观看91| 成人avav影音| 亚洲另类中文字| 9191国产精品| 国产一区二区中文字幕| 国产精品视频yy9299一区| 色偷偷成人一区二区三区91| 亚洲福利视频导航| 精品国产免费视频| 波多野结衣中文字幕一区二区三区 | 亚洲成人1区2区| 精品卡一卡二卡三卡四在线| 丁香婷婷综合激情五月色| 亚洲精品中文在线影院| 日韩亚洲欧美一区二区三区| 国产成人在线电影| 亚洲成人久久影院| 久久久亚洲欧洲日产国码αv|