簡體   English   中英

來自兩個不同來源的兩個圖層的 OpenLayers 地圖縮放不同。 OpenLayers 可以改變縮放級別的行為嗎?

[英]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數組組成,像這樣,來自兩個不同的地圖服務( OnshoreBaseMapUrlOnshorOperationalMapUrl ),並且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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM