OpenLayers 4 getGetFeatureInfoUrl 和 HitTollerance
OpenLayers 4 getGetFeatureInfoUrl and HitTollerance
我正在使用这段代码
map.on('singleclick', function(evt) {
...
url = pmfeatlayer.getSource().getGetFeatureInfoUrl(coordinate, viewResolution, projection, {'INFO_FORMAT': 'text/html'});
if (url) {...
}
...
}
这是我的图层:
pmfeatlayer = new ol.layer.Tile({
extent: ext,
preload: Infinity,
source: new ol.source.TileWMS({
url: Settings.url,
params: {'LAYERS': sQLayers, MYORDERS: Settings.order, DTO: DTo, format: 'image/png'},
ratio: 1.1,
gutter: 40
})
});
获取 pmfeatlayer
上的特征信息,在所有代码中我还有一个函数显示该像素中的特征列表(如果我有超过 1 个 URL 创建一个他们的名单)
如何增加容忍度?
我找到了这个例子,但我无法让它工作,这是只针对特征还是也针对图层?
https://openlayers.org/en/latest/examples/hit-tolerance.html
这是我的地图的截图。
我有一个 map layer
和一个 featlayers
(所有街道限制都在该层上),正如您从那个像素的弹出窗口中看到的那样,我有 2 个限制,我该如何增加例如半径 o 也得到 2 街道标志(因为此时他显示 2 街道线而不是标志)?
您正在查看的示例略有不同,因为它使用的是矢量图层,其中所有几何图形都已添加到地图中。因为您正在制作 getFeatureInfoRequest,所以您无法在 OpenLayers 中应用命中容差。相反,您可以尝试在 getFeatureInfoUrl 函数中添加一个缓冲区参数,如 {'INFO_FORMAT': 'text/html', 'BUFFER': 5}
。这请求地图服务器在其响应中包含此缓冲区内的任何几何图形。如果这不起作用,您可以尝试添加一个 maxFeatures 参数,指示您希望从地图服务器取回的最大功能量,因为服务器可能默认只返回一个功能。
最后我让它与 FEATURE_COUNT:10
一起工作,buffer
不工作。
检查请求 WMS URL 我发现 FEATURE_COUNT:10
,在另一个版本的项目中有其他类型的数据,旧代码中没有的参数,我仍然无法了解 OL2 如何在 URL
中插入此参数
我正在使用这段代码
map.on('singleclick', function(evt) {
...
url = pmfeatlayer.getSource().getGetFeatureInfoUrl(coordinate, viewResolution, projection, {'INFO_FORMAT': 'text/html'});
if (url) {...
}
...
}
这是我的图层:
pmfeatlayer = new ol.layer.Tile({
extent: ext,
preload: Infinity,
source: new ol.source.TileWMS({
url: Settings.url,
params: {'LAYERS': sQLayers, MYORDERS: Settings.order, DTO: DTo, format: 'image/png'},
ratio: 1.1,
gutter: 40
})
});
获取 pmfeatlayer
上的特征信息,在所有代码中我还有一个函数显示该像素中的特征列表(如果我有超过 1 个 URL 创建一个他们的名单)
如何增加容忍度?
我找到了这个例子,但我无法让它工作,这是只针对特征还是也针对图层?
https://openlayers.org/en/latest/examples/hit-tolerance.html
这是我的地图的截图。
我有一个 map layer
和一个 featlayers
(所有街道限制都在该层上),正如您从那个像素的弹出窗口中看到的那样,我有 2 个限制,我该如何增加例如半径 o 也得到 2 街道标志(因为此时他显示 2 街道线而不是标志)?
您正在查看的示例略有不同,因为它使用的是矢量图层,其中所有几何图形都已添加到地图中。因为您正在制作 getFeatureInfoRequest,所以您无法在 OpenLayers 中应用命中容差。相反,您可以尝试在 getFeatureInfoUrl 函数中添加一个缓冲区参数,如 {'INFO_FORMAT': 'text/html', 'BUFFER': 5}
。这请求地图服务器在其响应中包含此缓冲区内的任何几何图形。如果这不起作用,您可以尝试添加一个 maxFeatures 参数,指示您希望从地图服务器取回的最大功能量,因为服务器可能默认只返回一个功能。
最后我让它与 FEATURE_COUNT:10
一起工作,buffer
不工作。
检查请求 WMS URL 我发现 FEATURE_COUNT:10
,在另一个版本的项目中有其他类型的数据,旧代码中没有的参数,我仍然无法了解 OL2 如何在 URL