OpenLayers体系结构
由于OpenLayers是采用JavaScript实现的,不存在包的概念,但是它可以通过命名空间来实现类似包的功能。另外,JavaScript不存在继承的感念,也不存在私有、公有、保护等概念,OpenLayers中所谓的继承其实就是将基类中的所有属性和方法复制到子类中去。OpenLayers的命名空间如下:
一、OpenLayers命名空间:
如上图所示,OpenLayers是整个webgis系统的最外层命名空间,所有的地理信息系统相关web程序都在此命名空间下,在此命名空间下又创建了其他的命名空间来管理相关功能的程序。在这个命名空间下定义了一些基础类和基类来构建整个框架。
1、class OpenLayers.Map
Map类实例化的对象为地图容器,可以向地图容器里面添加图层和控件。
构造函数
构造函数 | 描述 |
Map( string divId, Object options ) | 创建地图容器对象。 string divId:页面的div元素ID, Object options:地图容器的相关属性。 |
属性
属性 | 类型 | 描述 |
events | OpenLayers.Events | 地图上能响应的事件集合 |
layers | OpenLayers.Layer | 地图上的图层集合 |
方法
方法 | 返回值 | 描述 |
getTileSize() | OpenLayers.Size | 返回瓦片尺寸 |
addLayer(Layer layer) | none | 向地图容器中添加层,Layer:OpenLayers.Layer |
addLayers(Layer []) | none | 向地图容器中批量增加层,Layer:OpenLayers.Layer |
removeLayer( Layer layer, Boolean setNewBaseLayer ) | none | 移除层。 Layer:OpenLayers.Layer,删除的层。如果setNewBaseLayer为true从新设置新的baseLayer,默认为true |
setBaseLayer(Layer layer) | none | 设置新的baseLayer,隐藏原来的baseLayer,Layer:OpenLayers.Layer |
addControl(Control c) | none | 向地图容器中添加控件,Control:OpenLayers.Control |
removeControl(Control c) | none | 从地图容器中移除控件,Control:OpenLayers.Control |
addPopup( Popup pp, Boolean closeOther ) | none | 新增弹出窗口。参数:pp为弹出窗口, closeOther为是否排它即移除其它弹出窗口 。Popup:OpenLayers.Popup. |
removePopup(Popup pp) | none | 移除弹出窗口,Popup:OpenLayers.Popup |
getZoom() | ajax实例里面的函数int | 获取地图当前缩放级别 |
panTo(LonLat ll) | none | 地图中心按指定的方式平滑到新的坐标, LonLat:OpenLayers.LonLat |
setCenter( LonLat ll, Int zoom, Boolean drag, Boolean zoomChange ) | none | 重新设置地图中心,缩放比列。 LonLat ll:设置地图中心的经纬度,LonLat:OpenLayers.LonLat Int zoom:缩放级别 Boolean drag:是否触发movestart/end事件 Boolean zoomChange:是否触发zoomchange事件 |
getProjection() | string | 返回投影对象代码,3.0版本将改成返回投影对象 |
getNumZoomLevels() | Int | 返回baseLayer的缩放级别数 |
zoomTo(int zoom) | none | 改变地图的缩放级别 |
zoomIn() | none | 放大一个级别 |
zoomOut() | none | 缩小一个级别 |
zoomToScale(float scale) | None | 缩放到给定的尺寸 |
getLonLatFromViewPortPx(Pixel p) | OpenLayers.LonLat | 视口坐标转换地图坐标,Pixel:OpenLayers.Pixel |
getViewPortPxFromLonLat(LonLat ll) | OpenLayers.Pixel | 地图坐标转换成视口坐标,LonLat:OpenLayers.LonLat |
getLonLatFromPixel(Pixel p) | OpenLayers.LonLat | 像素点转经纬度,Pixel:OpenLayers.Pixel |
getPixelFromLonLat(LonLat ll) | OpenLayers.Pixel | 经纬度转像素点,LonLat:OpenLayers.LonLat |
getViewPortPxFromLayerPx(Pixel p) | OpenLayers.Pixel | 层中的坐标转视口坐标,Pixel:OpenLayers.Pixel |
getLayerPxFromViewPortPx(Pixel p) | OpenLayers.Pixel | 视口坐标转层坐标,Pixel:OpenLayers.Pixel |
getLonLatFromLayerPx(Pixel p) | OpenLayers.LonLat | 层坐标转经纬度,Pixel:OpenLayers.Pixel |
getLayerPxFromLonLat(LonLat ll) | OpenLayers.Pixel | 经纬度转层坐标 |
2、class OpenLayers.Marker
OpenLayers命名空间下的Marker类可以被实例化为marker对象,用于标注地图上的位置,marker对象是由LonLat对象和Icon对象组合而成的。markers一般被添加到一个叫做OpenLayers.Layer.Markers的特殊图层中。
需要注意的是,如果你在一个marker中使用了一个icon,也就是说,你不能在其他的marker中在使用它——一旦你使用了这个icon,你应该clone()这个icon然后在另外的marker中使用这个icon。
构造函数
构造函数 | 描述 |
Marker( Icon icon, LonLat ll ) | 创建一个Marker点。 Icon icon:点的图标,Icon:OpenLayers.Icon LonLat ll:点的位置,LonLat:OpenLayers.LonLat. 如果不设置icon将给出一个默认的图标。 |
3、class OpenLayers.Popup
Popup类实例化一个弹出窗口,通常被添加到地图容器中。
构造函数
构造函数 | 描述 |
Popup( string id, LonLat ll, Size size, String contentHTML, Boolean closeBox, Function closeBoxCallback ) | 创建一个弹出窗口。 String id:为该窗口创建一个唯一的标识符, LonLat ll:该窗口在地图上的位置,LonLat:OpenLayers.LonLat Size size:窗口的大小, String contentHTML:窗口中的HTML文本信息, Boolean closeBox:是否显示关闭按钮, Function closeBoxCallback:点击关闭按钮时调用的回调函数 |
方法
方法 | 返回值 | 描述 |
setOpacity(float opacity) | none | 设置该窗口的透明度,0.0到1.0之间 |
setSize(Size size) | none | 设置窗口大小,Size:OpenLayers.Size |
setBackgroundColor(Color color) | none | 设置窗口背景颜 |
setContentHTML(string content) | none | 设置窗口显示内容 |
4、class OpenLayers.Icon
Icon为图标类,图标指定用来在地图上显示 Marker 的图像。
构造函数
构造函数 | 描述 |
Icon( URL img, Size size, Pixel offset, Function calculateOffset ) | 创建OpenLayers.Icon对象。 URL img:图标的图片地址, Size size:图标大小,Size:OpenLayers.Size Pixel offset:图片地位的参考点, Function calculateOffset:提供一个函数用于计算参考点 |
5、class OpenLayers.Format
各种format类的基类,它的子类实现reading/writing方法。
构造函数
构造函数 | 描述 |
initialize(options) | 构造函数,把参数付给对象的属性。 |
属性
属性 | 类型 | 描述 |
options | Object | 传给构造函数的一系列参数 |
externalProjection | OpenLayers.Projection | |
internalProjection | OpenLayers.Projection | |
方法
方法 | 返回值 | 描述 |
read(string data) | Depends on subclass | 读取一个字符串,根据不同的子类返回不同的类型 |
write(object obj) | string | 传入一个对象返回关于个对象的字符串 |
6、OpenLayers.Request
OpenLayers.Request命名空间下包含两个常用的AJAX方法,通过这两个方法可以方便的实现XMLHttpRequests功能。
方法
方法 | 返回值 | 描述 |
OpenLayers.Request.GET({ url:urlString, callback:funDeal }) | none | 该方法发送一个HTTP GET请求。整个GET方法的参数为一个对象,urlString为请求的地址和参数,funDeal为回调函数,用于处理返回的数据。 |
OpenLayers.Request.POST({ url:urlString, callback:funDeal, data:data }) | none | 该方法发送一个HTTP POST请求。整个POST方法的参数为一个对象,urlString为接收数据的地址,funDeal为回调函数用于处理返回的数据;data为发送到服务器端的数据。 |
7、class OpenLayers.Feature
Feature是几何信息和属性的结合体,在OpenLayers.Feauter中主要是包括一个标记和经纬度。
构造函数
构造函数 | 描述 |
initialize( layer, lonlat, data ) | 构造函数,把参数付给对象的属性。 layer:添加feature的层, lonlat:定位该feature的经纬度, data:其他参数 |
属性
属性 | 类型 | 描述 |
layer | OpenLayers.Layer | 添加该feature的图层 |
lonlat | OpenLayers.Lonlat | 定位该feature的经纬度 |
data | Objec | 存放其他数据的对象 |
marker | OpenLayers.Marker | 标记该feature的marker |
popup | OpenLayers.Popup | 装载该feature信息的弹出信息窗口 |
方法
方法 | 返回值 | 描述 |
onScreen () | Boolean | 该feature当前是否在屏幕的可视区域内 |
createMarker() | OpenLayers.Marker | 为对象创建一个marker |
destroyMarker() | None | 销毁该对象创建的marker |
createPopup () | OpenLayers.Popup | 为对象创建一个信息窗口 |
destroyPopup() | None | 销毁该对象创建的信息窗口 |
二、BaseType命名空间:
在BaseTypes命名空间下定义了一些基本类型的类,如LonLat、Size等。
1、class OpenLayers.LonLat
LonLat是以经度和纬度表示的地理坐标点。
注意:进行地图投影时通常将经度与地图的 x 坐标联系起来,将纬度与 y 坐标联系起来。
构造函数
构造函数 | 描述 |
LonLat(float lon , float lat) | 创建OpenLayers.LonLat对象,经度lon在 -180 度和 +180 度之间,而纬度lat将在 -90 度到 +90 度之间周而复始。 |
属性
属性 | 类型 | 描述 |
lon | Number:float | 地图上的经度(X轴坐标) |
lat | Number:float | 地图上的纬度(Y轴坐标) |
方法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论