Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ArcGIS Javascript API 3.17为自定义底图设置详细级别_Javascript_Arcgis_Arcgis Js Api - Fatal编程技术网

使用ArcGIS Javascript API 3.17为自定义底图设置详细级别

使用ArcGIS Javascript API 3.17为自定义底图设置详细级别,javascript,arcgis,arcgis-js-api,Javascript,Arcgis,Arcgis Js Api,我正在尝试使用ArcGIS Javascript API 3.17在一些自定义底图上实现细节层(LOD)。一个用于较小的细节,另两个用于较大的细节,但覆盖不同的区域。我有问题,但是页面没有加载(对于Firefox和IE)。有人能看到我没有看到的东西吗?注意,我在这里使用了一些示例服务。此外,我在我的实际实现中添加了一些动态特性层,这里没有包括这些 var map; var extent; var baseMapLayerPPT; var baseMapLayerPoly; var customL

我正在尝试使用ArcGIS Javascript API 3.17在一些自定义底图上实现细节层(LOD)。一个用于较小的细节,另两个用于较大的细节,但覆盖不同的区域。我有问题,但是页面没有加载(对于Firefox和IE)。有人能看到我没有看到的东西吗?注意,我在这里使用了一些示例服务。此外,我在我的实际实现中添加了一些动态特性层,这里没有包括这些

var map;
var extent;
var baseMapLayerPPT;
var baseMapLayerPoly;
var customLods = [];
var loadCount = 0;

require([
  "esri/geometry/Extent","esri/map", "esri/dijit/Search", "esri/layers/ArcGISDynamicMapServiceLayer","esri/layers/FeatureLayer", "esri/InfoTemplate", "dojo/domReady!"
], function (Extent, Map, Search, DynamicMapServiceLayer, FeatureLayer, InfoTemplate) {

  baseMapLayerPoly = new esri.layers.ArcGISTiledMapServiceLayer("https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
    displayLevels: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
  });

  baseMapLayerPoly.on("load", addLods);

  baseMapLayerPPT = new ArcGISTiledMapServiceLayer("https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
    displayLevels: [11, 12, 13, 14, 15 ],
    //opacity : 0.75
  });

  extent = new esri.geometry.Extent({
    "xmin":-91070.37,"ymin":7988806.64,"xmax":301214.62,"ymax":8227343.05,
    "spatialReference":{"wkid":3297}
  });

  // popuplate an array with zoom levels
  function addLods(evt) {
    customLods = customLods.concat(evt.layer.tileInfo.lods);
    loadCount++;
    if (loadCount === 2) {
      initMap();
    }
  }

  // create the map and use the custom zoom levels
  function initMap() {
    map = new Map("mapDiv", {
      center: [-150, -17],
      zoom: 9,
      lods : customLods
    });
    map.on("extent-change", changeScale);
    map.addLayers([baseMapLayerPoly,baseMapLayerPPT);
  }

  //Report which layer is being shown
  function changeScale(evt) {
    dom.byId("scale").innerHTML = "Level: <i>" + evt.lod.level;
    if (evt.lod.level < 11) {
      dom.byId("visibleLayer").innerHTML = "Layer: <i>Imagery</i>";
    } else if (evt.lod.level == 11) {
      // both layers are loaded
      dom.byId("visibleLayer").innerHTML = "<i>Both layers currently visible</i>";
    } else {
      dom.byId("visibleLayer").innerHTML = "Layer: <i>Streets</i>";
    }
  }


});
var映射;
var范围;
var BaseMapLayerPt;
var baseMapLayerPoly;
var customLods=[];
var loadCount=0;
要求([
“esri/geometry/Extent”、“esri/map”、“esri/dijit/Search”、“esri/layers/ArcGisDynamicMapsServiceLayer”、“esri/layers/FeatureLayer”、“esri/InfoTemplate”、“dojo/domReady!”
],功能(范围、地图、搜索、DynamicMapServiceLayer、FeatureLayer、信息模板){
baseMapLayerPoly=新的esri.layers.ArcGISTiledMapServiceLayer(“https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
显示级别:[0,1,2,3,4,5,6,7,8,9,10,11]
});
baseMapLayerPoly.on(“加载”,添加LODS);
BaseMapLayerPt=新的ArcGISTiledMapServiceLayer(“https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
显示级别:[11,12,13,14,15],
//不透明度:0.75
});
区段=新esri.GEOMETY.extent({
“xmin”:-91070.37,“ymin”:7988806.64,“xmax”:301214.62,“ymax”:8227343.05,
“空间参考”:{“wkid”:3297}
});
//使用缩放级别弹出阵列
函数addLods(evt){
customLods=customLods.concat(evt.layer.tileInfo.lods);
loadCount++;
如果(loadCount==2){
initMap();
}
}
//创建地图并使用自定义缩放级别
函数initMap(){
map=新映射(“mapDiv”{
中心:[-150,-17],
缩放:9,
lods:自定义lods
});
地图上(“范围变化”,变化比例);
addLayers([baseMapLayerPoly,baseMapLayerPPT];
}
//报告正在显示的图层
功能变化量表(evt){
dom.byId(“scale”).innerHTML=“Level:+evt.lod.Level;
如果(evt.lod.level<11){
dom.byId(“visibleLayer”).innerHTML=“层:图像”;
}else if(evt.lod.level==11){
//两个层都已加载
dom.byId(“visibleLayer”).innerHTML=“当前可见的两个层”;
}否则{
dom.byId(“visibleLayer”).innerHTML=“Layer:Streets”;
}
}
});

