私たちのアプリケーションでは、OpenLayers.jsバージョン3.20を使用しています。 カスタマイズ可能な設定が用意されているので、アプリケーションは複数のソースからの複数のレイヤーで構成されるマップを表示できます。2つの異なるソースからの2つのレイヤーを使用したOpenLayersマップのズームが異なっています。 OpenLayersはズームレベルの動作方法を変更できますか?
特定の顧客設定では、家屋や建物を含む地図レイヤーと、道路やその他のインフラストラクチャを含む別のレイヤーがあります。 これらのレイヤーはどちらもArcGISから提供されますが、2つの異なるサーバーと2つの異なる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
});
}
を使用してレイヤーを作成することを選択したかどうかを問題ではありません。作成されたレイヤーは、二つの異なるマップサービス(OnshoreBaseMapUrl
とOnshorOperationalMapUrl
)とlayerCreateFunction
からのこのようなlayers
アレイは、上記に示したものの二つの機能の一つである:我々が使用している
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で検索したところ、これまで何も見つかりませんでした。
上記のコードサンプルで示したように、マップソース内の特定のレイヤーを1つにするREST要求の一部として、ArcGISサーバーにパラメータを渡しますが、マップのスケールをオーバーライドするためにも使用できますか?
また、どんな助けもありがとうございます。
タイル張りのレイヤーと投影が一致していますか? –
ちょうどそれを調べて、正しい投影を常に指定するコードを変更しました。テストで問題が解消されたと表示されたらここで更新します。 – NilsAndreas