在我们的应用程序中,我们使用OpenLayers.js版本3.20 . 我们有一个可自定义的设置,以便应用程序可以显示由多个来源的多个图层组成的 Map .
现在,在特定的客户设置中,我们有一个包含房屋和建筑物的 Map 图层,以及另一个包含道路和其他基础设施的图层 . 这两个图层都是从ArcGIS提供的,但是来自两个不同的服务器和两个不同的URL .
这是说明问题的图像:
我是否选择使用创建图层并不重要
function createTiledLayer(url, params, projection, name) {
return new ol.layer.Tile({
source: new ol.source.TileArcGISRest({
url: url,
projection: projection,
params: params
}),
name: name
});
}
要么
function createImageLayer(url, params, projection, name) {
return new ol.layer.Image({
source: new ol.source.ImageArcGISRest({
ratio: 1,
params: params,
url: url,
projection: projection
}),
name: name
});
}
创建的图层由 layers
数组组成,如下所示,来自两个不同的 Map 服务( OnshoreBaseMapUrl
和 OnshorOperationalMapUrl
),而 layerCreateFunction
是上面显示的这两个函数之一:
layers: [
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl,{ 'LAYERS': 'show:7' },primaryMapSetup.projection,'Country Coast Polygon'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl,{ 'LAYERS': 'show:6' },primaryMapSetup.projection,'Onshore Bounderies'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl,{ 'LAYERS': 'show:5' },primaryMapSetup.projection,'Field Sectors Devider poly'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl, { 'LAYERS': 'show:4' },primaryMapSetup.projection, 'Field Sector Devider'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl, { 'LAYERS': 'show:3' },primaryMapSetup.projection, 'Land Marks'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl, { 'LAYERS': 'show:2' },primaryMapSetup.projection, 'Road Tracks'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl, { 'LAYERS': 'show:1' },primaryMapSetup.projection, 'Major Roads'),
primaryMapSetup.layerCreateFunction(OnshoreBaseMapUrl, { 'LAYERS': 'show:0' },primaryMapSetup.projection, 'Roads'),
primaryMapSetup.layerCreateFunction(OnshoreOperationalMapUrl, { 'LAYERS': 'show:2' },primaryMapSetup.projection, 'Pipeline Station Complex'),
primaryMapSetup.layerCreateFunction(OnshoreOperationalMapUrl, { 'LAYERS': 'show:1' },primaryMapSetup.projection, 'GW Monitoring Well'),
primaryMapSetup.layerCreateFunction(OnshoreOperationalMapUrl, { 'LAYERS': 'show:0' },primaryMapSetup.projection, 'Wells')
],
我们正在使用OpenLayers的内置缩放功能,因此在加载图层或缩放时我们不会做任何奇特的事情 .
我的预感是,这与在ArcGIS方面设置资源有关 .
我正在寻找解决这个问题的线索,通过API搜索并搜索类似的问题,到目前为止一无所获 .
如上面的代码示例所示,我们将参数传递给ArcGIS服务器,作为REST请求的一部分,以便在 Map 源中挑出特定的图层,但是这也可以用来覆盖 Map 的比例尺吗?
再次,非常感谢任何帮助 .
1 回答
答案是在ArcGIS Server端!客户端的代码(包括OpenLayers)与它无关 . 我没有参与修复它,所以我无法提供详细信息,但我被告知这可能是由 Map 服务的参考比例差异引起的 .