什么是ol.control.Control.call意味着什么?

时间:2017-01-13 04:06:05

标签: javascript openlayers openlayers-3

以下代码片段(ol.control.Control.call)是什么意思?我正在使用openlayer 3在图层上创建一些按钮。

        var options = opt_options || {};
        var element = document.createElement('div');
        element.className = 'ol-unselectable ol-mycontrol';
        element.appendChild(drawPolygon);            

        ol.control.Control.call(this, {
            element: element,
            target: options.target
        });

1 个答案:

答案 0 :(得分:1)

您的代码段不完整。应该是这样的:

parts => ((0 1) (1 2) (2 170) (170 250) (250 255) (255 218) (218 221) (221 8) (8 9))

idx-labelled => ([0 false] [1 false] [2 false] [3 false] [4 false] [5 true] [6 false] [7 false] [8 false])

idx-that-match => ([5 true])

result => 5

(find-pattern [255 218] data) => 5

var MyCustomControl = function(opt_options) { var options = opt_options || {}; var element = document.createElement('div'); element.className = 'ol-unselectable ol-mycontrol'; element.appendChild(drawPolygon); ol.control.Control.call(this, { element: element, target: options.target }); }; ol.inherits(MyCustomControl, ol.control.Control); 是自定义控件的构造函数,它必须继承ol基本控件原型,即MyCustomControl。要确保自定义控件继承ol基本控件原型,必须在自定义控件的构造函数中调用ol.control.Control的构造函数,并将其应用于自定义控件。在javascript中,您使用ol.control.Control方法执行此操作,将call(表示您正在构建的自定义控件)作为第一个参数传递,并将一些其他参数传递给this构造函数。< / p>

之后,在ol中,您致电ol.control.Control以使自定义控件继承ol.inherits方法(http://openlayers.org/en/latest/apidoc/ol.html#.inherits)。