0

我正在研究一个 GIS API,我正在从 OpenLayers 2 更改为 Openlayers 3。

我想使用我自己的类来实例化 ol.map,如下所示:

myMap.js

goog.inherits(myMap, ol.map);

索引.html

new myMap({
    layers: [{ ... }]
    ...
})

不幸的是,地图没有显示在浏览器中。什么都没发生。

我是否必须在 myMap init 中执行某些功能,例如在 OpenLayers 2 中?像“this.prototype.parent.initialize ...”这样的东西??

谢谢你。

若昂

编辑 1

这就是 ol.map 实例化的正常工作方式:http: //jsfiddle.net/joaorodr84/SrBWL/

这就是我希望它的工作方式,使用我自己的“myMap”类:http: //jsfiddle.net/joaorodr84/T2Bet/11/

4

2 回答 2

2

如果您不能(或不想)使用 ol-whitespace.js 和 goog 库,这里有一个替代解决方案:

Map = function (options){
    ol.Map.call(this, options);
};
Map.prototype = Object.create(ol.Map.prototype);

大号

于 2014-05-25T18:34:24.730 回答
1

该问题已通过使用 ol-whitespace.js 而不是 ol.js 解决,因为好的方法不会在压缩构建中导出。

此外,代码如下所示:

myMap = function(options) {
    goog.base(this, options);
};
goog.inherits(myMap, ol.Map);

有用!;)

于 2014-05-22T16:15:48.893 回答