好吧,我在上面的代码中发现了一些错误-

  • 在require
    ArcGISTiledMapServiceLayer
    中未提及
  • initMap();
    未被此行触发-
    basemappayerpoly.on(“load”,addLods);
  • 关闭背景缺少映射。添加层([baseMapLayerPoly,BaseMapLayerPt);
  • lods:customLods
    正在导致另一个错误
  • map.on(“范围更改”,changeScale);
    导致错误,因为html不存在
  • 纠正上述问题后,以下是工作代码:-

    
    简单地图
    html,
    身体,
    #地图{
    身高:100%;
    保证金:0;
    填充:0;
    }
    var映射;
    var范围;
    var BaseMapLayerPt;
    var baseMapLayerPoly;
    var customLods=[];
    var loadCount=0;
    要求([
    “esri/geometry/Extent”、“esri/map”、“esri/dijit/Search”、“esri/layers/ArcGistiledMapsServiceLayer”、“esri/layers/ArcGisDynamicMapsServiceLayer”、“esri/layers/FeatureLayer”、“esri/InfoTemplate”、“dojo/domReady!”
    ],功能(范围、地图、搜索、ArcGISTiledMapServiceLayer、DynamicMapServiceLayer、FeatureLayer、信息模板){
    baseMapLayerPoly=新的ArcGISTiledMapServiceLayer(“https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", {
    显示级别:[0,1,2,3,4,5,6,7,8,9,10,11]
    });
    baseMapLayerPoly.on(“加载”,添加LODS);
    BaseMapLayerPt=新的ArcGISTiledMapServiceLayer(“https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", {
    显示级别:[11,12,13,14,15],
    //不透明度:0.75
    });
    initMap();
    区段=新区段({
    “xmin”:-91070.37,
    “ymin”:7988806.64,
    “xmax”:301214.62,
    “ymax”:8227343.05,
    “空间参考”:{
    “wkid”:3297
    }
    });
    //使用缩放级别弹出阵列
    函数addLods(evt){
    customLods=customLods.concat(evt.layer.tileInfo.lods);
    loadCount++;
    如果(loadCount==2){
    initMap();
    }
    }
    //创建地图并使用自定义缩放级别
    函数initMap(){
    地图=新地图(“地图”{
    中心:[-150,-17],
    缩放:9/,
    //lods:自定义lods
    });
    //地图上(“范围变化”,变化比例);
    addLayers([baseMapLayerPoly,baseMapLayerPPT]);
    }
    //报告正在显示的图层
    功能变化量表(evt){
    dom.byId(“scale”).innerHTML=“Level:+evt.lod.Level;
    如果(evt.lod.level<11){
    dom.byId(“visibleLayer”).innerHTML=“层:图像”;
    }否则
    
    var tilelods = [
       {
        "level": 0,
        "resolution": 156543.03392800014,
        "scale": 5.91657527591555E8
       },
       {
        "level": 1,
        "resolution": 78271.51696399994,
        "scale": 2.95828763795777E8
       },
       {
        "level": 2,
        "resolution": 39135.75848200009,
        "scale": 1.47914381897889E8
       },
       .
       .
       .
       {
        "level": 15,
        "resolution": 4.77731426794937,
        "scale": 18055.954822
       }
    ];
    map = new Map("mapDiv", {
      center: [-150, -17],
      zoom: 9,
      lods : tilelods
    });