描述

ArcGIS JavaScript API的1.2版本加入更多地图如何缓存,切片和地图服务的控制。本例展示了如何限制地图能够接收切片的比例等级。如果不想用户过分的放大或缩小,即使切片存在这些极端的比例,这个方法是有用处的。

本例使用ArcGIS Online上的一个影像图层。这个服务有16等级可以使用,但是应用被设置为仅仅使用相近的8个等级。因为应用系统重点是一个国家公园,用户不需要放大太多。

在本例中,细节的等级通过lods[]数组配置,lods[]数组包含每个级别的索引数信息,分辨率和比例。如何轻松地接收所有的信息呢?最好的方式是转到服务的Services Directory页面,然后添加?f=pjson到URL。下面是一个示例:

http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer?f=pjson

能够从这里拷贝需要的详情等级。一旦配置了数组,能够在构造函数里设置地图的lods。仅仅能在创建地图的时间设置详情等级。

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <meta http-equiv="X-UA-Compatible" content="IE=7" />
  7. <title>ArcGIS Online tiled maps.</title>
  8.  
  9. <link rel="stylesheet" type="text/css" href="styles.css"
  10. href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css">
  11. <link rel="stylesheet" type="text/css" href="styles.css"
  12. href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/soria/soria.css">
  13. <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6"></script>
  14.  
  15. <script type="text/javascript">
  16. dojo.require("esri.map");
  17. var map;
  18. function init(){
  19.  
  20. //在这个示例中,我剔除ESRI_Imagery_World_2D的9到16级之间的地图服务,一旦创建了映射id将被重新设置水平(1-8)
  21. var lods = [
  22. {"level" : 9, "resolution" : 0.001373291015625, "scale" : 577143.747208662},
  23. {"level" : 10, "resolution" : 0.0006866455078125, "scale" : 288571.873604331},
  24. {"level" : 11, "resolution" : 0.00034332275390625, "scale" : 144285.936802165},
  25. {"level" : 12, "resolution" : 0.000171661376953125, "scale" : 72142.9684010827},
  26. {"level" : 13, "resolution" : 8.58306884765629E-05, "scale" : 36071.4842005414},
  27. {"level" : 14, "resolution" : 4.29153442382814E-05, "scale" : 18035.7421002707},
  28. {"level" : 15, "resolution" : 2.14576721191407E-05, "scale" : 9017.87105013534},
  29. {"level" : 16, "resolution" : 1.07288360595703E-05, "scale" : 4508.93552506767}
  30. ];
  31.  
  32. map=new esri.Map("map",{
  33. extent:new esri.geometry.Extent({xmin:110,ymin:31,xmax:117,ymax:37,spatialReference:{wkid:4326}})
  34. ,lods:lods
  35. });
  36.  
  37. dojo.connect(map,"onExtentChange",function(extent,delta,outLevelChange,outLod){
  38. dojo.byId("scale").innerHTML="LOD Level:<i>"+outLod.level
  39. +"</i>Resolution:<i>"+outLod.resolution
  40. +"</i>Scale:<i>"+outLod.scale+"</i>;"
  41.  
  42. });
  43.  
  44. var tiledMapServiceLayer=new esri.layers.ArcGISTiledMapServiceLayer(
  45. "http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_Imagery_World_2D/MapServer"
  46. );
  47. map.addLayer(tiledMapServiceLayer);
  48.  
  49. /*加载不了图片*/
  50. var heNanDynamicMapServiceLayer=new esri.layers.ArcGISDynamicMapServiceLayer(
  51. "http://118.144.36.6:6080/arcgis/rest/services/chakan/henan530/MapServer"
  52. );
  53. heNanDynamicMapServiceLayer.setOpacity(0.75);
  54. map.addLayer(heNanDynamicMapServiceLayer);
  55.  
  56. }
  57.  
  58. dojo.addOnLoad(init);
  59. </script>
  60. </head>
  61.  
  62. <body class="tundra">
  63. <table>
  64. <tr>
  65. <td>
  66. <div id="map" class="soria" style="position:relative;width:900px;height:600px;border:1px solid #000">
  67. <span id="scale" style="position:absolute;right:10px;bottom:10px;z-index:100;color:white"></span>
  68. </div>
  69. </td>
  70.  
  71. </tr>
  72. </table>
  73. </body>
  74. </html>

