【问题标题】:Pull latitude and longitude out of Extent object将经纬度拉出 Extent 对象
【发布时间】:2013-10-23 17:39:46
【问题描述】:

我已经通过使用绘图工具成功创建了一个 esri.geometry.Geometry.Extent 对象。在作为 onDrawEnd 事件回调的 addToMap 函数中,我想提取框四个角的纬度、经度。我为 Geometry 对象设置了 wkid 为 4326 的扩展的 xmin,xmax,ymin,ymax。根据我有限的理解,我假设 x,y 会在 lat long 但考虑到 x 的值是 5550 我不认为这是正确的。我做错了什么或者我误解了什么?

【问题讨论】:

  • 你说得对,5550 无效。但是 4326 是 WGS-84 空间参考的代码,这意味着 x,y 应该是纬度/经度值。你是什​​么意思你“设置” wkid 为4326?在提取 x,y 值之前,您是否将范围重新投影到该投影?
  • @progrmr 在我的原始代码中,我将所有内容都保留为默认值,应该是 4326,并且从未在任何地方设置空间参考。在另一个测试中,我尝试在我的地图声明中设置它。在将几何图形重新放入 addMap 后,我也确实尝试设置了 spatialReference,但这也不起作用。我越看越觉得它一定是 esri javascript 中的某种错误。我还看到奇怪的行为,当我在页面上最小化或最大化萤火虫时,我返回的每个几何图形似乎都符合我的预期,即正确的纬度和经度。
  • 范围本身(ext.spatialReference.wkid)和底层地图的wkids是什么?我认为地图默认为 102100(WebMercator),这会使 5500 更合理(取决于您在世界的哪个位置......英格兰?
  • 默认完全取决于您首先添加到地图的地图服务。如果它是 ArcGIS Online 服务,则可能是 Web Mercator(WKID 102100 或 3857)。正如@Juffy 暗示的那样,Web Mercator 中的 5500 位于本初子午线以东 5.5 公里处。
  • 在我的 addToMap 函数中,当我输出到控制台时,从进入它的范围开始的 spatialReference.wkid 设置为 4326。不知道当它似乎设置时如何获得 5500 的 x 值正确。

标签: javascript arcgis esri


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2015-06-10
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多