WMS的GetFeatureInfo用于通过屏幕坐标获取相应位置的要素信息,其效果就如同MapInfo或ArcView里的Info按钮,而通常WMS的GetFeatureInfo则是通过发送异步的请求完成的,通过GetFeatureInfo,我们在WMS上也可以获得要素的属性信息,这是非常有帮助的。
GetFeatureInfo需要如下几个参数:
-
- bbox: 当前视图的Bound,以地理坐标表示
- styles:当前视图的样式表信息
- format:当前视图的图象格式
- info_format:返回要数信息的格式,GeoServer支持GML、PlainText和HTML的返回,此外还可以通过Freemarker自定义模版
- request:请求类型,在此是getFeatureInfo
- layers:当前视图的图层
- query_layers:要查询getFeatureInfo的图层
- width:视图的宽度,以屏幕坐标表示,在GeoServer中必需是整型
- height:视图的高度,以屏幕坐标表示,在GeoServer中必需是整型
- x:要查询的屏幕坐标,整型
- y:要查询的屏幕坐标,整型
-
在Web上,OpenLayers对GetFeatureInfo实施了有效的封装,那么在Swing的JXMapKit上要想获得相同的效果则需要手动取得参数了,需要的参数包括bbox,width,height,x和y,这些参数都需要在事件触发时获得,因为视图的大小、位置随时都可能改变。
首先要给JXMapKit添加响应点击的事件,要注意的是,这个事件应该添加在一个JXMapViewer上,而不是JXMapKit本身。一个JXMapKit包含两个JXMapViewer,一个称为MainMap,是主视图,另一个称为MiniMap,即我们常说的鹰眼图。要捕捉点击事件,需要给MainMap添加一个鼠标事件的监听器,对于JXMapViewer来说,awt的MouseListener似乎没有作用,而应当使用swing的MouseInputAdapter。
接下来就需要计算各个坐标了。
首先最容易获取的是点击的屏幕坐标,通过MouseEvent的getPoint可以取得。
获取视图的宽高,通过JXMapViewer的getViewportBounds可以取得一个矩形,这个矩形的宽高就是视图的宽高,坐标都是采用屏幕坐标系,直接可以使用。
对于bbox,需要获得左下角和右上角的地理坐标。这需要通过TileFactory的pixelToGeo方法取得,分别将视图框矩形的minx,maxy和maxx,miny,以及当前视图的缩放级别(JXMapKit实例的getZoom方法)传入即可。
代码如下
@Override
public void mouseClicked(MouseEvent e) {
Point p = e.getPoint();
Rectangle r = map.getViewportBounds();
GeoPosition b1 = map.getTileFactory().pixelToGeo(new Point2D.Double(
r.getMinX(), r.getMaxY()), map.getZoom());
GeoPosition b2 = map.getTileFactory().pixelToGeo(new Point2D.Double(
r.getMaxX(), r.getMinY()), map.getZoom());
//....
}
用这些参数构造一个异步请求,发送即可。关于异步请求,swingx-ws有响应的封装,可以参考。
分享到:
相关推荐
wmts_getfeatureinfo_by_leaflet WMTS GetFeatureInfo by Leaflet Demo : : 添加 WMTS // 4326 //900913 Chồng lớp, phải dùng srid:900913 WMTS 获取特征信息 # WMTS ...LAYER=thuadat:view_duynghia_...
在本教程中,我们将深入探讨如何使用Leaflet库与Web Map Service (WMS) 集成,以实现地图上的WMS服务面要素的可点击功能。Leaflet是一款轻量级且强大的JavaScript库,用于创建交互式地图。WMS则是一种开放标准,允许...
在本教程中,我们将深入探讨如何使用Leaflet库在Web地图上实现WMS(Web Map Service)服务的点要素,并让这些要素具有可点击的功能。Leaflet是一个轻量级的JavaScript库,专为创建交互式的二维地图而设计,而WMS则是...
例如,`ZoomIn()`函数会使得地图上的每个单位面积在屏幕上占据更小的空间,从而实现放大效果;相反,`ZoomOut()`函数则会减小每个单位面积的显示大小,实现缩小效果。 其次,地图的移动(平移)功能是通过改变地图...
在WMS服务中,属性查询通常通过GetFeatureInfo请求来实现。这个请求会向服务器发送一个坐标点或一个矩形区域,服务器返回该点或区域内所有图层中符合查询条件的对象的属性信息。 在“WMS叠加并属性查询.html”这个...
MobileSVG作为一种开放的、基于XML的矢量图形格式,非常适合在无线网络上进行传输和显示。目前,MobileSVG已经应用于多个领域,例如在手机中显示交互式的SVG图片、动画等,以及用于基于位置的服务中,比如以手机作为...
这些图块通常是根据不同的分辨率和覆盖范围预先创建并存储在服务器上的。 #### 二、WMTS 标准的关键概念 ##### 1. **服务元数据 (Service Metadata)** 服务元数据是指关于WMTS服务本身的信息,包括但不限于服务...
2. **GetFeatureInfo请求**:在WMS服务中,GetFeatureInfo请求是一种特殊类型的服务调用,它允许客户端获取地图上特定位置的特征信息。当用户点击地图上的某一点时,此请求会返回该点下方图层中的地理特征的相关属性...
随着传感器技术的进步和多种对地观测网络、系统的建设,大量地理信息数据每天都在被获取,这些数据由不同的部门或机构管理,并存放在不同的服务器上,数据格式各异。为了实现地理信息资源的共享和广泛应用,需要对...
在OpenLayers 3中,我们可以通过多种方式实现点击查询,包括Select 控制器、map 的 click 事件、WMS 图层的 GetFeatureInfo 等。 Select 控制器 Ol3 中的官网 demo 提供了一个 Select 控件,实现鼠标的选择查询。...
jogl-1.1.1a-windows-i586.zip是Java OpenGL绑定,用于在Java应用程序中实现高性能的3D图形渲染。World Wind Java依赖于JOGL来显示其3D视图,因此确保正确安装并配置JOGL是至关重要的。 配置WMS服务器的步骤通常...
GetCapabilities用于获取服务的能力描述,GetMap则返回地图图像,而GetFeatureInfo可以获取地图上特定位置的要素信息。在1.1.1版本的SLD WMS服务中,还包括了DescribeLayers、GetLegendGraphic、GetStyles和...
在实现层面,WMS服务器通常基于GIS软件或开发框架构建,如GeoServer、MapServer等,这些平台提供了丰富的工具和API,便于开发者快速搭建和管理WMS服务。同时,WMS也支持多种地图投影和坐标系统,如WGS84、Mercator等...
JavaScript WMS客户端是一种基于Web的地图服务技术,它允许开发者通过JavaScript在网页上显示地理空间数据。WMS(Web Map Service)是一种开放标准,由OGC(开放地理空间联盟)制定,用于提供网络上的地图图像。它使...
- 为了获取特定位置上的地理特征信息,可以通过发送OGC的GetFeatureInfo请求实现。 - 配置好请求参数,包括请求版本、请求类型、查询的图层名称、坐标系等信息。 - 使用Ajax发送HTTP GET请求至GeoServer WMS服务...
GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息。 WMS 请求方式支持标准 HTTP 中标准的 GET 请求和 POST 请求方式,但基本都是基于 GET 方式的服务请求。OGC 网络服务明确支持的唯一的分布式计算平台...
3. **基本地图功能**:在客户端或浏览器上实现地图的基本操作,如浏览、缩放、平移等。 4. **在线编辑与查询**:支持地图数据的在线编辑和查询功能,提高工作效率。 5. **拓扑信息处理**:能够存储和操作拓扑信息,...
- **效率提升**: 由于只传输必要的几何和属性数据,而不是预渲染的图像,客户端可以快速加载和展示地图,特别是在移动设备上。 - **可定制性增强**: 客户端可以根据需要决定如何渲染地图,包括颜色、样式、缩放...
二次开发是指在已有的GIS平台基础上,通过编程技术添加新的功能、优化界面或改进工作流程,以满足特定业务需求。MAPGIS的二次开发主要涉及地图显示控制、数据处理、空间分析等功能的定制。 1.2 VB与MAPGIS结合 VB是...
OGC 标准基本上就是 OGC 所有的成果,而所谓的标准就是一些接口或编码的技术文档。不同的厂商、各种 GIS 产品都可以对照这些文档来定义开放服务的接口、空间数据存储的编码、空间操作的方法等。 在 OGC 标准中,SFS...