javascript - 转换 ArcGis 地理坐标 Lat Long wkid : 4326 to Projected Coordinates wkid: 102000/3857

标签 javascript arcgis heatmap esri arcgis-js-api

当使用 JS ArcGis API 时,是否可以像这样从纬度和经度在 ArcGis 中创建一个点

var testPoint = new Point(-98, 38);

或者这个

var testPoint = new Point(-98, 38, new SpatialReference({ wkid: 4326 }));

并将其转换为不同的 SR,以便其 x 和 y 自动更改?例如。到 wkid 102000/3857?

上下文:(也许您可以找到解决方法)

我正在使用 heatmap.js 在 ArcGis map 上绘制 heatmapLayers。我找到了一些示例,此 API 摄取数据的方式是使用以下格式的变量 data:

var data = [
  {
    attributes: {},
    geometry: {
      spatialReference: { wkid: ****},
      type: "point",
      x: -40,
      y: 50
    }
  },
  {another point....}
];

API 本身对 data 变量进行一些解析,然后使用此方法

screenGeometry = esri.geometry.toScreenGeometry(this._map.extent, this._map.width, this._map.height, parsedData.data[xParsed][yParsed].dataPoint);

在最终绘制热图之前转换解析点 (parsedData.data[xParsed][yParsed].dataPoint)。

主要的问题是无论我给点传什么wkid(之前代码中的****),它都会解释为wkid:102000,所以我想事先自己做坐标转换。

我猜它应该是 esri.geometry.toScreenGeometry 任务来实际执行该转换,但是,正如我所说,它忽略了 wkid。

先谢谢了,

最佳答案

esri.geometry.toScreenGeometry 不是您要查找的内容 - 它将提供的几何图形转换为屏幕坐标(即像素),如果您尝试进行自定义,您可能会使用它叠加在 map 上,或控制与 map 本身重叠的 HTML 元素。

你要的函数是esri.geometry.webMercatorUtils.geographicToWebMercator ,它接受纬度/经度的几何图形并在 102100(或 3857)中返回它,因此它可以添加到标准的 ESRI JS map 中。来自文档:

require([
  "esri/geometry/webMercatorUtils", ... 
], function(webMercatorUtils, ... ) {
  var geom = webMercatorUtils.geographicToWebMercator(candidate.location);
  ...
});

(有趣的是,这与 SO 上的大多数坐标系问题相反,人们问“为什么我的点没有出现在 map 上”,当他们输入纬度/经度坐标时。感谢解决为什么它不出现' t 出现。:) )

关于javascript - 转换 ArcGis 地理坐标 Lat Long wkid : 4326 to Projected Coordinates wkid: 102000/3857,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348555/

相关文章:

javascript - 在 'div' 上禁用鼠标事件

objective-c - 如何解决CALayerInvalidGeometry',原因: 'CALayer position contains NaN: [nan nan]?

python - 非线性颜色图/热图

python - 如何在热图中注释和正确放置数字

javascript - "Operation is not supported"与 getCompulatedStyle

javascript - 使用 jQuery 和 php 打印为 html

javascript - TypeError : this. Canvas 未定义

arcgis - 设置/操作 SimpleFillSymbol 的颜色和线条颜色

python - 如何从每个键有多个值的字典中写入 csv 文件?

r - 使用 R 将四次核热图转换为大多边形