- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当使用 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/
当使用 JS ArcGis API 时,是否可以像这样从纬度和经度在 ArcGis 中创建一个点 var testPoint = new Point(-98, 38); 或者这个 var testPo
我是一名优秀的程序员,十分优秀!