【问题标题】:Openlayers - Projection issues when getting latitude/longitude from a pointOpenlayers - 从一个点获取纬度/经度时的投影问题
【发布时间】:2011-08-01 15:51:01
【问题描述】:

我正在尝试使用 Openlayers 和 OSM 从可拖动标记中获取纬度/经度,但我找不到投影转换的良好设置,我做错了什么?

这里是代码:http://pastie.org/2300321(见 addMarker l140 & updateTargets l153)&还有一点点demo test

如果你提交一个地址,然后拖动标记,经度和纬度是错误的。我测试了几个不同的预测,但我不确定我必须使用什么......

【问题讨论】:

    标签: javascript openlayers openstreetmap


    【解决方案1】:

    我认为问题出在updateTargets 方法内部:

    var point = this.feature.geometry;
    var pixel = new OpenLayers.Pixel(point.x, point.y);
    var coord = this.map.getLonLatFromPixel(pixel).transform(
       new OpenLayers.Projection("EPSG:900913"),
       new OpenLayers.Projection("EPSG:4326")
    );
    

    this.feature.geometry 已经在 lon/lat 坐标中指定,而不是在像素中。所以我建议你跳过第二行,直接在几何对象上进行从 OpenStreetMap 投影到 lon/lat 的转换:

    var coord = this.feature.geometry.transform(
       new OpenLayers.Projection("EPSG:900913"),
       new OpenLayers.Projection("EPSG:4326")
    );
    

    【讨论】:

    • 是的,它有效 :) 我必须在获得坐标后重新转换投影才能重新拖动标记,但现在很好,非常感谢 ;)
    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 2019-11-05
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2020-08-30
    • 2020-01-27
    • 2021-04-16
    相关资源
    最近更新 更多