# new Ships66.layers.MarkLayer
new Ships66.layers.MarkLayer(vectorOption, option)
MarkerLayer 继承layer/Vector (opens new window)
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
vectorOption | layer/Vector (opens new window)配置项参数 | Object | - | - |
option | 图层配置项 |
属性 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
startDrawTip | 绘制标记前的提示语 | String | - | '单击开始划定区域' |
continueTip | 绘制过程中的提示语 | String | - | '双击结束绘制' |
fontStyle | 标记名称的大小样式 | String | - | bold 12px iconfont |
iconSize | 标记点的大小样式 | String | - | bold 12px iconfont |
fontColor | 标记名称的颜色 | String | - | #ffffff |
fontBgColor | 标记名称的背景颜色 | String | - | '#8c9cad' |
fontBgWidth | 标记名称的背景颜色的粗细 | Number | - | 8 |
iconFont | 标记地点的 Unicode 图标 | String | - | '' |
iconColor | 标记地点 Unicode 图标的颜色 | String | - | 'orange' |
fillColor | 标记面里面填充的颜色 | String | - | 'rgba(255, 255, 255, 0.4)' |
graphStrokeColor | 标记线、标记面的线的颜色 | String | - | 'rgba(255, 255, 255, 0.4)' |
graphStrokeWidth | 标记线、标记面的线的粗细 | Number | - | 2 |
事件说明
事件通过 on('事件名','回调函数')触发,详情查阅openlayers (opens new window)
事件名 | 说明 | 回调参数 |
---|---|---|
drawEnd | 画完标记、修改标记之后都会触发 | function(e){} |
TIP
MarkerLayer 存在 2 个 Layer,渲染层为 ml,绘制层 dl,该事件是从 ml 发射出来的,所以调用时需要通过 ml 触发。
const marker = new Ships66.layers.MarkLayer();
marker.on('drawEnd', (e) => {
let {target,type,feature,radius} = e; // 返回的数据
// target 当前图层MarkLayer
// gis 当前feature的WKT格式,当类型为圆时代表圆心
// feature 当前特征的数据
// radius 当类型为圆时则返回半径,其他类型时返回null
});
调用 addInteraction()和 editFunc()都会触发 drawEnd
了解 WKT :ol/format/WKT (opens new window)
# populate(data)
渲染标记入口
参数 | 说明 | 类型 |
---|---|---|
data | 渲染的数据 | Array |
data 格式如下:
[
{
"id": "唯一值",
"name": "名称",
"color": "为标记面时,是标记面的边框颜色RGBA格式,标记面的颜色与边框相同,透明度改为0.7;当为标记点时,是标记点的颜色",
"style": "为标记点时,是标记点的图标样式,格式为Unicode",
"type": "标记类型 Point:点,Line:线,Circle圆,Polygon多边形,Rectangle矩形",
"gis": "LINESTRING(115.3449135417296 28.132760075132012,115.2680092448546 27.315866033752243,116.1469154948546 27.851429675949106)",
"groupid": "组id",
"perimeter": "标记圆的周长",
"isShow": "显示隐藏,1显示,0隐藏"
}
]
# updateFeature(item)
更新单条 feature 数据
参数 | 说明 | 类型 |
---|---|---|
item | 特征的 data 数据 | String |
{
"id": "唯一值",
"name": "名称",
"color": "为标记面时,是标记面的边框颜色RGBA格式,标记面的颜色与边框相同,透明度改为0.7;当为标记点时,是标记点的颜色",
"style": "为标记点时,是标记点的图标样式,格式为Unicode",
"type": "标记类型 Point:点,Line:线,Circle圆,Polygon多边形,Rectangle矩形",
"gis": "LINESTRING(115.3449135417296 28.132760075132012,115.2680092448546 27.315866033752243,116.1469154948546 27.851429675949106)",
"groupid": "组id",
"perimeter": "标记圆的周长",
"isShow": "显示隐藏,1显示,0隐藏"
}
# countArea(data, feature)
计算标记线长度和标记面面积
参数 | 说明 | 类型 |
---|---|---|
data | 标记的数据 | Object |
feature | 标记在地图上的特征 | Object |
返回值若有效则为字符串("长度/面积+单位"),无效则返回空字符串("")
# findById(id)
通过 id 返回 MarkerLayer 里存在 feature
参数 | 说明 | 类型 |
---|---|---|
id | 特征的 id | String |
若查询的特征存在则返回特征feature (opens new window)
# setFeatureVisible(id,visible)
设置单个标记显示隐藏
参数 | 说明 | 类型 |
---|---|---|
id | 标记的 id | Object |
otherStyle | 标记的显示隐藏,true 为显示,false 为隐藏 | Object |
# setGroupsVisible(groupId, isShow)
设置标记组的显示隐藏
参数 | 说明 | 类型 |
---|---|---|
groupId | 标记的组 id | String |
isShow | 标记 1 为显示,2 为隐藏 | Number |
# addInteraction(drawType, otherStyle, isShowTip = false)
画标记的工具方法
参数 | 说明 | 类型 | 参数 |
---|---|---|---|
drawType | 标记的类型 | String | Place(点),LineString(线),Circle(圆),Polygon(多边形),Rectangle(矩形) |
otherStyle | 标记的样式 | Object | { style: '', color: 'red' },style 是点的样式,color 是点的颜色 |
isShowTip | 标记的提示工具 | Boolean | 默认值为 false,在绘制过程中会显示提示语在 |
# changeFeatureStyle(obj,id)
设置或更改标记的样式
参数 | 说明 | 类型 |
---|---|---|
obj | 标记的线颜色和填充颜色{ lineColor, insideColor, color, style }(lineColor 标记线的颜色,insideColor 标记填充面颜色,color 标记点颜色,style 标记点颜色) | Object |
id | 标记的 id | String |
# editFunc(data,otherStyle)
编辑标记
参数 | 说明 | 类型 |
---|---|---|
data | 标记的数据 | Object |
otherStyle | 标记点的样式和颜色{style:'',color:''}(style 标记点 icon,color 标记点颜色) | Object |
# findMarker(data, fly = true)
定位到标记所在的位置
参数 | 说明 | 类型 |
---|---|---|
data | 标记的数据 | Object |
fly | 是否有飞行动画 | Boolean |
# deleteFunc(data)
在地图上删除标记
参数 | 说明 | 类型 |
---|---|---|
data | 标记的数据 | Object |
# cancelDrawOrEdit(showTip = false)
在地图上删除标记
参数 | 说明 | 类型 |
---|---|---|
showTip | 标记的提示语是否存在,为 true 时,使用当前方法会清除提示语 | Boolean |