gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:13 27 4
gpt4 key购买 nike

当使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com