转换ArcGis地理坐标长wkid: 4326投影坐标wkid: 102000/3857
Convert ArcGis Geographic Coordinates Lat Long wkid: 4326 to Projected Coordinates wkid: 102000/3857
当使用JS ArcGis API时,是否可以像这样在ArcGis中创建一个点
var testPoint = new Point(-98, 38);
或
var testPoint = new Point(-98, 38, new SpatialReference({ wkid: 4326 }));
并将其转换为不同的SR,以便其x和y自动更改?例如:102000/3857?
CONTEXT:(也许你可以找到一个解决方法)
我使用heatmap.js在ArcGis地图上绘制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
不是你要找的-它将提供的几何形状转换为屏幕坐标(即。像素),如果您试图在地图上进行自定义覆盖,或者控制与地图本身重叠的HTML元素,您可能会使用它。
你想要的函数是esri.geometry.webMercatorUtils.geographicToWebMercator
,它在lat/long中接受一个几何形状,并在102100(或3857)中返回它,这样它就可以被添加到一个标准的ESRI JS地图中。来自文档:
require([
"esri/geometry/webMercatorUtils", ...
], function(webMercatorUtils, ... ) {
var geom = webMercatorUtils.geographicToWebMercator(candidate.location);
...
});
(有趣的是,这与SO上的大多数坐标系统问题相反,在那里人们问"为什么我的点没有出现在地图上",当他们输入晚/长坐标时。找出了它不出现的原因,值得称赞。:)) 相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 如何在d3.js中返回路径的y坐标
- 在谷歌地图上获取事件的x,y坐标
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何在JS Leatflet绘图插件中获取圆的坐标
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- HTML5获取弧的坐标's结束
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- 获取用户位置并将坐标保存在数据库中
- fabric js多边形集合坐标
- 使用D3.js和GeoJson在地图上的某些坐标上设置一个小图像
- 如何创建一个谷歌地图地理坐标数组
- AngularJS-如何在mousemove上存储鼠标坐标
- 使用地理坐标,对更靠近用户的对象进行排序'的位置
- 在坐标上模拟点击坐标js/jQuery
- ChartJS v2:点击坐标的比例值(时间比例)
- 通过鼠标点击获取X和Y坐标(javascript)
- 转换ArcGis地理坐标长wkid: 4326投影坐标wkid: 102000/3857