如何在FastReport VCL 6中使用交互式地图

随着Google地图的出现,交互式地图变得非常流行。它们允许您导航地图,放大和缩小以及其他许多功能。随着FastReport VCL 6的发布,这些地图可以嵌入到报告中。为此,您必须以两种可用格式之一获取地图,并使用地图对象将其插入到报告中。

您可以使用.shp和.osm格式的地图,以及.gpx格式的gps轨道。

.shp - ShapeFile格式。这是存储矢量地理信息数据的特殊格式。它由美国公司ESRI在20世纪90年代开发。目前,它是地理信息系统中最常用的格式。

其实ShapeFile不是一个文件。除.shp文件外,该集还包含.shx和.dbf。

第一个.shp是数字的几何描述。.shx文件有一个位置索引来将这些形状相互绑定。.dbf文件包含有关.shp文件中形状的信息。

由于这是商业产品,有些地图可能会收费。

.osm格式是OpenStreetMap。这是基于xml的地理数据存储格式。从标题来看,这显然是一个开放的项目,由志愿者完全支持。这个网络项目是全球的全球地图。志愿者们不断用新的地理定位数据,航空照片补充地图。该项目已经非常受欢迎,参与人数也很多。因此,地图的节处于足够高的水平。osm中的所有地图,如同shp一样,以二维格式显示,不显示海拔高度以上的高度。

由于该项目是免费的,地图也是免费的。

首先我们需要一张地图。Map对象支持三种文件格式:.shp,.osm,.gpx。

前两个代表矢量地图,后者是地图的一组路线和轨迹。您可以使用其中一种可用格式下载地图,然后在新的GPS数据层中下载地图。

在考虑Map对象之前,让我们确定在哪里获取这些地图。您可以在互联网上下载现成的地图。许多网站都提供两种格式的付费和免费地图。

还有另一种方法可以使用地图获取文件。它适用于osm格式。有一项特殊服务——全球互动地图(www.openstreetmap.org)。该服务允许您选择所需区域并将其导出到文件。但是,输出区域的大小有限制。通常情况下,这个区域位于一个定居点,或者它的一部分。我们来看看它的样子:

通过点击“Export”按钮,浏览器下载osm文件。因此,如果您需要在地图上显示一个小区域,此服务将非常有帮助。

如果您只是想像我一样尝试,那么您可以从FastReport VCL 6交付中完成PortoSantoTrack.osm和PortoSantoTrack.gpx的完整文件。

创建一个报告。并添加一个地图对象到页面。顺便说一下,除了“Data”之外,您可以将此对象放置在任何band中。添加一个对象后,我们会立即看到它的编辑器。

目前,该对象是空的。我们只看到:一般设置、色阶、尺寸范围。

地图由图层组成。您可以在一个图层中显示整个地图,也可以将其分成几个图层。

将地图分成若干图层的情况下,可以分别调整每个图层——颜色、字体、线条粗细等。借助不同的图层设置,例如,我们可以用蓝色绘制河流,用红色绘制道路。地图对象由XML(OSM)文件中的标签描述。在每一层中,我们选择我们需要用于显示的标签(对象)。然后,在图层设置中,设置参数(颜色、字体、厚度等)。所以,分层地图允许我们根据需要自定义显示。

一个图层中显示地图的情况下,这些设置将应用于所有地图对象,并且您无法调整其各个元素的显示。

这里有必要说,对于.shp格式的地图,只有一层是可见的。

要添加地图,请单击Add ... 按钮:

出现Add Layer(添加图层)窗口。选择一个带有地图或GPS轨道的文件。您可以使用适当的选项将文件包含在报告中。下面我们看到添加图层的另外两个选项:

  • 一个包含应用程序数据的空白图层——用于构建地图的数据不仅可以位于文件中,还可以位于数据库中。因此,创建一个空白层并配置到数据源的连接;
  • 一个空的交互层——据我所知,它还没有实现功能。可以使用基元手动创建图层。

按下OK按钮。如果我们加载osm文件,我们将提供选择标签的窗口:

现在,请注意!如果您点击Cancel取消,该图层的所有标签都会自动选中。但我们正走向另一条路。

使用箭头按钮将标签移动到右侧。如果我们想要在多个图层中显示地图,请选择当前图层所需的标签。例如,在第一层中,我拖动除公路和水路以外的所有标签:

下面的标签有一个过滤器。

按下OK按钮,获得几乎整个地图:

在“Appearance”选项卡上第1层的设置中,将“Point Size”设置为0,以便它们不会发生干扰:

关于图层设置的几句话。设置显示在五个选项卡上:

  • Data - 用于从数据库使用地理数据的变体;
  • Appearance - 设置线条的外观;
  • Color Ranges - 用于在地图上自动绘制对象的调色板设置;
  • Size Ranges - 尺寸表或尺寸网格的设置;
  • Labels - 标签设置。

与以前一样添加一层。这次我们只会选择高速公路标签。在外观选项卡上,将边框颜色更改为栗色。现在道路有栗色。

添加第三层。这一次,请选择水路标签。将水对象的边框颜色更改为蓝色。并将边框宽度设置为2。

在地图设置中,设置填充。一些柔和的颜色。

没有足够的标签。选择第一层。在最后一个标签选项卡上,选择名称的标签种类。对于标签列——名称值。

我们添加了地图,现在让我们来看看这张地图的gps轨道的样子。添加一个图层并选择扩展名为.gpx的文件。

在Appearance选项卡上,为边框颜色选择鲜艳的颜色:

地图已准备就绪。运行报告:

立即引人注目的是我们的亮粉色的gsp轨道。我们可以用鼠标导航地图。您可以使用鼠标滚轮进行放大和缩小。右上角是过滤单元。在它里面,如果它们干涉,你可以关闭图层。例如,禁用最后一层——轨道:

就这样。我同意,按层添加地图有一些困难。您必须手动添加必要的标签到图层。但是,这种结果要比在一个图层中添加所有标签要好得多。

原文地址:https://www.cnblogs.com/wxchuachua/p/9805373.html

时间: 2024-08-02 22:10:04

如何在FastReport VCL 6中使用交互式地图的相关文章

如何在FastReport VCL 6中使用Guides引导线

[下载FastReport VCL最新版本] 每个报表设计人员都会遇到需要在同一级别安排控件或一次拉伸一组元素的情况.有必要每个成员彼此调整.这需要时间,有时甚至是很花精力.在之前的FR VCL版本中,我们提供了一个网格来帮助定位对象,以及有助于将对象与其他对象平行展开的线条. 在Fast Report VCL 6中,还有另一个用于定位对象的工具--Guide line.它允许您在网格中添加任意的垂直和水平线,这有助于平行对齐对象.但它们的主要特征是对象被附加到行的边界.通过移动附加的线条,您可

如何在FastReport.Net中生成标签类型报表

[下载FastReport.Net最新版本] 文本将介绍如何在FastReport.Net中生成标签类型报表,详细步骤如下所示: Add New Item -> Label Wizard 标签可以是bar codes(条形码),business cards(名片),addresses(地址),transport waybills(运单)等.它们可以用自粘纸或普通纸印刷.使用标签的内置FastReport模板或创建自己的模板.标签模板是一个报表模板,其中包含指定的页面大小和打印页面上的标签数量.

报表生成控件FastReport VCL

FastReport VCL是一款Delphi和C++Builder平台下,功能强大的报表生成控件,它能使用户的应用程序快速有效地产生报表控件,提供了创建报表所需的所有工 具,包括报表引擎,报表设计工具,预览器,对话框设计工具,以及Pascal-like 宏解释程序.FastReport VCL工作在Borland Delphi 2-7及Borland C++Builder 1-6环境下.它是用对象语言Pascal来写的,并用到了Borland VCL库. FastReport VCL在线事例

如何在 ASP.NET MVC 中集成 AngularJS(3)

今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表:一个运行在调试模式的应用程序下和一个运行在发布模式的应用程序下.在调试模式下,JavaScript 文件在未使用压缩功能的情况下会被下载.如果想要调试并在 JavaScript 控制器中设置断点,这是必须的.事实上,路由表的产生版本也出现了一些挑战,由于产生路由代码使用的是 JavaScript

如何使用FastReport VCL 6将报表保存到云服务

通常保存下载报表有两种方式:一种是在本地驱动器上下载并保存报表:另一种方法是客户端服务器应用程序,报表将存储在远程服务器上.但是,如果无法部署远程服务器,却希望在共享资源上存储报表,该怎么办?用户可以手动将报表转移到Web存储库.FastReport VCL 6为用户提供了一种更方便的方式 - 在云服务中存储报表.云服务因其可靠性和数据安全性较高而得以广泛运用.几乎每个现代云存储都提供OAuth2身份验证,这极大地简化了客户端应用程序的数据访问,用户可以方便,快捷,安全的存储数据. 下载Fast

node.js中的交互式运行环境-REPL

<Node.js权威指南>第2章Node.js中的交互式运行环境--REPL 开发者可以在该环境中很方便地输入各种JavaScript表达式并观察表达式的运行结果. 在学习Node.js框架的过程中,通过该运行环境的使用,我们可以很方便地了解Node.js中定义的各种对象所拥有的各种属性及方法.本节为大家介绍在REPL运行环境中操作变量 2.2 在REPL运行环境中操作变量 在REPL运行环境中,可以使用var关键字来定义一个变量并为其赋值,但是在输入了对其赋值进行的表达式后,该表达式的执行结

如何在Ubuntu 14.04中安装最新版Eclipse

想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Eclipse 的官方最新版本为 Eclipse Kepler (4.3.2),我们可以使用如下步骤在 Ubuntu 14.04 或其它 Ubuntu 版本中进行快速安装. 1.安装OpenJDK Java 7 如果你的系统中没有安装 Java,我们需要按如下步骤事先安装好 OpenJDK Java 7

如何在ASP.NET Core中应用Entity Framework

注:本文提到的代码示例下载地址> How to using Entity Framework DB first in ASP.NET Core 如何在ASP.NET Core中应用Entity Framework 首先为大家提醒一点,.NET Core和经典.NET Framework的Library是不通用的,包括Entity Framework! 哪怎么办? 别急,微软为.NET Core发布了.NET Core版本的Entity Framework,具体配置方法与经典.NET Framew

如何在ASP.NET Core中实现一个基础的身份认证

注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ASP.NET终于可以跨平台了,但是不是我们常用的ASP.NET, 而是叫一个ASP.NET Core的新平台,他可以跨Windows, Linux, OS X等平台来部署你的web应用程序,你可以理解为,这个框架就是ASP.NET的下一个版本,相对于传统ASP.NET程序,它还是有一些不同的地方的,比