如何初始化ol.地图使用我自己的类myMap(使用继承),在OpenLayers 3

How do I initialize the ol.map using my own class myMap (using inheritance), in OpenLayers 3?

本文关键字:继承 OpenLayers myMap 自己的 初始化 ol 地图 我自己      更新时间:2023-09-26

我正在开发一个GIS API,我正在从OpenLayers 2更改为OpenLayers 3。

我想实例化ol。使用我自己的类映射,像这样:

myMap.js

goog.inherits(myMap, ol.map);

index . html

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

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

我是否必须在myMap init中执行一些函数,就像在OpenLayers 2中一样?比如"this。prototype。parent。初始化……"? ?

谢谢。

若昂

编辑1

这是如何。Map实例化正常工作:http://jsfiddle.net/joaorodr84/SrBWL/

这就是我想要的工作方式,使用我自己的"myMap"类:http://jsfiddle.net/joaorodr84/T2Bet/11/

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

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

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

另外,代码看起来像这样:

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

它工作!div;)