- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在地理服务器中发布了一个功能,我可以通过传单及其 basemap 成功访问该功能。现在我需要在弹出窗口中获取feature onclick的属性信息。
我按原样使用了示例( https://gist.github.com/rclark/6908938 ),但没有成功,单击后它没有显示任何内容,控制台中也没有任何错误。我用“mapid”替换了“map”,即我的mapid。我不明白发生了什么,请帮助我解决这个问题。谢谢......
我的 html 文件是 - test.html
<html>
<head>
<title>Leaflet</title>
<link rel="stylesheet" href="http://unpkg.com/leaflet@1.3.1/dist/leaflet.css" />
<script src="http://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>
</head>
<body>
<div style="width:100%; height:100%" id="map"></div>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="BetterWMS.js"></script>
<script type='text/javascript'>
var map = new L.Map('map', {center: new L.LatLng(30.176166666666667,79.14880555555557), zoom: 8});
var osm = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
map.addLayer(osm);
var Forest_Data = L.tileLayer.wms('http://localhost:8080/geoserver/cite/wms', {
format: 'image/png',layers: 'cite:Forest_Data',transparent: 'true'
}).addTo(map);
</script>
</body>
</html>
and "BetterWMS.js" file is -
L.TileLayer.BetterWMS = L.TileLayer.WMS.extend({
onAdd: function (mapid) {
// Triggered when the layer is added to a map.
// Register a click listener, then do all the upstream WMS things
L.TileLayer.WMS.prototype.onAdd.call(this, mapid);
map.on('click', this.getFeatureInfo, this);
},
onRemove: function (mapid) {
// Triggered when the layer is removed from a map.
// Unregister a click listener, then do all the upstream WMS things
L.TileLayer.WMS.prototype.onRemove.call(this, mapid);
map.off('click', this.getFeatureInfo, this);
},
getFeatureInfo: function (evt) {
// Make an AJAX request to the server and hope for the best
var url = this.getFeatureInfoUrl(evt.latlng),
showResults = L.Util.bind(this.showGetFeatureInfo, this);
$.ajax({
url: url,
success: function (data, status, xhr) {
var err = typeof data === 'string' ? null : data;
showResults(err, evt.latlng, data);
},
error: function (xhr, status, error) {
showResults(error);
}
});
},
getFeatureInfoUrl: function (latlng) {
// Construct a GetFeatureInfo request URL given a point
var point = this._map.latLngToContainerPoint(latlng, this._map.getZoom()),
size = this._map.getSize(),
params = {
request: 'GetFeatureInfo',
service: 'WMS',
srs: 'EPSG:4326',
styles: this.wmsParams.styles,
transparent: this.wmsParams.transparent,
version: this.wmsParams.version,
format: this.wmsParams.format,
bbox: this._map.getBounds().toBBoxString(),
height: size.y,
width: size.x,
layers: this.wmsParams.layers,
query_layers: this.wmsParams.layers,
info_format: 'text/html'
};
params[params.version === '1.3.0' ? 'i' : 'x'] = point.x;
params[params.version === '1.3.0' ? 'j' : 'y'] = point.y;
return this._url + L.Util.getParamString(params, this._url, true);
},
showGetFeatureInfo: function (err, latlng, content) {
if (err) { console.log(err); return; } // do nothing if there's an error
// Otherwise show the content in a popup, or something.
L.popup({ maxWidth: 800})
.setLatLng(latlng)
.setContent(content)
.openOn(this._map);
}
});
L.tileLayer.betterWms = function (url, options) {
return new L.TileLayer.BetterWMS(url, options);
};
我期待点击 WMS 图层时会出现一个简单的弹出窗口,其中包含该要素的属性信息。
最佳答案
您将 Forest_Data
定义为默认 WMS 对象:
var Forest_Data = L.tileLayer.wms (...)
您需要使用您定义的新对象。请参阅您的链接示例:
L.tileLayer.betterWms(...)
关于javascript - 如何通过弹出窗口获取在geoserver中发布的wms图层的属性信息。传单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55813632/
有谁知道QGIS中是否支持WMS-T? 通过该应用程序我可以添加 WMS 图层,但我无法使用 WMS-T(没有设置时间参数的地方)。 我一直在浏览 Python 插件,虽然有些插件可以处理时间(时间管
我需要一些帮助。我对 Geoserver 和 WMS 的概念很陌生,我正在寻找非常基本的帮助。我已经下载并安装了 Geoserver,设置了图层等(包括 sld),但是,我不知道如何从这里获取这些信息
我已经使用 PostGIS v2.4.2 扩展配置了 PostgreSQL v9.5.12 数据库。我使用 GeoServer v2.13.1 将数据库表渲染为 WMS 图层,并使用 Openlaye
本文整理了Java中org.geoserver.wms.WMSInfoImpl类的一些代码示例,展示了WMSInfoImpl类的具体用法。这些代码示例主要来源于Github/Stackoverflow
我正在尝试简化我的应用程序,并想知道 OpenLayers 何时物理调用 WMS 服务器?此外,层可见性是否也在调用中起作用? 实例化一个层时会发生吗 var layer = new OpenLaye
我正在尝试进行自动映射。我想要一张不确定性 map ,其中的不确定性由等值线显示。我想导出这些等值线和与它们关联的值,然后通过网络 map 服务显示它们。是否可以?通过以下代码,您可以生成轮廓线 re
我正在尝试使用 OpenLayers 查看 WMS 图层,但未显示任何内容。控制台中未显示任何错误消息。此外,当我尝试使用浏览器 (Firefox) 访问请求字符串时, map 显示得很好。这是代码。
一般来说: 是否可以根据 cql 过滤器或其他参数从单个 wms 查询中对某些 wms 功能进行不同的样式设置? 特别是: 在 wms 查询中,返回特征集合的栅格(即样式为红点的点), 我希望 geo
我正在我的应用程序中实现多个外部 WMS 服务。不幸的是,这些 WMS 服务不传递有关图 block 最小缩放级别的信息,仅传递有关 WMS 图层扩展的信息。有没有办法设置 WMS 开始显示的最小缩放
我使用以下 JavaScript block 来尝试显示 WMS 图层。我正在使用 OpenLayers 2.8。 map 的基础图层 (Openstreetmap) 显示正确,它缩放到正确的区域,“
我正在使用 Google Maps v2 显示来自 wms 的图 block 。我提到了this地点。加载图 block 时出现问题,它们加载了多次我不知道?任何人都可以帮助我吗? 这是我的代码 pa
我目前正在从事仓库管理系统项目: 1.元素大师 2.入境元素 3.向外 由内向外是一个有点复杂的过程。但这不是问题。 一切正常,我想生成报告。我将每个商品的库存存储在 item_stock 表中,该表
我在应用程序中使用 WMS 层,我需要使用新参数刷新它。 我确实正确刷新了 WMS 图层,但我找不到刷新其选择控件的方法。所以我得到了新图层,但无法单击任何点来显示其信息。这是我的一段代码: Laye
我想知道如何使用 openlayers 使 wms 图层透明。 每个非透明层的当前 javascript 如下: var lyr_GDPSETAAirtemperatureC = new ol.lay
我想创建一个面板,用户可以在其中更改所选图层的样式。 对于矢量图层,更新 ol.style 配置没有问题,但我真的不知道如何继续处理 ImageWMS 层。 Based on this post ,我
我正在学习使用 MapServer 创建 WMS 服务,之后我想开发一个可以访问它的 PyQt 桌面应用程序。我不知道最好的方法是什么,因为我见过很多网络解决方案,但这不是我想要的。我也不知道是否有图
我想在 Angular 4 中的 map 中添加一个示例 wms-layer 以及 GeoServer 中的 OpenLayers | 2. 我不知道执行此操作的正确语法。 也许有人在 Angular
我整天都在做这个,老实说,我没有主意了。我有一些 WMS 层,我想根据当前的缩放级别显示/不显示。是的,我已经阅读了 API 文档,它们似乎一如既往地清晰,但我遵循了所有建议,但没有得到想要的结果:(
如何在不调用“removeLayer”的情况下调整传单中的不透明度?我已经在我的 map 上使用了“map.addLayer(myLayer)”。我看到有一个 setParams() 方法,但是当我调
我正在 React Native 中开发一个移动应用程序,需要使用 Web map 服务。我还没有找到任何允许使用 WMS 并同时进行 native react 的库或框架。在React(Web)中我
我是一名优秀的程序员,十分优秀!