ArcGIS For JavaScript APi Map with scalebar(地图比例尺 内/外)————(二十三)

(1)内部比例尺

此示例演示如何添加一个比例尺地图。可以被添加到在地图上,或在一个用户指定的位置的比例尺。下面的代码片段显示了默认的比例尺显示在地图的左下角。

var scalebar=new esri.dijit.Scalebar({
  map
: map
});

您可以修改该位置的地图由中设置attachTo选项之一以下值"top-right","bottom-right","top-center","bottom-center","bottom-left","top-left".

var scalebar=new esri.dijit.Scalebar({

  map:map,
  attachTo
:"bottom-left"
});

查看原文:ArcGIS For JavaScript APi Map with scalebar —— 地图比例尺

引用联接:http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/#sample/widget_scalebar

在线演示:http://help.arcgis.com/en/webapi/javascript/arcgis/samples/widget_scalebar/index.html

 

代码如下:

<!DOCTYPE html>
<html> 
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9">
    <!--The viewport meta tag is used to improve the presentation and behavior of the samples on iOS devices-->
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
    <title>Map with scalebar</title>

    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/dojo/dijit/themes/claro/claro.css"> 
    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/css/esri.css">
    <style> 
      html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
      #map{padding:0;}
    </style> 

    <script>var dojoConfig = { parseOnLoad: true };</script>
    <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/"></script>
    <script> 
      dojo.require("dojo.parser");
      dojo.require("dijit.layout.BorderContainer");
      dojo.require("dijit.layout.ContentPane");
      dojo.require("esri.map");
      dojo.require("esri.dijit.Scalebar");
      var map;
 
      function init() {
        map = new esri.Map("map", {
          basemap: "topo",
          center: [-116.093, 34.218],
          zoom: 7
        });

        dojo.connect(map, "onLoad", function(theMap) {
          var scalebar = new esri.dijit.Scalebar({
            map: map, // 必须的
            scalebarUnit: "english"  // 指定比例尺单位,有效值是"english" or "metric".默认"english"
          });
        });
      }
 
      dojo.ready(init);  // 初始化加载
    </script> 
  </head> 
  
  <body class="claro"> 
    <div data-dojo-type="dijit.layout.BorderContainer" 
         data-dojo-props="design:'headline', gutters:false"
         style="width: 100%; height: 100%; margin: 0;"> 

      <div id="map" 
           data-dojo-type="dijit.layout.ContentPane" 
           data-dojo-props="region:'center'" 
           style="overflow:hidden;"> 
      </div> 

    </div> 
  </body> 
</html>

效果如下:
 

(2)比例尺在外部

 

参考联接:http://help.arcgis.com/en/webapi/javascript/arcgis/jssamples/#sample/widget_scalebarext

在线演示:http://help.arcgis.com/en/webapi/javascript/arcgis/samples/widget_scalebarExt/index.html

 

 此示例演示如何显示一个比例尺的地图之外,在指定的位置。下面的代码片段创建了一个新的比例尺,并把它的比例尺的构造函数中指定的在div。

var scalebar=new esri.dijit.Scalebar({
    map
: map,
    scalebarUnit
:"metric"
}, dojo.byId("scalebar"));

代码如下:

<!DOCTYPE html>
<html> 
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9">
    <!--The viewport meta tag is used to improve the presentation and behavior of the samples 
      on iOS devices-->
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
    <title>Scalebar</title>

    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/dojo/dijit/themes/claro/claro.css"> 
    <link rel="stylesheet" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/js/esri/css/esri.css">

    <script>var dojoConfig = { parseOnLoad: true };</script>
    <script src="http://serverapi.arcgisonline.com/jsapi/arcgis/3.3/"></script>
    <script> 
      dojo.require("dojo.parser");
      dojo.require("esri.dijit.Scalebar");
      dojo.require("esri.map");

      var map;
 
      function initialize() {
        map = new esri.Map("map", {
          basemap: "topo",
          center: [-116.093, 34.218],
          zoom: 7
        });

        dojo.connect(map, "onLoad", function() {
          var scalebar = new esri.dijit.Scalebar({
            map: map,
            scalebarUnit: "english"
          }, dojo.byId("scalebar"));
        });
      }
 
      dojo.ready(initialize);
    </script> 
  </head> 
  
  <body class="claro"> 
    <div id="map" style="position: relative; width: 900px; height: 500px; border: 1px solid #000;"></div>
    <div id="scalebar" style="position:absolute;left:100px;top:530px;"></div>
  </body> 
 
</html>


效果如图:

 

(3)问题:

 不知道什么原因,很多示例中都是第一次加载没问题,刷新页面时候不会再显示,比如这个比例尺也是一样,我用的是IE9浏览器

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值