使用Arcgis Javascript api 访问其他地图

本文介绍了如何使用ArcGIS JavaScript API访问天地图以及其他在线地图服务,包括继承TiledMapServerLayer和使用WebTiledLayer两种方式。讨论了两种方式的优缺点,并提供了天地图的瓦片地图服务地址。
摘要由CSDN通过智能技术生成

概述

在最初接触GIS开发的时候,手上没有任何的地图数据,只是简单的把ArcGIS提供的或者国家地理信息中心公开的低分辨率矢量数据使用ArcGIS Server发布成地图服务来使用。慢慢的开始下载Google或者ESRI在线地图瓦片数据,然后自己编写Servlet程序来发布这些瓦片。当然,也有走正规途径的时候,比如购买灵图或者高德的地图,在或者购买其他高校自己制作的海图等。对于上说这些地图,或者可以直接使用WebTiledLayer或者直接使用ArcGISMapServerLayer访问,十分简单。


有时候,客户会要求我们必须使用在线地图,多见的是要求使用天地图。好吧,这时候我们是不能简单的直接使用ArcGISMapServerLayer或者WebTiledLayer来做到的,怎么办?


你可能会说,网上有实现ArcGIS javascript api访问Google、百度、高德地图的例子,访问天地图的也有!是的,我们常看到的是继承TiledMapServerLayer的方式实现的。其实,使用WebTiledLayer完全可以做到,而且相对简单。


好,我们来看下两种方式,访问天地图,其他地图类似。


继承TiledMapServerLayer方式

(基本引用 两仪清风的 “ ArcGis Javascript API (V3.6)加载天地图” )
1.创建TDTLayer.js
define(["dojo/_base/declare","esri/layers/tiled"], function(declare){
return declare(esri.layers.TiledMapServiceLayer, {
        constructor: function() {
          this.spatialReference = new esri.SpatialReference({ wkid:4326 });
          this.initialExtent = (this.fullExtent = new esri.geometry.Extent(-180.0, -90.0, 180.0, 90.0, this.spatialReference));
 
          this.tileInfo = new esri.layers.TileInfo({
            "rows" : 256,
            "cols" : 256,
            "compressionQuality" : 0,
            "origin" : {
              "x" : -180,
              "y" : 90
            },
            "spatialReference" : {
              "wkid" : 4326
            },
            "lods" : [
              {"level" : 2, "resolution" : 0.3515625, "scale" : 147748796.52937502},
              {"level" : 3, "resolution" : 0.17578125, "scale" : 73874398.264687508},
              {"level" : 4, "resolution" : 0.087890625, "scale" : 36937199.132343754},
              {"level" : 5, "resolution" : 0.0439453125, "scale" : 18468599.566171877},
              {"level" : 6, "resolution" : 0.02197265625, "scale" : 9234299.7830859385},
              {"level" : 7, "resolution" : 0.010986328125, "scale" : 4617149.8915429693},
              {"level" : 8, "resolution" : 0.0054931640625, "scale" : 2308574.9457714846},
              {"level" : 9, "resolution" : 0.00274658203125, "scale" : 1154287.4728857423},
              {"level" : 10, "resolution" : 0.001373291015625, "scale" : 577143.73644287116},
              {"level" : 11, "resolution" : 0.0006866455078125, "scale" : 288571.86822143558},
              {"level" : 12, "resolution" : 0.00034332275390625, "scale" : 144285.93411071779},
              {"level" : 13, "resolution" : 0.000171661376953125, "scale" : 72142.967055358895},
              {"level" : 14, "resolution" : 8.58306884765625e-005, "scale" : 36071.483527679447},
              {"level" : 15, "resolution" : 4.291534423828125e-005, "scale" : 18035.7417
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值