Javascript 无法使用OpenLayers 3显示分划
这个问题与其说是OpenLayer问题,不如说是javascript问题。我想 该示例仅适用于我自己的WMS服务器: 在我的项目中,“map”对象设置在map.js文件中,加载在graticule.js文件之前的index.html中。它按预期显示地图Javascript 无法使用OpenLayers 3显示分划,javascript,openlayers-3,Javascript,Openlayers 3,这个问题与其说是OpenLayer问题,不如说是javascript问题。我想 该示例仅适用于我自己的WMS服务器: 在我的项目中,“map”对象设置在map.js文件中,加载在graticule.js文件之前的index.html中。它按预期显示地图 var map = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ],
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';
好了,现在有趣的部分是:
我可以看到十字线(所以map对象是ok的!),但是setMap(map)只是在调试控制台中抛出一个错误“TypeError:a is null”
我不是Javascript专家,所以这可能是一个相对愚蠢的原因
请帮帮我,我卡住了。问题解决了
我在view属性中使用了ol.proj.Projection,但我需要直接使用字符串投影代码:
var view = new ol.View({
center: center,
zoom: 6,
projection: 'EPSG:4326'
});
就在
gracile.setMap(map)
之前,执行控制台.log(map)
并检查控制台是否已加载。如果它在单独的文件中,那么它也可能不在范围内。您应该发布这两个文件。正如我所说,map对象在范围内,因为我可以更改光标。js包含了创建一个带有一个图层的OpenLayer地图的非常基本的代码片段。如果我记录map对象,我可以看到它的属性(以带有a、b、c、d变量的缩小形式,这是一个线索吗?)?因此,我们可以创建一个JSFIDLE并对其进行调试!你的地图视图在哪里?而且,它似乎对我很有效: