Openlayers 概述
地图控件
导航控件、ZoomSlider、鼠标位置、比例尺、鹰眼、图层选择。
常用的到是鹰眼控件(使用场景:当地图进行缩放移动时,鹰眼控件可以清楚方便的知道地图所在位置)。
地图操作
1. 基础操作** :单击缩小、单击放大、平移到某个位置、复位;
2. 设置地图背景** ;
3. 地图定位**:view.setCenter(ol.Coordinate|undefined);
4. 显示级数** :view.setZoom(zoom);
5. 视窗逻辑坐标**:通常有两种坐标系,即地理坐标系(geographic coordinate systems) 和 投影坐标系(projected coordinate systems)。
地理坐标系一般是指由经度、纬度和高度组成的坐标系,能够标示地球上的任何一个位置。
地理坐标系是三维的,我们要在地图或者屏幕上显示就需要转化为二维,这被称为投影(Map projection)。常用的投影有等矩矩形投影(Platte Carre)和墨卡托投影(Mercator);
EPSG:4326 (WGS84)是目前最流行的地理坐标系统。Web墨卡托投影后的平面地图,但仍然使用WGS84的经度、纬度表示坐标。
EPSG:3857 (Pseudo-Mercator)伪墨卡托投影,也被称为球体墨卡托,Web Mercator。Web墨卡托投影后的平面地图,坐标单位为米。
6. 地图域当前信息** :当前分辨率view.getResolution()、当前地图范围viewextent.calculateExtent(map.getSize())、当前视口范围map.getSize();
7. 导出**:导出成图片、PDF;
8. 地图事件**:
'singleclick':鼠标单击事件;
'dblclick':鼠标双击事件;
'click':鼠标点击事件;
'pointerdrag':鼠标拖拽事件;
'pointermove':鼠标移动事件;
'postcompose':开始渲染事件;
'postrender':渲染完成事件;
'precompose':准备渲染,未开始渲染事件;
'moveend':地图移动事件;
'change:size':地图窗口发生变化就会触发,与我们常用的窗口resize接近;
'change:view':地图view对象发生变化触发;
'change:target':地图绑定的div发生更改时触发,如map.setTartget方法就会触发该事件;
'propertychange':Map对象中任意的property值改变时触发;
'change:layerGroup':地图图层增删时触发。
9.图层探查**:两个图层;
10.图层层级控制**:
setMap(map):设置图层呈现在地图其他图层之上;
setZIndex(zindex):(event)设置图层的显示级数,用于图层显示顺序,级数大的图层在上层显示,级数小的图层在底层显示。默认显示级数为0;
zindex:(number)显示级数 ;
getZIndex():获取图层的显示级数
11.图层组控制**:
setVisible(visible):设置图层可见性;
setOpacity(opacity):设置图层透明度(取值范围0-1,0为完全透明,1为完全不透明)。
图形操作
1. 坐标添加**:点ol.geom.Point()、线ol.geom.LineString()、圆ol.geom.Circle()、正方形ol.geom.Polygon.fromCircle()、矩形ol.geom.Polygon.fromExtent()、多边形ol.geom.Polygon();
2. 绘制**:几何图形、绘制任意图形ol.interaction.Draw()。
3. 图形样式编辑**:
点要素样式:点大小radius、填充颜色color、边框颜色color、边框宽度width
线要素样式:线颜色color、线宽width
区要素样式:填充颜色color、边框颜色color、边框宽度width
文字样式:位置align、基线baseline、旋转角度rotation、字体font、字体粗细weight、字体大小size、X偏移量offset x、Y偏移量offset y、字体颜色color、文字外框颜色O.Color、文字外框宽度O.Width
4. 获取几何信息**:createRegularPolygon(opt_sides, opt_angle)该函数返回一个基于 Circle 绘制类型的 geometryFunction 函数(这种函数返回一个 geometry 对象),接受两个参数,分别是 边的数量(opt_sides)和 多边形的角度(opt_angle)
5. 绘制箭头线**
地图标注
1. 图片标注**:ol.style.Image()
2. 文字标注**:ol.style.Text()
3. 图文标注**:
4. popup弹出框**:ol.Overlay()
5. 聚合标注**:ol.source.Cluster()
要素动画
要素平移和航线动画。
setInterval(code,millisec[,"lang"]):按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
详细参数介绍如下:
code:必填项。要调用的函数或要执行的代码串。
code:必填项。周期性执行或调用 code 之间的时间间隔,以毫秒计。
地图动画
旋转、弹性、反弹、自旋、飞行、螺旋
ol.animation.rotate(options)
ol.animation.pan(options)
ol.animation.bounce(options)
热力图
ol.layer.Heatmap(opt_options)
必选项:重量weight(0~1)、来源source
可选项:热力图梯度颜色gradient、热点半径radius、模糊尺寸blur、热力图阴影大小shadow、要素边界extent、可见图层最小分辨率minResolution、可见图层最大分辨率maxResolution、透明度opacity(0~1)、可见性visible