[英]OpenLayers map with two layers from two different sources zoom differently. Can OpenLayers change how zoom levels behave?
在我們的應用程序中,我們使用 OpenLayers.js 版本 3.20。 我們有一個可定制的設置,因此應用程序可以顯示由來自多個來源的多個圖層組成的地圖。
現在,在特定的客戶設置中,我們有一個包含房屋和建築物的地圖圖層,以及另一個包含道路和其他一些基礎設施的圖層。 這兩個圖層均由 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
數組組成,像這樣,來自兩個不同的地圖服務( 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 搜索並在 Google 上搜索類似問題,但到目前為止一無所獲。
正如上面的代碼示例所示,我們將參數作為 REST 請求的一部分傳遞給 ArcGIS 服務器,以挑選出地圖源中的特定圖層,但這也可以用於覆蓋地圖的比例嗎?
再次,非常感謝任何幫助。
答案就在 ArcGIS Server 端! 客戶端(包括 OpenLayers)的代碼與它無關。 我沒有參與修復它,因此我無法提供詳細信息,但我被告知這可能是由地圖服務中參考比例的差異引起的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.