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

简介:


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

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

 

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

image

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

image

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

image

在Flexible WebLayout中通用适用。

image

 

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

作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。



本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2010/10/07/1845217.html ,如需转载请自行联系原作者
目录
打赏
0
0
0
0
23
分享
相关文章
读书笔记 effective c++ Item 18 使接口容易被正确使用,不容易被误用
1. 什么样的接口才是好的接口 C++中充斥着接口:函数接口,类接口,模板接口。每个接口都是客户同你的代码进行交互的一种方法。假设你正在面对的是一些“讲道理”的人员,这些客户尝试把工作做好,他们希望能够正确使用你的接口。
954 0
OAF_OAF控件系列1 - Region Type汇总(概念)
2014-06-22 Created By BaoXinjian 一、摘要 1. pageLayout Region: PageLayout region is the highest level layout.
977 0
OAF_OAF组件系列1 - Item Style汇总(概念)
20150506 Created By BaoXinjian 一、摘要 1. messageStyledText  When you want to display only the text and the user should not be able to edit the text then we use the messageStyledText.
965 0
读书笔记 effective c++ Item 44 将与模板参数无关的代码抽离出来
1. 使用模板可能导致代码膨胀 使用模板是节省时间和避免代码重用的很好的方法。你不需要手动输入20个相同的类名,每个类有15个成员函数,相反,你只需要输入一个类模板,然后让编译器来为你实例化20个特定的类和300个你需要的函数。
808 0
带你读《计算机组成与体系结构:性能设计(英文版·原书第10版)》之三:A Top-Level View of Computer Function and Interconnection
本书以Intel x86体系结构和ARM两个处理器系列为例,将当代计算机系统性能设计问题与计算机组成的基本概念和原理紧密联系起来,介绍了当代计算机体系结构的主流技术和最新技术。本书作者曾13次获a得美国教材和学术专著作者协会颁发的年度最佳计算机科学教材奖。目前,他是一名独立顾问,为众多计算机和网络制造商、软件开发公司以及政府前沿研究机构提供服务。