【问题标题】:Openlayers 3 set map view - passing variable valuesOpenlayers 3 设置地图视图 - 传递变量值
【发布时间】:2017-09-11 14:58:52
【问题描述】:

我有一个使用基于 Openlayers 3.18 的坐标缩放工具的应用程序 - 用户在表单中输入两个坐标值,单击提交按钮时,地图然后使用这些值将地图缩放到使用坐标的位置中心选项。

在 Openlayers 3.19 中,此工具已停止工作,地图只是挂起并冻结,而在控制台中没有给我一条错误消息。

以下是我正在使用的 javascript 代码,表单文本框中的 'coord-x' 和 'coord-y' div id。

我这样做有什么问题吗?如果我在下面的中心选项中手动输入坐标值,那么它可以正常工作,只是似乎没有将值正确地传递给 setView 函数。

//Zoom map on coordinate zoom button click
$("#coord-zoom-btn").click(function() {
    var x = document.getElementById('coord-x').value;
    var y = document.getElementById('coord-y').value;
    map.setView(new ol.View({
        projection: ol.proj.get('EPSG:27700'),
        resolutions: [28.0, 14.0, 7.0, 3.5, 1.75, 0.875, 0.4375, 0.21875, 0.109375],
        center: [x, y],
        resolution: 0.21875
    }));
});

【问题讨论】:

    标签: javascript jquery openlayers-3


    【解决方案1】:

    我发现我必须在变量周围包含 parseInt 以确保它们是整数(这在以前的版本中似乎不是问题)。

    所以...

    var x = parseInt(document.getElementById('coord-x').value);
    var y = parseInt(document.getElementById('coord-y').value);
    

    【讨论】:

      【解决方案2】:

      刚刚在另一个线程上解决了最新版本的问题。使用 parseFloat()。

      var x = parseFloat(document.getElementById('coord-x').value);
      var y = parseFloat(document.getElementById('coord-y').value);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-21
        相关资源
        最近更新 更多