MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~

一个WebGIS平台,最基本的功能就是根据地图查询要素的详细属性信息。MapGuide作为一个WebGIS平台当然也不例外。在MapGuide的基本网页布局Ajax Viewer中,点击地图上的地物,属性信息即可显示在Properties窗口中,灵活网页布局也同样提供的属性显示窗口Widget。点一下虽然比较不费力,当有没有更省力的办法呢?其实我有腱鞘炎,一下鼠标都不想点,要是鼠标放那儿停一会儿,信息自己蹦出来就好了~~  说我懒也就罢了,其实还有更重要的,MapGuide自带的属性显示功能只能显示数据源中的字段信息,虽然可以通过数据源的Join功能连接到后台其他数据库等资源,但是要能给我个ID自己控制多好,有了这个地物ID我想干啥干啥,那有多爽?! 这在MapGuide里能行吗?

答案是,当然!我发现MapGuide的一个很大的好处就是开放性,不但能直接访问各种数据格式,还提供了开放式的定制方式。上面的问题我们用ToolTip功能就能搞定了。下面我们做一个简单的例子,来实现一个常见的任务,即鼠标指向某个地物时,弹出浮动窗口显示地物的详细信息。这些详细信息可以是从数据源中获取,也可以从其他外部数据源中如数据库中获取。

 

在MapGuide Studio中可以设定图层的ToolTip,即当鼠标悬停在地物上方时弹出气泡式浮动窗口显示相关信息。

MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~_第1张图片

ToolTip的设定可以通过Expression Builder进行设定。通过Expression Build不但可以使用很多文本处理函数、数学处理函数等,还可以使用Geomtric相关函数,而且可以方便的获取数据源中的相关信息。如图中显示的是数据源中的相关字段,如果我们需要在ToolTip中显示数据源中已有字段的信息,通过Expression Build即可很方便的完成。

MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~_第2张图片

一般数据源中都会有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等外部数据了。

MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~_第3张图片

在Flexible WebLayout中通用适用。

MapGuide中怎么实现“指哪儿打哪儿”?ToolTip帮你忙~_第4张图片

 

在此只是抛砖引玉,只要大家有新想法,其实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,其实只要你有想象力,可以放任...

你可能感兴趣的:(tooltip)