1. 程式人生 > >如何在FastReport VCL 6中使用交互式地圖

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

efi 幾何 禁用 之一 網絡 顏色 地理信息 想要 常用

隨著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軌道。我們可以用鼠標導航地圖。您可以使用鼠標滾輪進行放大和縮小。右上角是過濾單元。在它裏面,如果它們幹涉,你可以關閉圖層。例如,禁用最後一層——軌道:

技術分享圖片

就這樣。我同意,按層添加地圖有一些困難。您必須手動添加必要的標簽到圖層。但是,這種結果要比在一個圖層中添加所有標簽要好得多。

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