将地理 WGS 84 转换为 Web 墨卡托 102100
Converting geographic WGS 84 to Web Mercator 102100
我正在尝试将地理坐标系转换为 Esri Webmercator,但是当我进行转换时,生成的 x 和 y 的值为 0000003232112222...和00000012665321....这很奇怪,因为坐标不存在。
var positions = [];
positions.push(x, y);
var g = new esri.geometry.Point(positions);
g = esri.geometry.geographicToWebMercator(g);
x = g.x;
y = g.y;
您应该尝试esri/geometry/webMercatorUtils
模块中的geographicToWebMercator
方法。请参阅详细文档。
//a point in GCS_WGS_1984(wkid is 4326)
var point = new Point(-118.15, 33.80, new SpatialReference({
wkid: 4326
}));
var pointWebMercator = webMercatorUtils.geographicToWebMercator(point);
alert("the point in 102100 is ( " + pointWebMercator.x + "," + pointWebMercator.y + " )");
现场演示:
<!DOCTYPE html>
<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>Converting geographic WGS 84 to Web Mercator 102100</title>
<link rel="stylesheet" href="https://js.arcgis.com/3.20/esri/css/esri.css">
<style>
html,
body,
#map {
height: 100%;
margin: 0;
padding: 0;
}
</style>
<script src="https://js.arcgis.com/3.20/"></script>
<script>
var map;
require(["esri/map", "esri/geometry/Point", "esri/SpatialReference", "esri/geometry/webMercatorUtils", "dojo/domReady!"], function (Map, Point, SpatialReference, webMercatorUtils) {
map = new Map("map", {
basemap: "topo", //For full list of pre-defined basemaps, navigate to http://arcg.is/1JVo6Wd
center: [-122.45, 37.75], // longitude, latitude
zoom: 13
});
//a point in GCS_WGS_1984(wkid is 4326)
var point = new Point(-118.15, 33.80, new SpatialReference({
wkid: 4326
}));
var pointWebMercator = webMercatorUtils.geographicToWebMercator(point);
alert("the point in 102100 is ( " + pointWebMercator.x + "," + pointWebMercator.y + " )");
});
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
希望它能帮助你。
实际上,
您不必转换纬度/经度即可向 webmercator 中的底图添加点。
您可以通过几种不同的方式直接使用纬度/经度创建点(API 将在内部执行从地理到网络墨卡托的转换)。此功能从版本 3.3(2013 年 1 月)开始可用。
var point = new Point(-98, 38); // note that longitude(x) comes before the latitude(y).
// or as an array
var point = new Point([-98, 38]);
// or as an object
var point = new Point({latitude: 38, longitude: -98});
https://developers.arcgis.com/javascript/3/jsapi/point-amd.html#point4
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 在Web应用程序中使用Highcharts javascript
- WebDriverException:tinyMCE未在selenium Web driver java中定义
- Selenium Web驱动程序和javascript
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 在调用speak之前预加载Web Speech API
- 如何在visualstudio中调试web api时编辑javascript文件
- 是否存在React Native“;WEB代码安全防护”;
- 如何在Ionic Android中将Javascript注入到web视图中
- 将复杂对象从angular js传递到web api,它总是返回404
- 基于api密钥的NodeJS web服务
- 将下载链接从web浏览器传递给第三方应用程序
- 基于Web的JS调试库
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 从Javascript连接到SOAP Web服务
- 自定义HTML元素属性未显示-Web组件
- 将地理 WGS 84 转换为 Web 墨卡托 102100