使用ArcGIS JavaScript API 3.18 加载天地图

对于中国开发者在创建GIS应用的时候,往往比较头疼的是底图资源的缺乏。其实国家测绘地信局就提供一个很好的免费资源:天地图。使用ArcGIS API的开发人员可以直接利用该资源作为地图应用的底图。

ArcGIS JavaScript API最近新推出了3.18版本。所以下面示例代码将基于该版本。

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
	<title>Test Map</title>
	<link rel="stylesheet" href="http://localhost/arcgis_js_api/library/3.18/3.18/dijit/themes/claro/claro.css" />
	<link rel="stylesheet" href="http://localhost/arcgis_js_api/library/3.18/3.18/esri/css/esri.css" />
	<style>
		html,
		body,
		#ui-map-view {
			margin: 0;
			padding: 0;
			width: 100%;
			height: 100%;
		}
	</style>
	<script src="http://localhost/arcgis_js_api/library/3.18/3.18/init.js"></script>
	<script>
var myMap

require([
  ‘dojo/_base/declare‘,
  ‘esri/layers/ArcGISTiledMapServiceLayer‘,
  ‘esri/layers/TiledMapServiceLayer‘,
  ‘esri/map‘,
  ‘esri/layers/TileInfo‘,
  ‘esri/layers/LOD‘,
  ‘esri/SpatialReference‘,
  ‘dojo/domReady!‘
], function (declare, TileLayer, TiledMapServiceLayer, Map, TileInfo, LOD, SpatialReference) {

  declare(‘TDTLayer‘, TiledMapServiceLayer, {
    constructor: function () {
      this.spatialReference = new esri.SpatialReference({ wkid: 4490 })
      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‘: 4490
        },
        ‘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.741763839724},
          {‘level‘: 16, ‘resolution‘: 2.1457672119140625e-005, ‘scale‘: 9017.8708819198619},
          {‘level‘: 17, ‘resolution‘: 1.0728836059570313e-005, ‘scale‘: 4508.9354409599309},
          {‘level‘: 18, ‘resolution‘: 5.3644180297851563e-006, ‘scale‘: 2254.4677204799655}
        ]
      })

      this.loaded = true
      this.onLoad(this)
    },

    getTileUrl: function (level, row, col) {
      return ‘http://t0.tianditu.com/DataServer?T=vec_c&X=‘ + col + ‘&Y=‘ + row + ‘&L=‘ + level
    }
  })

  myMap = new Map(‘ui-map-view‘, {
    center: [111.87, 23.57]

  })

  var tdt = new TDTLayer()

  myMap.addLayer(tdt)

})

    </script>
</head>

<body class="claro">
	<div id="ui-map-view"></div>
</body>

</html>

  

  

时间: 2024-11-10 07:59:13

使用ArcGIS JavaScript API 3.18 加载天地图的相关文章

arcgis api for javascipt 加载天地图、百度地图

写在前面的话: 1.百度地图是自己定义的坐标系统,wkid=102100.百度地图数据是加密的产物.下文将附上百度坐标与WGS84,谷歌等坐标系统转换方法(地理-地理),此方法并未亲测,据说准 2.百度地图可以直接加载经纬度坐标 3.百度地图如果加载的arcgis api中会出现坐标偏移,1.中已经解决了地理坐标转换,那么找到百度投影-地理坐标的转换方式,则arcgis就可以直接无偏加载了,网上很多方法,但是亲测不行. 4.天地图不是涉密数据,根据本文提供的类库,arcgis api for j

【ArcGis for javascript从零开始】之一 ArcGis加载天地图

最近做项目需要用到ArcGis来进行数据展示和数据分析.以前从来没有接触过与Gis有关的东西,一切需要从头开始学.没有时间从头系统地学习了,只能用到哪个学习哪里了,本系列只是对学习的路径进行记录.ArcGis在网上没有找到中文的API,只有官网的英文API和Demo,而且用到了大量dojo的API,dojo也没有接触过,这方面也是需要学习的…… 一.ArcGis加载 引入css 和js [html] view plain copy <link rel= "stylesheet" 

ArcGIS Javascript API 加载高德在线地图扩展

利用ArcGIS JavaScript API加载高德在线地图的扩展 /** * Created by WanderGIS on 2015/7/15. */ define(["dojo/_base/declare", "esri/geometry/Extent", "esri/SpatialReference", "esri/geometry/Point", "esri/layers/TileInfo",

18 ArcGIS API for JavaScript4.X 系列加载天地图(经纬度)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

ArcGIS API for Silverlight 加载google地图

原文:ArcGIS API for Silverlight 加载google地图 using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using Syst

ArcGIS API for Silverlight加载google地图(后续篇)

原文:ArcGIS API for Silverlight加载google地图(后续篇) 之前在博客中(http://blog.csdn.net/taomanman/article/details/8019687)提到的加载google地图方案,因为google地址问题,看不到图了,发现是url地址变换造成的. 现将如下三个类公布出来,源码如下: using System; using System.Net; using System.Windows; using System.Windows.

解决ArcGIS API for Silverlight 加载地图的内外网访问问题

原文:解决ArcGIS API for Silverlight 加载地图的内外网访问问题 先上一个类,如下: public class BaseClass { public static string getFullUri(string oldUriString) { string newUriString = oldUriString; //处理相对地址============================================================ if (newUri

ArcGIS Engine中数据的加载 (转)

1.加载Shapefile数据 1 IWorkspaceFactory pWorkspaceFactory; 2 IFeatureWorkspace pFeatureWorkspace; 3 IFeatureLayer pFeatureLayer; 4 5 //获取当前路径和文件名 6 OpenFileDialog dlg = new OpenFileDialog(); 7 dlg.Filter = "Shape(*.shp)|*.shp|All Files(*.*)|*.*"; 8

JavaScript判断图片是否加载完成的三种方式

一.load事件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE HTML> <html> <head>     <meta charset="utf-8">     <title>img - load event</title> </head> <body>     <img id="img1" src=&qu