簡體   English   中英

如何在OpenLayers 3中使用我自己的類myMap(使用繼承)來初始化ol.map?

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

我正在使用GIS API,並且正在從OpenLayers 2更改為Openlayers 3。

我想使用我自己的類實例化ol.map,如下所示:

myMap.js

goog.inherits(myMap, ol.map);

index.html

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

不幸的是,地圖沒有顯示在瀏覽器中。 什么都沒發生。

是否需要在myMap初始化中執行某些功能,例如在OpenLayers 2中執行? 諸如“ this.prototype.parent.initialize ...”之類的東西?

謝謝。

若昂

編輯1

ol.map實例化通常是這樣工作的: http : //jsfiddle.net/joaorodr84/SrBWL/

這就是我希望使用我自己的“ myMap”類進行工作的方式: http : //jsfiddle.net/joaorodr84/T2Bet/11/

如果您不能(或不想)使用ol-whitespace.js和goog庫,則可以使用以下替代解決方案:

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

大號

通過使用ol-whitespace.js而不是ol.js解決了該問題,因為好的方法未在壓縮版本中導出。

此外,代碼如下所示:

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

有用! ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM