如何在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轨道。我们可以用鼠标导航地图。您可以使用鼠标滚轮进行放大和缩小。右上角是过滤单元。在它里面,如果它们干涉,你可以关闭图层。例如,禁用最后一层——轨道:
就这样。我同意,按层添加地图有一些困难。您必须手动添加必要的标签到图层。但是,这种结果要比在一个图层中添加所有标签要好得多。