通过前面几篇文章的介绍后,对Openlayers
的基本用法都有所了解了,从这篇开始主要来介绍API
的使用,介绍完API
后再进行源码解析。API
按功能来分类,大概可以分成如下几类:
-
Map
Openlayers
的核心组件,包含图层、交互事件、UI控制元素等。 - View 视图管理器,主要用来管理地图视图,分辨率或旋转,中心、投影、分辨率、缩放级别等。
-
Layers 图层管理类,用来管理图层信息。主要包括
Tile
,Image
,Vector
,VectorTile
等图层。 -
Controls
UI
控制器,主要包括放大缩小控制、logo、属性等。 - Interactions 交互操作,包括常用的拖拽、修改、绘制等交互操作。
-
Sources and formats 图层数据来源和格式转化,常用的图层数据来源包括
Tile sources
,Image sources
,Vector sources
,Vector tile sources
等。 -
Projections投影坐标系转换相关的操作,默认的投影坐标系统为
EPSG:3857
。 - Observable objects观察对象变化,源码中运用了很多的观察者模式。
-
Other components其它组件。
按照代码文件夹可以分为ol
,ol.control
,ol.events
,ol.format
,ol.format.filer
,ol.geom
,ol.interaction
,ol.layer
,ol.proj
,ol.render
,ol.render.canvas
,ol.render.webgl
,ol.source
,ol.structs
,ol.style
,ol.tilegrid
,ol.webgl
。
ol
-
Map
OpenLayers
的核心组件,用于地图渲染,包括地图视图,一个或更多的图层,必须包含在一个元素容器中。
-
array
扩展数组,提供了一些排序、查找等方法。
-
AssertionError
断言失败时引发的错误对象。这是一个ECMA-262错误。
-
Collection
JS数组的扩展,添加了方便操作的方法,添加或删除时将触事件。但要注意,数据中的对象变更时将不会触发事件。
-
Collection.CollectionEvent
Collection
数组相关事件管理。
-
color
用短数组表示颜色。
-
colorlike
CanvasRenderingContext2D.fillStyle
使用的颜色类型。
-
control
用于设置地图上的ui组件。
-
coordinate
坐标相关。
-
easing
动画相关,用于设置地图的动画。
-
events
管理事件相关的key
-
extent
设置地图当前的范围
-
Feature
用于具有几何图形和其它地理要素的矢量对象,类似于GeoJSON
等矢量文件格式的要素。
-
featureloader
要素加载处理类。
-
Geolocation
HTML5
中的定位功能,用于获取用户当前的坐标。
-
has
一个用于判断浏览器类型的工具集。
-
Image
自定义的一个图片对象ImageWrapper
-
ImageTile
图片切片,继承于Tile
-
interaction
地图交互相关
-
Kinetic
用于实现地图的运动惯性。
-
loadingstrategy
策略函数,用于加载所有功能的一个请求。
-
MapBrowserEvent
地图浏览器相关的事件,继承于MapEvent
-
MapEvent
地图相关事件管理器。
-
Object
抽象基类。通常用于创建子类,不能用于实例化,该类继承自Observable
。
-
Object.ObjectEvent
事件对象,继承于Event
-
Observable
抽象基类。通常用于创建子类,不能用于实例化,用于观察对象和事件的变化。继承自EventTarget
。
-
Overlay
添加html
元素到地图上进行展示。跟control
的区别就是control
是固定定准,而Overlay
是基于坐标点添加的,可以随地图移动的。
-
OverlayPositioning
Overlay
位置相关。
-
pixel
包含两个元素的数组,表示一个像素。
-
proj
投影相关的方法全在该类下边。
-
render
地图渲染器。
-
size
用一个数组来表示大小,如[width,height]
。
-
sphere
获取长度,获取面试相关的方法在该js
文件下。
-
Tile
切片的基类,继承自EventTarget
。
-
tilecoord
由X
,Y
,Z
组成的一个数组,表示一个切片的位置。
-
tilegrid
切片方格。
-
TileState
切片的状态,包括IDLE
LOADING
LOADED
ERROR
EMPTY
-
transform
二维变换矩阵数组。
-
util
工具类。
-
VectorTile
矢量切片,继承自Tile
。
-
View
地图上的一个二维视图。
-
webgl
webgl
相关的方法。
-
xml
xml
解析器
ol.control
-
Attribution
用于控制是否显示图层数据来源的相关属性,该控制器是默认包含在地图中的,默认显示在地图的右下角,通过.ol-attribution
选择器可以修改样式。
-
Control
用于控制显示在地图上创建的DOM元素组件,默认是添加在ol-overlaycontainer-stopevent
容器上的,也可以添加在其它外部元素上。
-
FullScreen
设置地图全屏。
-
MousePosition
显示鼠标光标处的二维坐标值,默认是显示在地图的右上角,通过.ol-mouse-position
属性可以修改css值。
-
OverviewMap
创建一个缩略图的地图进行预览,有些人称之为鹰眼。
-
Rotate
添加一个按钮,点击后,将旋转的地图重置到0底的状态。
-
ScaleLine
显示比例尺控件。
-
Zoom
显示放大缩小按钮
-
ZoomSlider
显示放大缩小的比例尽控件。
-
ZoomToExtent
显示缩放到合力范围的按钮。
ol.events
-
Event
事件相关的封装类。
-
Target
事件目标对象,继承自Disposable
。
ol.format
-
EsriJSON
用于读取和写入EsriJSON
格式的数据。继承自JSONFeature
。
-
FeatureFormat
抽象基类。通常用于创建子类,不能用于实例化。
-
filter
格式化数据的过滤器。
-
GeoJSON
用于读取和写入GeoJSON
格式的数据。继承自JSONFeature
。
-
GML
用于读取和写入GML
格式的数据。
-
GML2
用于读取和写入GML
格式的数据。继承自GMLBase
。
-
GML3
用于读取和写入GML
格式的数据。继承自GMLBase
。
-
GML32
用于读取和写入GML
格式的数据。继承自GML3
。
-
GPX
用于读取和写入GPX
格式的数据。继承自XMLFeature
。
-
IGC
加载*.igc
格式的文件,继承自TextFeature
。
-
IIIFInfo
将IIIF
图像数据转换成IIIF
切片数据。
-
JSONFeature
抽象基类。通常用于创建子类,不能用于实例化。继承自FeatureFormat
-
KML
用于读取和写入KML
格式的数据。继承自XMLFeature
-
MVT
用于读取和写入Mapbox MVT
格式的数据。继承自FeatureFormat
-
OSMXML
用于读取和写入OSMXML
格式的数据。继承自XMLFeature
-
Polyline
用于读取和写入文本线条数据。继承自TextFeature
-
TextFeature
抽象基类。通常用于创建子类,不能用于实例化。继承自FeatureFormat
-
TopoJSON
用于读取和写入TopoJSON
格式的数据。继承自JSONFeature
。
-
WFS
用于读取和写入WFS
格式的数据。继承自XMLFeature
。
-
WKT
用于读取和写入WellKnownText
格式的数据。继承自TextFeature
。
-
WMSCapabilities
用于读取WMS
格式的数据。继承自XMLFeature
。
-
WMSGetFeatureInfo
获取WMS
要素信息。
-
WMTSCapabilities
用于读取WMTS
格式的数据。继承自XMLFeature
。
-
XML
读取XML数据的通用格式
-
XMLFeature
抽象基类。通常用于创建子类,不能用于实例化。
ol.format.filer
-
Bbox
固定边界相交的数据。继承自Filter
。
-
Contains
包含在几何体类,继承自Spatial
。
-
During
比较运算符,继承自Comparison
。
-
EqualTo
比较运算,判断相等。继承自ComparisonBinary
-
GreaterThan
比较运算,判断大于的数据。继承自ComparisonBinary
-
LessThanOrEqualTo
比较运算,判断大于等于的数据。继承自ComparisonBinary
-
Not
比较运算,不满足条件的数据。继承自Filter
-
NotEqualTo
比较运算,判断不相等的数据。继承自ComparisonBinary
-
Or
比较运算,继承自LogicalNary
-
Within
比较运算,在范围内。继承自Spatial
。
ol.geom
-
Circle
圆形几何体,继承自SimpleGeometry
-
Geometry
抽象基类。通常用于创建子类,不能用于实例化。继承自BaseObject
-
GeometryCollection
用于存储几何体的数组,继承自Geometry
。
-
LinearRing
线条几何体,继承自SimpleGeometry
-
LineString
线条几何体,继承自SimpleGeometry
-
MultiLineString
折线几何体,继承自SimpleGeometry
-
MultiPoint
多点几何体,继承自SimpleGeometry
-
MultiPolygon
多个点的多边形几何体,继承自SimpleGeometry
-
Point
单个点的几何体,继承自SimpleGeometry
-
Polygon
多边形几何体,继承自SimpleGeometry
-
SimpleGeometry
抽象基类。通常用于创建子类,不能用于实例化。继承自Geometry
ol.interaction
-
DoubleClickZoom
双击放大的操作,继承自Interaction
。
-
DragAndDrop
拖拽操作,继承自Interaction
。
-
DragBox
允许用户通过在地图上单击并拖动来绘制矢量框,继承自PointerInteraction
。
-
DragPan
允许用户通过拖动地图来平移地图,继承自PointerInteraction
。
-
DragRotate
允许用户通过单击并拖动地图来旋转地图,继承自PointerInteraction
。
-
DragRotateAndZoom
允许用户通过单击并拖动地图来旋转地图和缩放地图,继承自`PointerInteraction
-
DragZoom
允许用户通过单击并拖动地图来缩放地图,继承自DragBox
。
-
Draw
绘制几何图形,继承自PointerInteraction
。
-
Extent
允许用户通过在地图上单击并拖动来绘制矢量框。,继承自PointerInteraction
。
-
Interaction
抽象类,用于创建子类,继承自BaseObject
。
-
KeyboardPan
通过按键来移动地图,继承自Interaction
。
-
KeyboardZoom
通过按键来缩放地图,继承自Interaction
。
-
Modify
允许修改要素,继承自PointerInteraction
。
-
MouseWheelZoom
鼠标滚轮事件,允许滑动鼠标滚轮来对地图进行缩放,继承自Interaction
。
-
PinchRotate
手势旋转地图,继承自PointerInteraction
。
-
PinchZoom
手势缩放地图,继承自PointerInteraction
。
-
Select
选择矢量数据的交互事件,继承自Interaction
。
-
Snap
捕捉事件,继承自PointerInteraction
。
-
Translate
移动事件,继承自PointerInteraction
。
- ol.layer
-
BaseLayer
图层抽象类,用于创建子类,继承自BaseObject
。
-
BaseImageLayer
图片图层基类,继承自Layer
-
BaseTileLayer
切片图层基类,继承自Layer
-
BaseVectorLayer
矢量图层基类,继承自Layer
-
Graticule
渲染坐标线网格,继承自VectorLayer
。
-
LayerGroup
图层组,继承自BaseLayer
。
-
Heatmap
热力图图层,继承自VectorLayer
。
-
ImageLayer
图片图层,继承自BaseImageLayer
。
-
Layer
派生所有层类型的基类,继承自BaseLayer
。
-
TileLayer
切片图层,继承自BaseTileLayer
。
-
VectorLayer
矢量图层,继承自BaseVectorLayer
。
-
VectorImageLayer
矢量图片图层,继承自BaseVectorLayer
。
-
VectorTileLayer
矢量切片图层,继承自BaseVectorLayer
。
ol.proj
-### proj4
投影转换函数
-
Projection
投影定义类,用于创建投影对象。
-#ol.render
-
canvas
canvas
渲染相关的函数和变量。
-
RenderEvent
渲染事件,继承自Event
-
RenderFeature
要素渲染类。
-
VectorContext
绘制几何图形的上下文。
ol.render.canvas
-
CanvasImmediateRenderer
将几何图形绘制到html
的画布上,继承自VectorContext
。
-
ImageLayer
用canvas
渲染图片图层。
-
TileLayer
用canvas
渲染切片图层。
-
VectorImageLayer
用canvas
渲染矢量图片图层。
-
VectorLayer
用canvas
渲染矢量图层。
-
VectorTileLayer
用canvas
渲染矢量切片图层。
-
Composite
canvas
渲染器
ol.render.webgl
-
WebGLLayerRenderer
WebGL
图层,继承自LayerRenderer
-
WebGLPointsLayerRenderer
使用WebGL
图层加载点坐标。继承自WebGLLayerRenderer
ol.source
-
BingMaps
Bing
地图数据,继承自TileImage
。
-
CartoDB
CartoDB
地图数据,继承自XYZ
。
-
Cluster
矢量数据,继承自VectorSource
。
-
IIIF
IIIF
图片数据,继承自TileImage
。
-
Image
图片数据基类,用于创建子类,继承自Source
。
-
Image.ImageSourceEvent
图片数据事件管理器,继承自Event
。
-
ImageArcGISRest
ArcGIS Rest
服务数据,继承自ImageSource
。
-
ImageCanvas
使用canvas
创建的图片数据,继承自ImageSource
。
-
ImageMapGuide
来自Mapguide
服务的数据,继承自ImageSource
。
-
ImageStatic
静态图片数据,继承自ImageSource
。
-### ImageWMS
WMS
服务的数据,继承自ImageSource
。
-
OSM
来自OpenStreetMap
切片服务的数据,继承自XYZ
。
-
Raster
删格数据,继承自ImageSource
。
-
Raster.RasterSourceEvent
删除数据事件管理类,继承自Event
。
-
Source
抽象类,用于创建子类,继承自BaseObject
。
-
Tile
切片数据,抽象类,用于创建子类,继承自Source
。
-
Tile.TileSourceEvent
切片数据事件管理类,继承自Event
。
-
TileArcGISRest
ArcGIS Rest
服务的切片数据,继承自TileImage
。
-
TileDebug
用于显示切片区域,方便调试,继承自Tile
。
-
TileImage
切片删格图片,继承自UrlTile
。
-
TileJSON
json
格式的切片数据,继承自TileImage
。
-
TileWMS
WMS
服务的切片数据,继承自TileImage
。
-
UrlTile
使用地址加载的切片数据,继承自TileSource
。
-
UTFGrid
从TileJSON格式加载的UTFGrid数据。,继承自TileSource
。
-
Vector
矢量数据,继承自Source
。
-
Vector.VectorSourceEvent
矢量数据事件管理器,继承自Event
。
-
VectorTile
矢量切片数据,继承自UrlTile
。
-
WMSServerType
WMS
服务类型,包括carmentaserver
,geoserver
,mapserver
,qgis
。
-
WMTS
WMTS
服务的数据,继承自TileImage
。
-
XYZ
使用X,Y,Z
坐标加载的地图数据,继承自TileImage
。
-
Zoomify
具有缩放的数据格式,继承自TileImage
。
ol.structs
-
LRUCache
实现缓存功能。
- ol.style
-
Circle
设置矢量图层的圆形样式,继承自RegularShape
。
-
Fill
设备填充样式。
-
Icon
设置图标样式,继承自ImageStyle
。
-
IconImageCache
设置图片缓存
-
ImageStyle
抽象类,用于创建子类,设置图片样式。
-
RegularShape
为矢量图形设置常规形状样式,继承自ImageStyle
。
-
Stroke
设置边框样式。
-
Style
矢量图形渲染样式的容器。
-
Text
设置矢量图形的文本样式。
ol.tilegrid
-
TileGrid
用于访问删格数据。
-
WMTS
为访问WMTS
切片图片服务器的数据源设置删格模式,继承自TileGrid
。
ol.webgl
-
Buffer
webgl
缓冲区。
-
Helper
对webgl API
的封装。
-
PostProcessingPass
用于处理自定义的着色器。
-
RenderTarget
是WebGLTexture
和WebGLFramebuffer
实例关联的包装器,简化了初始化和渲染绑定。
个人博客