javascript - 无法使用 openlayers 3 将标记放置在正确的坐标处

标签 javascript openstreetmap openlayers-3

我在 openlayers 3 上工作,想实现一个搜索功能,它获取地点名称并在 map 上放置标记。我能够获得坐标,但是当我想在 map 上添加它的标记时,我总是得到不同的位置。输入地点的标记未放置在 map 的实际坐标上。

这是我一直在研究的代码:

function addmarker(lat, long, pointerimgsrc){

    var iconFeature = new ol.Feature({      
        geometry: new ol.geom.Point(ol.proj.transform([lat, long], 'EPSG:4326', 'EPSG:3857')),
        name: 'NULL'
        });


    var iconStyle = new ol.style.Style({
        image: new ol.style.Icon(({
        anchor: [0.5, 46],
        anchorXUnits: 'fraction',
        anchorYUnits: 'pixels',
        opacity: 0.75,
        //src: 'data/icon.png'
        src: pointerimgsrc
        }))
    });

    iconFeature.setStyle(iconStyle);

    vectorSource = new ol.source.Vector({
        features: [iconFeature]
    });

    vectorLayer = new ol.layer.Vector({
        source: vectorSource
    });

    map.addLayer(vectorLayer);

}// END addmarkerr()

我希望我已经清楚地解释了我的问题,期待解决方案。非常感谢您的时间和支持。

最佳答案

EPSG:4326 坐标顺序 lon, lat 不是 lat, lon。因此,您应该更改执行 EPSG:4326 到 EPSG:3857 转换的行。

ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857')

关于javascript - 无法使用 openlayers 3 将标记放置在正确的坐标处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890583/

相关文章:

javascript - 如何在自定义 css 文件之后加载原始文件时覆盖 CSS !important 属性

javascript - 我可以根据 <span> 的宽度更改 <span> 中的文本内容吗?

mobile - 从 OpenStreetMap 获取速度限制

android - 如何使用 Osmdroid 库在两个坐标之间绘制曲线

sql - 如何使postgresql结果唯一

javascript - Openlayers 3 + GeoJson 选择功能

javascript - 无法将函数作为属性 javascript

javascript - 在 Html 5 验证触发事件之前?

javascript - 如何解决 "Uncaught SyntaxError: Unexpected token <"错误

javascript - 在 OpenLayers 3 中使用 wfs-t?