TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序

这篇具有很好参考价值的文章主要介绍了TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述:TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。本篇文章主要介绍用DK11为FMX创建一个应用程序,现在就跟着小编来了解一下吧~

# 31款JAVA开发必备控件和工具 # 界面/文档管理/报表/IDE等4000款产品火热销售中 >>

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。其功能强大,价格适中,个人、公司及政府等客户都需喜欢使用。感兴趣的朋友可以下载来用一下哦^-^

点击下载TatukGIS Developer Kernel免费版

本篇文章主要介绍用DK11为FMX创建一个应用程序,现在就跟着小编来了解一下吧~

创建新项目

创建多设备应用程序。然后选择空白应用程序。

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序,前端,python,java

设计形式

打开“设计”选项卡并在空白表单上添加控件。从工具选项板中选择控件。

工具选项板包含设计表单的所有组件。专用TatukGIS组件包含在“TatukGIS”类别中。

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序,前端,python,java

对象检查器包含与指定对象关联的属性和事件。在本节中,您可以设置:标题、名称、对齐、位置、大小等。

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序,前端,python,java

1、添加TStatusBar并将TLabel放在上面。更改lblPosition的标签名称,并将其文本设置为“Position:”。

2、添加TGIS_ViewerWND。将其名称更改为“GIS”。在对象检查器中,将“对齐”设置为“客户端”。

3、添加TToolBar,将对齐设置为“顶部”。

4、向TToolBar添加四个按钮(TButton):

  • 名称:btnOpen,文本:打开

  • 名称:btnSelect,文本:选择

  • 名称:btnDrag,文本:拖动

  • 名称:btnZoom,文本:缩放

设置每个按钮对齐到“左边”。

5、添加TGIS_ControlLegend。在对象检查器中将GIS_Viewer设置为“GIS”并将“对齐”设置为“左”。双击图例中的图层调用“可视化属性”对话框。

6、将TGIS_ControlScale和TGIS_ControlNorthArrow添加到GIS(在Structure窗口中,您可以拖放组件以设置层次结构)。在对象检查器中,将“GIS”指定为GIS_Viewer。

最终结果应如下所示:

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序,前端,python,java

添加代码

设计表单后,转到“代码”选项卡。

在实现部分的{$ R * .fmx}下方添加“使用System.IOUtils,GisLicense,GisTypes,GisAllLayers,GisUtils,GisLayerVector”。

  • System.IOUtils 

    返回用户的主路径或应用程序的可写临时目录或存储,如TPath.GetDocumentsPath。

  • GisLicense 

    包含有关TatukGIS许可证的信息。

  • Mistypes 

    常见的常量和类型,如TGIS_Point。经常被客户端代码频繁使用并包含它几乎是一个要求。

  • GisAllLayers 

    允许使用TatukGIS Samples数据文件夹中的图层。

  • GisUtils 

    GisPoint()等常用方法包含在TGIS_Utils类方法中。经常被客户端代码使用并包含它几乎是一个要求。

GisLayerVector - 包含类似TGIS_Shape、TGIS_LayerVector的类型。

附加事件

接下来将事件附加到组件。要附加事件处理程序,请在“对象检查器”中选择“事件”选项卡,然后双击该事件。如果要调用“OnClick”事件,也可以双击组件。在此示例中,我们使用以下事件:

  • btnaopenclick 

procedure TForm2.btnOpenClick(Sender: TObject);
begin
  GIS.RotationAngle := 0 ;
  {$IFDEF WIN32}
    GIS.Open( TGIS_Utils.GisSamplesDataDir + '/world/worldDCW/world.shp');
  {$ELSEIF Defined(MACOS) and Defined(IOS)}
    GIS.Open( TPath.GetDocumentsPath + PathDelim + 'world.shp')  ;
  {$ELSE ANDROID}
    GIS.Open( TPath.GetDocumentsPath + PathDelim + 'ne_10m_admin_0_countries.shp')  ;
  {$ENDIF}
end;
  • btnSelectClick

procedure TForm2.btnSelectClick(Sender: TObject);
begin
  GIS.Mode := TGIS_ViewerMode.Select ;
end;
  • btnDragClick 

procedure TForm2.btnDragClick(Sender: TObject);
begin
  GIS.Mode := TGIS_ViewerMode.Drag ;
  • btnZoomClick 

