2013-10-15 31 views
3

我已经通过使用绘图工具成功创建了一个esri.geometry.Geometry.Extent对象。在我的addToMap函数中,这是onDrawEnd事件的回调函数,我想提取框的四个角的纬度,经度。我将拉伸的xmin,xmax,ymin,ymax拉到了几何对象的我的wkid设置为4326处。基于我的理解有限,我认为x,y将在经过多长时间,但考虑到x的值是5550,我不认为这是正确的。我做错了什么或者我误解了什么?拉伸范围对象的经度和纬度

+0

你说得对,5550无效。但4326是WGS-84空间参考的代码,这意味着x,y应该是纬度/经度值。你是什​​么意思你“设置”到4326?在提取x,y值之前,你是否重新评估了该投影的范围? – progrmr

+0

@progrmr在我的原始代码中,我将所有内容都设置为应该是4326的默认值,并且从不在任何地方设置spatialReference。在另一个测试中,我尝试将其设置在我的地图声明中。在将几何图形重新导入到addMap后,我也试图设置spatialReference,但这种方法并不奏效。我看的越多,我认为它一定是esri javascript中的某种错误。我也看到了奇怪的行为,当我在页面上最小化或最大化萤火虫时,每一个返回的几何图形似乎都是我所期望的,正确的纬度和经度。 – tenniguy

+0

范围本身(ext.spatialReference.wkid)和底层映射的wkids是什么?我认为地图默认为102100(WebMercator),这将使5500更明智(取决于你在世界上的哪个地方......英格兰? – Juffy

回答

1

您的范围可能在Web墨卡托空间参考中。检查您的扩展区对象的spatialReference.wkid属性。如果它是102100或3857,那么它是Web墨卡托。在这种情况下,使用esri.geometry.webMercatorToGeographic function转换为地理坐标(即经度和纬度)非常容易。

如果您的范围对象不在Web Mercator空间参考中,则必须使用GeometryService将几何图形投影到经度和纬度(例如WGS1984,其wkid为4326)。 Project a point sample显示了这是如何完成的。