Openlayers 3设置地图视图 - 传递变量值

时间:2017-09-11 14:58:53

标签: javascript jquery openlayers-3

我有一个使用基于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
    }));
});

2 个答案:

答案 0 :(得分:0)

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

因此...

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

答案 1 :(得分:0)

这已经在另一个线程上解决了最新版本。使用parseFloat()。

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