无法使用OpenLayers 3显示刻度

时间:2017-02-08 17:37:52

标签: javascript openlayers-3

这个问题比OpenLayer问题更像是一个javascript问题。我想......

该示例只适用于我自己的WMS服务器:http://openlayers.org/en/v3.0.0/examples/graticule.html

在我的项目中,地图' object在map.js文件中设置,在graticule.js文件之前加载到index.html中。它按预期显示地图。

var map = new ol.Map({
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM()
        })
    ],
    target: 'map',
});

现在我在graticule.js中的非常简单的代码

"use Strict";
var graticule = new ol.Graticule();
graticule.setMap(map);
map.getViewPort().style.cursor = 'crosshair';

好了,现在有趣的部分: 我可以看到十字准线(因此地图对象没问题!),但是setMap(map)只是抛出错误" TypeError:a为null"在调试控制台中。

我不是Javascript专家,所以这可能是一个相对愚蠢的原因。

请帮助,我被卡住了。

1 个答案:

答案 0 :(得分:0)

问题解决了。

我在view属性中使用了ol.proj.Projection,但我需要直接使用字符串投影代码:

var view = new ol.View({
    center: center,
    zoom: 6,
    projection: 'EPSG:4326'
});