<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>坐标转换测试</title>
<link rel="stylesheet" href="http://js.arcgis.com/3.9/js/dojo/dijit/themes/soria/soria.css" />
<link rel="stylesheet" href="http://js.arcgis.com/3.9/js/esri/css/esri.css" />
<style>
html, body, #main {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
}
</style>
<script src="http://js.arcgis.com/3.9/"></script>
<script>
var map, gsvc; require(["dojo/parser", "esri/geometry/Extent", "esri/map", "esri/layers/ArcGISTiledMapServiceLayer",
"esri/SpatialReference", "esri/tasks/GeometryService", "esri/geometry/webMercatorUtils", "esri/geometry/Point",
"dijit/layout/BorderContainer", "dijit/layout/ContentPane",
"dojo/domReady!"],
function (parser, Extent, Map, ArcGISTiledMapServiceLayer, SpatialReference, GeometryService, webMercatorUtils, Point) {
parser.parse(); map = new esri.Map("mapDiv");
var layer = new ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer");
map.addLayer(layer);
map.setExtent(new Extent(-144.13, 7.98, -52.76, 68.89, new SpatialReference({ wkid: 4326 }))); gsvc = new GeometryService("http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
map.on("click", projectToWebMercator); function projectToWebMercator(evt) {
map.graphics.clear(); var point = evt.mapPoint;
var outSR = new SpatialReference({ wkid: 102113 }); // 利用webMercatorUtils模块转换坐标
var wm = webMercatorUtils.geographicToWebMercator(point);
// 利用我们自己的计算方法转换坐标
var we = toWebMercator(point); gsvc.project([point], outSR, function (projectedPoints) {
pt = projectedPoints[0];
var desc1 = "通过服务得到的坐标:<br/>" + pt.x.toFixed(3) + ";" + pt.y.toFixed(3);
var desc2 = "功能函数计算的坐标:<br/>" + wm.x.toFixed(3) + ";" + wm.y.toFixed(3);
var desc3 = "自己函数计算的坐标:<br/>" + we.x.toFixed(3) + ";" + we.y.toFixed(3);
document.getElementById("spatialReference").innerHTML = desc1 + "<br/>" + desc2 + "<br/>" + desc3;
});
} function toWebMercator(pt) {
var num = pt.x * 0.017453292519943295;
var x = 6378137.0 * num;
var a = pt.y * 0.017453292519943295;
var y = 3189068.5 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a))); return new Point({ "x": x, "y": y, "spatialReference": { "wkid": 102113 } });
}
});
</script>
</head>
<body class="soria">
<div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline'" id="main">
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'" style="height: 60px;">
<h3>功能:投影测试</h3>
</div>
<div id="mapDiv" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
</div>
<div id="spatialReference" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'right', splitter:true" style="width:200px; border:1px solid #000;"></div>
</div>
</body>
</html>

最新文章

  1. SpringMVC上传文件的三种方式(转)
  2. Mobile Safari调用本地App, 否则进入App Store下载
  3. 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
  4. 232. Implement Queue using Stacks
  5. smartUpload组件批量下载
  6. linux分区和文件系统
  7. hihoCoder #1181: 欧拉路&#183;二 (输出路径)
  8. android模块化app开发-3远程动态更新插件
  9. JavaScript 关于this的理解
  10. oracle中对LONG列进行查询
  11. Swift - 16 - String.Index和Range
  12. SEO的URL如何优化才是最佳
  13. mysql操作SQL语句
  14. 开源 免费 java CMS - FreeCMS1.4-功能说明-站点管理
  15. 转:创建WebTest插件
  16. Android开发 Jar mismatch! Fix your dependencies的问题
  17. zepto 事件分析3(add函数)
  18. linux环境下载和安装scala
  19. domOperation.js
  20. java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demoDao.getXXX;

热门文章

  1. Python2.7版本:定义类时为什么要继承object类?
  2. zip压缩工具类
  3. Leetcode201. Bitwise AND of Numbers Range数字范围按位与
  4. Werkzeug库——wrappers模块
  5. Css if hack条件语法
  6. Gartner首推机密计算:阿里云名列其中
  7. day66作业
  8. JavaScript RegExp 对象的三种方法
  9. Django项目:CRM(客户关系管理系统)--61--51PerfectCRM实现CRM客户报名流程学生合同上传照片
  10. 组件:组合slot