procedure TForm2.btnZoomClick(Sender: TObject);
begin
  GIS.Mode := TGIS_ViewerMode.Zoom ;
end;
  • GISTapSimpleEvent 

    点击简单事件在所选形状上闪烁,并在状态栏中显示光标的位置。要调用该事件,请使用以下代码:

 procedure TForm2.GISTapSimpleEvent(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
var
  ptg : TGIS_Point ;
  shp : TGIS_Shape ;
begin
  if GIS.IsEmpty then
    exit ;
  if GIS.Mode <> TGIS_ViewerMode.Select then
    exit ;
  ptg := GIS.ScreenToMap( Point(Round(X), Round(Y)) ) ;
  shp := TGIS_Shape( GIS.Locate( ptg, 5 / GIS.Zoom ) ) ;
  if not Assigned( shp ) then exit ;
  shp.Flash ;
lblPosition.Text := Format( 'x: %.4f, y: %.4f ', [ptg.X,  ptg.Y] ) ;
end;

将文件添加到部署

在部署中添加文件和设置路径。

使用“项目/部署”菜单项,选择Android和iOS设备平台,并为每个平台添加要与应用程序一起部署的文件,并设置“远程路径”列值:

  • 设置Android的远程路径:assets \ internal \ 

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序,前端,python,java

  • 设置iOS的远程路径:StartUp \ Documents \ 

如果要同时为几个文件设置远程路径,请单击图标DK11

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序,前端,python,java

 。

测试

编译并运行项目。

源代码

最终代码应如下所示:文章来源地址https://www.toymoban.com/news/detail-724530.html

unit Unit2;
 
interface
 
uses
 
System.SysUtils,
System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types,
FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
FMX.GisControlNorthArrow, FMX.GisControlScale, FMX.Layouts, FMX.TreeView,
FMX.GisControlLegend, GisTypesUI, FMX.GisViewerWnd, FMX.Controls.Presentation ;
 
type
  TForm2 = class(TForm)
    ToolBar1: TToolBar;
    statusBar: TStatusBar;
    GIS: TGIS_ViewerWnd;
    GIS_ControlLegend1: TGIS_ControlLegend;
    GIS_ControlScale1: TGIS_ControlScale;
    GIS_ControlNorthArrow1: TGIS_ControlNorthArrow;
    btnOpen: TButton;
    btnSelect: TButton;
    btnDrag: TButton;
    btnZoom: TButton;
    lblPosition: TLabel;
    procedure GISTapSimpleEvent(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Single);
    procedure btnOpenClick(Sender: TObject);
    procedure btnSelectClick(Sender: TObject);
    procedure btnDragClick(Sender: TObject);
    procedure btnZoomClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
 
{$R *.fmx}
 
uses System.IOUtils, GisLicense, GisTypes, GisAllLayers, GisUtils, GisLayerVector;
 
procedure TForm2.btnDragClick(Sender: TObject);
begin
  GIS.Mode := TGIS_ViewerMode.Drag ;
end;
 
procedure TForm2.btnOpenClick(Sender: TObject);
begin
  GIS.RotationAngle := 0 ;
  {$IFDEF WIN32}
    GIS.Open( TGIS_Utils.GisSamplesDataDir + '/world/worldDCW/world.shp' );
  {$ELSEIF Defined(MACOS) and Defined(IOS)}
    GIS.Open( TPath.GetDocumentsPath + PathDelim + 'world.shp' )  ;
  {$ELSE ANDROID}
  GIS.Open( TPath.GetDocumentsPath + PathDelim + 'ne_10m_admin_0_countries.shp' )  ;
  {$ENDIF}
end;
 
procedure TForm2.btnSelectClick(Sender: TObject);
begin
  GIS.Mode := TGIS_ViewerMode.Select ;
end;
 
procedure TForm2.btnZoomClick(Sender: TObject);
begin
  GIS.Mode := TGIS_ViewerMode.Zoom ;
end;
 
procedure TForm2.GISTapSimpleEvent(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
var
  ptg : TGIS_Point ;
  shp : TGIS_Shape ;
begin
  if GIS.IsEmpty then
    exit ;
  if GIS.Mode <> TGIS_ViewerMode.Select then
    exit ;
  ptg := GIS.ScreenToMap( Point(Round(X), Round(Y) ) ) ;
  shp := TGIS_Shape( GIS.Locate( ptg, 5/GIS.Zoom ) ) ;
 
  if not Assigned( shp ) then exit ;
  shp.Flash ;
  lblPosition.Text := Format( 'x: %.4f, y: %.4f', [ptg.X, ptg.Y] ) ;
end;
 
end.

到了这里,关于TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 简介:在这篇教程中,我们将使用React.js框架创建一个简单的聊天机器人的前端界面,并利用Dialogflo

    作者:禅与计算机程序设计艺术 介绍及动机 聊天机器人(Chatbot)一直是互联网领域中的热门话题。而很多聊天机器人的功能都依赖于人工智能(AI)技术。越来越多的企业希望拥有自己的聊天机器人系统,从而提升自己的竞争力。为此,业界也出现了很多基于开源技术或云

    2024年02月06日
    浏览(59)
  • PICO Developer Center 创建和调试 ADB 命令

    PICO 开发者中心概览 ADB 是一个轻量级的 Android 调试桥(Android Debug Bridge,简称 ADB),用于与 Android 设备进行通信和调试。ADB提供了许多有用的功能,使开发人员能够轻松地管理和调试设备上的应用程序。 你可以使用 PDC 工具来调试系统默认命令或创建并调试自定义命令。 参考《

    2024年01月21日
    浏览(38)
  • 如何为 Flutter 应用程序创建环境变量

    我们为什么需要环境变量? 主要用于存储高级机密数据,如果泄露可能会危及您产品的安全性。这些变量本地存储在每个用户的本地系统中,不应该签入存储库。每个用户都有这些变量的副本。 在根项目中创建一个名为 .env 的文件夹(文件夹名称由您选择) 在 .gitignore 中添

    2024年02月11日
    浏览(54)
  • HarmonyOS Developer——鸿蒙【构建第一个JS应用(FA模型)】

    创建JS工程 JS工程目录结构 构建第一个页面 构建第二个页面 实现页面间的跳转 使用真机运行应用 说明 为确保运行效果,本文以使用 DevEco Studio 3.1 Release 版本为例,点击此处获取下载链接。 若首次打开 DevEco Studio ,请点击 Create Project 创建工程。如果已经打开了一个工程,请

    2024年02月04日
    浏览(63)
  • 如何为开放平台设计一个安全好用的OpenApi

    为了确保软件接口的标准化和规范化,实现业务模块的重用性和灵活性,并提高接口的易用性和安全性,OpenAPI规范应运而生。这一规范通过制定统一的接口协议,规定了接口的格式、参数、响应和使用方法等内容,从而提高了接口的可维护性和可扩展性。同时,为了也需要考

    2024年02月03日
    浏览(45)
  • PLSQL developer下载、安装、详细教程

    1.简单认识 PL/SQL developer PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语

    2024年02月13日
    浏览(40)
  • idea如何为一个项目配置多个远程 Git 仓库

    有时候自己从开源项目中垃出来的项目需要同步推送到 github 和 gitlab 两个仓库地址,那么如何实现呢 添加多个远程仓库地址 然后在这里添加多个远程仓库地址 在提交代码的地方想提交哪个远程仓库自己去选择

    2024年02月12日
    浏览(50)
  • 创建一个vite+vue3项目详细教程

    一、首先打开本地磁盘,找到一个存放路径  这里 我选择将新建项目放置在E盘的demo-vitedemo路径下 二、在该路径处打开命令行cmd  三、在打开的命令行中输入创建命令  注意在搭建之前要安装node.js环境依赖,并且确认你的版本 Vite 需要Node.js版本 14.18+,16+。然而,有些模板需

    2024年02月15日
    浏览(54)
  • 【APITable】教程:创建并运行一个自建小程序

    1.进入APITable,在想要创建小程序的看板页面点击右上角的【小程序】,进入小程序编辑页面。    2.创建一个新的小程序区。  点击【+ 添加小程序】  点击创建小程序,选择模板,输入名字。    3.确定后进入小程序部署引导页面。  4.打开Xshell 7,我这里的APITable是部署在服

    2024年02月11日
    浏览(34)
  • 2023最新版IDEA创建一个SpringBoot项目 (详细教程)

    springboot是我们java开发中最流行的框架之一,下面我们看看如何在idea中创建一个springboot项目。 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的

    2024年02月04日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包