当前位置: 首页 > news >正文

源码分析之Openlayers中的Collection类

概述

Map类中,有一种高频出现的类Collection(即集合),比如Map类中interactioncontrolsoverlay的定义初始化和一些操作调用都和Collection有关。本文主要介绍 Openlayers 中Collection类的实现以及Collection类的事件机制。

源码剖析

Collection

Collection类本质上就是对标准Javascript数组进行了一层封装,添加了一些方法。当对集合进行添加或者移除数组项时,会触发一个事件,比如上面示例中的CollectionEventType.ADDCollectionEventType.REMOVE操作被监听触发后,就会执行后面的回调函数。

其实现如下:

class Collection extends BaseObject {constructor(array, options) {options = options || {};this.unique_ = !!options.unique;this.array_ = array ? array : [];}clear() {while (this.getLength() > 0) {this.pop();}}extend(arr) {for (let i = 0, ii = arr.length; i < ii; ++i) {this.push(arr[i]);}return this;}forEach(f) {const array = this.array_;for (let i = 0, ii = array.length; i < ii; ++i) {f(array[i], i, array);}}getArray() {return this.array_;}item(index) {return this.array_[index];}getLength() {return this.get(Property.LENGTH);}insertAt(index, elem) {if (index < 0 || index > this.getLength(
http://www.lryc.cn/news/495977.html

相关文章:

  • Spring AI 框架介绍
  • 【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
  • Advanced Macro Techniques in C/C++: `#`, `##`, and Variadic Macros
  • Maven、JAVAWeb、Servlet
  • 分布式资源调度——yarn 概述(资源调度基本架构和高可用的实现)
  • 网页开发的http基础知识
  • 学习方法的进一步迭代————4
  • 数据科学家创建识别假图像的工具
  • 使用 GORM 与 MySQL 数据库进行交互来实现增删改查(CRUD)操作
  • Day2 生信新手笔记: Linux基础
  • 001集—— 创建一个WPF项目 ——WPF应用程序入门 C#
  • 【C++】1___引用
  • 如何通过 JWT 来解决登录认证问题
  • 高效集成:将聚水潭数据导入MySQL的实战案例
  • Jenkins-基于 JNLP协议的 Java Web 启动代理
  • Qt数据库操作-QSqlQueryModel 的使用
  • C语言编程1.21波兰国旗问题
  • 如何利用微型5G网关为智慧无人矿车提供精确定位
  • 使用docker-compese部署SFTPGo详解
  • Ajax基础总结(思维导图+二维表)
  • Spring Task和WebSocket使用
  • 微信小程序 本地调试和vconsole可以 但在体验上页面不请求数据
  • QT:将QTableWidget内容写入txt文件中
  • 前端面试题(六)
  • 「Mac畅玩鸿蒙与硬件35」UI互动应用篇12 - 简易日历
  • Leetcode581. 最短无序连续子数组(HOT100)
  • HTML前端开发-- Flex布局详解及实战
  • 基于JWT跨语言开发分布式业务系统的挑战与实践:多语言协作的最佳方案
  • 二分法篇——于上下边界的扭转压缩间,窥见正解辉映之光(2)
  • 什么是 Kata Containers?