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
地图上的图层集合
方法
ajax实例里面的函数
方法
返回值
描述
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,删除的层。如果setNewBaseLayertrue从新设置新的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()
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小时内删除。