ArcGIS api for javascript——设置可见的比例的更多相关文章

  1. ArcGIS api for javascript——设置自定义范围和空间参考

    描述 这个示例展示了在创建地图时如果定义一个自定义的范围和空间参考. 在 ArcGIS JavaScript API的1.0和1.1版本,任何要使用的地图服务图层都需要和地图的空间参考一致.1.2版本 ...

  2. ArcGIS API for Javascript 使用缓冲区结果做query查询出现“esri.config.defaults.io.proxyUrl 尚未进行设置”错误

    1.前言 在研究ArcGIS API for JavaScript时会遇到这样的问题,比如我们在做缓冲区分析时,用分析的范围作为空间查询query的参数,在执行结果中总是会看到“esri.config ...

  3. ArcGIS api for javascript——加载查询结果,悬停显示信息窗口

    转自原文 ArcGIS api for javascript——加载查询结果,悬停显示信息窗口 描述 本例在开始和地图交互前执行一个查询任务并加在查询结果.这允许用户鼠标悬停在任意郡县时立即见到Inf ...

  4. ArcGIS API For JavaScript 开发(二)基础地图

    有了开发环境,接下来的就是实践了,实践是检验真理的唯一标准! 多多练习,不要觉得自己能够想的出来就万事大吉了,还是得动手做才是最好的检验自己的能力. 基础地图,本节将通过arcgis api for ...

  5. ArcGIS.Server.9.3和ArcGIS API for JavaScript地图实现Toorbar功能(四)

    转自:http://www.cnblogs.com/hll2008/archive/2008/11/22/1338630.html 目的:1.ArcGIS API for JavaScript实现To ...

  6. ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

    内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...

  7. 【1】ArcGIS API for JavaScript 4.5/4.6 本地部署

    惭愧,和我的学弟比起来,我所开始接触前端开发,ArcGIS API for JavaScript的时间和深度远远不及于他. 一年之尾,亦是一年之始,我也将正式开始我的博客生涯.本人在校学习并且做项目, ...

  8. ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型

    熟悉GPServer的同学肯定知道,GPServer在10.1的ArcMap后需要执行成功一次才能发布. 发布GPServer,可以是ArcMap的工具箱的工具,也可以是自己写的模型. 不管是ArcM ...

  9. ArcGIS API for JavaScript 4.x 本地部署之跨域问题解决法:CORS

    众所周知,在离线部署ArcGIS API for JavaScript时,有时候会产生微件上的字体.符号变成方框的问题.这是遇到了跨域,只需要对所在服务器进行配置即可. 本篇使用的环境是:API配置在 ...

随机推荐

  1. ActiveMQ学习笔记(13)----Destination高级特性(一)

    1. Wildcards 1. Wildcards用来支持名字分层体系,它不是JMS规范的一部分,是ActiveMQ的扩展. ActiveMQ支持一下三种wildcards: 1. ".&q ...

  2. plsql 查询历史执行语句

    control+e. 如果执行删除.修改.增加的操作,未提交的历史记录中也有.

  3. 洛谷P2617 Dynamic Rankings 主席树 单点修改 区间查询第 K 大

    我们将线段树套在树状数组上,查询前预处理出所有要一起移动的节点编号,并在查询过程中一起将这些节点移到左右子树上. Code: #include<cstdio> #include<cs ...

  4. Unable to load annotation processor factory

    很多人在项目开发中都会遇到项目名称左上角有个红叉,有些是Jar问题,有些是代码问题,有些是编译问题,对于我这种强迫症的是受不了这种情况发生的,如果不影响项目启动还好,废话少说,今天工作就出现了一个问题 ...

  5. 'Upgrade' header is missing

    spring-websocket 握手失败是因为 有拦截器  注释掉拦截器就OK

  6. visio使用技巧

    1.背景放大: 按住Ctrl键,滚动鼠标滚轮,即可调整背景大小,这是改变的显示比例 2.背景: 按住Ctrl+E,在背景边框处拖动图标,即可拉大或者缩小背景,这是实际更改背景大小.

  7. 架构思想之CAP原理

    由于自己负责后端的设计已经有一段时间,对设计的一些思想和理论有一些理解,但最近被问到什么是CAP时,却一脸懵逼,下来后专门针对CAP架构思想进行了一些专题学习,在这里也将这个概念引入给大家,大家可以有 ...

  8. a+=b 等价于 a=a+b ?

    a += b和a = a + b全然等价么(java)?可能非常多人以为是一样的,事实上并不是等价的,以下看一下证据吧. public class Test { public static void ...

  9. View注入框架:Butterknife简单使用

    View注入框架 下载地址 1.Activity Binging 通过@Bind凝视字段,Butter Knife能够通过View的ID自己主动找到并把对应的视图布局. class ExampleAc ...

  10. HDU 2112 HDU Today &lt;SPFA算法+map函数&gt;

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...