2010年6月28日 星期一

MapGuide_複合Tooltip

當需要顯示資訊在圖面上時,最常讓人想到的方式有三種,第一種是依照屬性給定不同的顏色或類型,第二種是直接於圖面上顯示標註,第三種就是當滑鼠移過去時跳出提示的Tooltip。
第一種,設定Theme

第二種,設定Label

第三種,設定Tooltip


在MapGuide裡面,這三種方式都可以利用MapGuide Studio內進行設定,但是Tooltip的需求往往不只有單一屬性的顯示,而是像上圖一樣,必須設定相當多欄位的顯示,這時候可能就會產生一些疑惑,不知道該怎麼樣才能夠設定多欄位的顯示。

所以,要如何設定一欄以上的顯示呢?方式是利用多欄顯示函式"Concat"的組合,例如希望顯示兩個欄位,且前面都有欄位名稱說明,並要有換行顯示,那我們可以利用簡單的組合,來達成這個效果。

從需求可以得知,我們必須組合五個項目,分別是:欄位名稱1、欄位屬性1、換行符號、欄位名稱2、欄位屬性2,所以我們必須利用四個Concat來達到這個目的,詳細寫法可以參考上圖對話視窗內的語法,就可以獲得下圖的顯示結果。當然,如果需要更多欄位的屬性顯示於Tooltip上,就可以依照這樣的方式來組合所需要顯示的字串。

如果有接觸過網頁程式的人,看到換行符號使用"/n",應該會發現這個Tooltip其實就是一個html的網頁,動態產生在MapGuide圖台上,所以我們可以簡單的做出一些變化。比如說,我們有一個各個部落客分佈的台灣地圖,希望在移到位置的時候直接顯示該部落客網頁的Tooltip,就可以直接用一個iframe來接這個網址,做出以下的效果。

證明Tooltip可以接收網頁以後,我們就可以嘗試做更有用的變化,例如有些專案會有統計圖表的需求,可能會使用一些二進位的串流方式(類似下圖)來承接在img的標籤裏面,這時候我們就可以利用上述連接網址的方式,將統計圖表承接下來於地圖顯示。

可惜的是,還找不到方式可以將自訂的資訊直接種在地圖上面,不知道後面的版本會不會支援?

2 則留言:

匿名 提到...

要自己寫吧~我看過建一個動態LAYER的方式打出圖釘點
也可以把資訊弄上去

ola的家 提到...

目前如果要加上自訂的內容,的確就是以動態新增臨時圖層的方式標上去,只是不知道之後在MapGuide Studio會不會有更強大的工具來達到。譬如說每個點位都可以秀統計圖之類的東西。

張貼留言