MapGuide中怎麼實現“指哪兒打哪兒”?ToolTip幫你忙~

來源:互聯網
上載者:User

一個WebGIS平台,最基本的功能就是根據地圖查詢要素的詳細屬性資訊。MapGuide作為一個WebGIS平台當然也不例外。在MapGuide的基本網頁布局Ajax Viewer中,點擊地圖上的地物,屬性資訊即可顯示在Properties視窗中,靈活網頁布局也同樣提供的屬性顯示視窗Widget。點一下雖然比較不費力,當有沒有更省力的辦法呢?其實我有腱鞘炎,一下滑鼠都不想點,要是滑鼠放那兒停一會兒,資訊自己蹦出來就好了~~  說我懶也就罷了,其實還有更重要的,MapGuide內建的屬性顯示功能只能顯示資料來源中的欄位資訊,雖然可以通過資料來源的Join功能串連到後台其他資料庫等資源,但是要能給我個ID自己控制多好,有了這個地物ID我想幹啥幹啥,那有多爽?! 這在MapGuide裡能行嗎?

答案是,當然!我發現MapGuide的一個很大的好處就是開放性,不但能直接存取各種資料格式,還提供了開放式的定製方式。上面的問題我們用ToolTip功能就能搞定了。下面我們做一個簡單的例子,來實現一個常見的任務,即滑鼠指向某個地物時,彈出浮動視窗顯示地物的詳細資料。這些詳細資料可以是從資料來源中擷取,也可以從其他外部資料源中如資料庫中擷取。

 

在MapGuide Studio中可以設定圖層的ToolTip,即當滑鼠移至上方在地物上方時彈出氣泡式浮動視窗顯示相關資訊。

ToolTip的設定可以通過Expression Builder進行設定。通過Expression Build不但可以使用很多文本處理函數、數學處理函數等,還可以使用Geomtric相關函數,而且可以方便的擷取資料來源中的相關資訊。中顯示的是資料來源中的相關欄位,如果我們需要在ToolTip中顯示資料來源中已有欄位的資訊,通過Expression Build即可很方便的完成。

一般資料來源中都會有FeatureID這樣的欄位,當資料來源中可能不能包含其他的資訊,更詳細的資訊可以儲存到外部資料庫中,甚至需要由FeatureID串連到其他ERP、CRM等外部系統中擷取。這時我們只需取得featureID並串連到自訂頁面中,在該自訂頁面中完成資料集處理工作即可。

ToolTip內容可以包含任何HTML標籤,我們把一個IFranme嵌入到ToolTip中即可把資訊頁面整合進來了。

 

concat('Parcel\nName: ', RNAME, '\nAddress: ', RBILAD,'\nfeatid:', Autogenerated_SDF_ID ,'\n<iframe width=500 height=500 src= http://localhost/WebcastDemo/MapInforrmation.aspx?MyFeatID=', Autogenerated_SDF_ID ,'></iframe>')

 

這個例子把ID資訊傳遞到MapInforrmation.aspx,在這個頁面中進行相關處理。在這個頁面中接受到要素ID就可以通過ADO.NET等通用資料庫技術訪問資料庫,或者訪問其他CRM、ERP等外部資料了。

在Flexible WebLayout中通用適用。

 

在此只是拋磚引玉,只要大家有新想法,其實MapGuide可以很好的和您的現有系統融合,增加更生動豐富的表現形式和功能。嗯,是不是有種世界盡在掌握的感覺? :)

 

延伸閱讀:

MapGuide/Map 3D 2011中Expression Builder中Concat的改進

MapGuide/Map 3D 2011中的Expression Builder是個很有用的工具,比如我們經常需要為圖層設定ToolTip,URL串連,或者構造過濾字串,這時都可以用可視化的Expression Builder來產生運算式。 點擊右邊的按鈕即可啟用Expression...

 

給MapGuide Open Source的ToolTip加點料

Studio中圖層編輯器中,點"Tooltip displayed for Feature"後面的按鈕調出...關係,你可以在tooltip裡面任意加入你需要的html標籤了,是不是很酷? J...

 

利用MapGuide Open Source的ToolTip做專題圖

ToolTip加點料, 這篇文章講述了如果在MapGuide ToolTip中加入圖片,後來無意中看到了... tooltip expression for the Parcels layer would be...但總比沒有強些 這隻是個引子,注意到ToolTip中只是個HTML,其實只要你有想象力,可以放任...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.