0

使用 ArcGIS Server JavaScript Api 在地图上显示主页按钮和地图概览时遇到问题。无论出于何种原因,主页按钮都没有显示地图。这是脚本:

<script>
  require([
    "esri/map", 
    "esri/dijit/OverviewMap", "dojo/parser","dijit/layout/BorderContainer", "dijit/layout/ContentPane",
    "esri/dijit/HomeButton", "esri/layers/FeatureLayer", "dojo/dom-construct", "dojo/domReady!"
  ], function(
      Map, OverviewMap,
  parser, HomeButton, FeatureLayer       
     ) {
    parser.parse(); 
    var map = new Map("mapDiv", {
      basemap: "topo",
      center: [-126.416, 55.781],
      zoom: 6
    });
  //===================================================== Overview
    var overviewMapDijit = new OverviewMap({
      map: map,
      visible: true
    });
    overviewMapDijit.startup();

 //===================================================== Shapefile
    //add a layer to the map
    var featureLayer = new FeatureLayer("http://somewhere/1", {
      mode: FeatureLayer.MODE_ONDEMAND,
    });
 map.addLayer(featureLayer);

 //===================================================== Home Button
var home = new HomeButton({
map: map
}, "HomeButton");
 home.startup();

  });
 </script>

主页按钮的 CSS 是:

#HomeButton { position: absolute;  top: 120px; left: 50px;  z-index: 2; }

为什么会这样?

4

1 回答 1

1

从您我可以看到的是,您的“esri/dijit/HomeButton”模块加载在第 6 位,而在编写时function(Map, OverviewMap, parser, HomeButton, FeatureLayer)您在第 4 位提到了 HomeButton 参数。

如果你把你的模块也放在第四位

require([
    "esri/map", 
    "esri/dijit/OverviewMap", "dojo/parser", "esri/dijit/HomeButton", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "esri/layers/FeatureLayer", "dojo/dom-construct", "dojo/domReady!"
  ]

同样,函数的所有参数都在正确的位置,那么一切都应该顺利

同样供您在同一问题上参考,您可以查看如何正确放置导入模块和相应的参数链接

于 2014-11-13T05:56:45.260 回答