原創|其它|編輯:郝浩|2012-12-26 14:55:15.000|閱讀 425 次
概述:TatukGIS Developer Kernel 是全面的GIS控件(也叫GIS開發工具包),本文慧都小編列舉了TatukGIS Developer Kernel在Delphi、C++ Builder、VC++、VB6、VB.NET、C#幾種開發環境下的部分代碼,可供對比。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
TatukGIS Developer Kernel (簡稱TatukGIS DK)是全面的GIS控件(也叫GIS開發工具包),它的性能和邏輯設計非常好,符合幾乎全部開放標準和許可,適合定制開發獨立式、嵌入式和客戶端-服務器的GIS應用程序。
TatukGIS Developer Kernel的開發平臺包括:Embarcadero Delphi/C++Builder VCL、Microsoft .NET for WinForms and WPF、Microsoft ActiveX/OCX、Microsoft Compact Framework (mobile解決方案)。四種開發平臺都有相似的框架、API和技術,比如.NET WinForms和Compact Framework應用程序的源代碼幾乎一樣,因此,對已經開發或正在開發中的GIS應用程序進行開發環境間的移植(如Visual Basic、VB.NET、Visual C++、C#、.NET、Compact Framework、Delphi、C++Builder等)就不是什么難事了。
下面慧都小編列舉了TatukGIS Developer Kernel在Delphi、C++ Builder、VC++、VB6、VB.NET、C#幾種開發環境下的部分代碼,可供對比。
Delphi - TatukGIS Developer Kernel VCL代碼示例
procedure TForm1.GISMouseMove(Sender: TObject; Shift: TShiftState; Y: Integer); var ptg : TGIS_Point ; shp : TGIS_Shape ; begin if Gis.IeEmpty then exit ; ptg := GIS.ScreenToMap( Point(x, y ) ); shp := TGIS_Shape( GIS.Locate( ptg, 5/GIS.Zoom ) ) ; if shp = nil then StatusBar.SimpleText := '' else StatusBar.SimpleText := shp.GetField('name'); end;
C++ Builder - TatukGIS Developer Kernel VCL代碼示例
void __fastcall TForm1::GISMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TGIS_Point ptg ; TGIS_Shape *shp ; if ( GIS->IsEmpty ) return; ptg = GIS->ScreenToMap( Point(X, Y) ); shp = (TGIS_Shape *)( GIS->Locate( ptg, 5/GIS->Zoom, TRUE ) ) ; if (shp == NULL) StatusBar->SimpleText = "" ; else StatusBar->SimpleText = shp->GetField("name") ; }
VisualBasic 6 - TatukGIS Developer Kernel ActiveX代碼示例
Private Sub GIS_OnMouseMove(translated As Boolean, ByVal shift As TatukGIS_DK.X_ShiftState, ByVal X As Long, ByVal Y As Long) Dim ptg As XGIS_Point Dim shp As XGIS_Shape If GIS.IeEmpty Then Exit Sub Set ptg = GIS.ScreenToMap(GisUtils.Point(X, Y)) Set shp = GIS.Locate(ptg, 5 / GIS.Zoom) If shp Is Nothing Then StatusBar.SimpleText = "" Else StatusBar.SimpleText = shp.GetField("name") End If End Sub
Visual C++ - TatukGIS Developer Kernel ActiveX MFC代碼示例
void CLocateDlg::OnOnMouseMove(BOOL FAR* translated, long button, long shift, long X, long Y) { IXGIS_Point ptg ; IXGIS_Shape shp ; if ( m_gis.get_IsEmpty() ) return ; ptg = m_gis.ScreenToMap( m_utils.Point( X, Y ) ) ; shp = m_gis.Locate( ptg, 5. / m_gis.get_Zoom() ) ; if ( shp.m_lpDispatch != NULL ) { var = shp.GetField( "NAME" ) ; str = var.bstrVal ; SetDlgItemText( IDC_LABEL, str ); } else { SetDlgItemText( IDC_LABEL, _T("") ); } }
VisualBasic.NET - TatukGIS Developer Kernel ActiveX代碼示例
Private Sub GIS_OnMouseMoveEvent(ByVal eventSender As System.Object, ByVal eventArgs As AxTatukGIS_DK.IXGIS_ViewerWndEvents_OnMouseMoveEvent) Handles GIS.OnMouseMove Dim ptg As TatukGIS_DK.IXGIS_Point Dim shp As TatukGIS_DK.IXGIS_Shape If GIS.IeEmpty() then Exit Sub ptg = GIS.ScreenToMap(GisUtils.Point(eventArgs.x, eventArgs.y)) shp = GIS.Locate(ptg, 5 / GIS.Zoom) If shp Is Nothing Then StatusBar1.Text = "" Else StatusBar1.Text = shp.GetField("name") End If End Sub
C# - TatukGIS Developer Kernel ActiveX代碼示例
private void GIS_OnMouseMove(object sender, AxTatukGIS_DK.IXGIS_ViewerWndEvents_OnMouseMoveEvent e) { TatukGIS_DK.XGIS_Point ptg; TatukGIS_DK.IXGIS_Shape shp; if ( GIS.IsEmpty ) return ; ptg = GIS.ScreenToMap( GisUtils.Point(e.x, e.y ) ); shp = ( TatukGIS_DK.IXGIS_Shape ) GIS.Locate( ptg, 5/GIS.Zoom , true); if( shp == null ) statusBar1.Text = ""; else statusBar1.Text = ( string ) shp.GetField("name"); }
C# - TatukGIS Developer Kernel .NET代碼示例
private void GIS_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { TGIS_Point ptg ; TGIS_Shape shp ; if ( GIS.IsEmpty ) return ; ptg = GIS.ScreenToMap( new Point( e.X, e.Y ) ); shp = (TGIS_Shape)GIS.Locate( ptg, 5/GIS.Zoom ) ; if ( shp == null ) statusBar1.Text = "" ; else statusBar1.Text = shp.GetField( "name" ).ToString(); }
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網