UNPKG

openlayers

Version:

Build tools and sources for developing OpenLayers based mapping applications

35 lines (32 loc) 1.2 kB
goog.provide('ol.geom.flat.segments'); /** * This function calls `callback` for each segment of the flat coordinates * array. If the callback returns a truthy value the function returns that * value immediately. Otherwise the function returns `false`. * @param {Array.<number>} flatCoordinates Flat coordinates. * @param {number} offset Offset. * @param {number} end End. * @param {number} stride Stride. * @param {function(this: S, ol.Coordinate, ol.Coordinate): T} callback Function * called for each segment. * @param {S=} opt_this The object to be used as the value of 'this' * within callback. * @return {T|boolean} Value. * @template T,S */ ol.geom.flat.segments.forEach = function(flatCoordinates, offset, end, stride, callback, opt_this) { var point1 = [flatCoordinates[offset], flatCoordinates[offset + 1]]; var point2 = []; var ret; for (; (offset + stride) < end; offset += stride) { point2[0] = flatCoordinates[offset + stride]; point2[1] = flatCoordinates[offset + stride + 1]; ret = callback.call(opt_this, point1, point2); if (ret) { return ret; } point1[0] = point2[0]; point1[1] = point2[1]; } return false; };