YY. Overlay
覆盖物的抽象类,点,线,面,圆形等的基类,其具有的方法,点,线,面等要素都具有
DANGER
其只是一个抽象类, 不应用于实际使用,其意义为用来描述所有覆盖物的公共行为和属性
其子类有:
Overlay
│ Point
│ MultiPoint
│ Text
│ Polyline
│ LineString
│ MultiLineString
│ Polygon
│ MultiPolygon
│ Rectangle
│ Circle
│ Ellipse
│ Sector
│ ArcCurve
│ ConnectorLine
│ ArcConnectorLine
│ ......
creation
constructor()
events
editrecord
editrecord
dragstart
dragstart
dragging
dragging
dragend
dragend
editstart
editstart
editend
editend
redoedit
redoedit
undoedit
undoedit
idchange
idchange
propertieschange
propertieschange
show
show
hide
hide
zindexchange
zindexchange
removestart
removestart
removeend
removeend
remove
remove
shapechange
shapechange
positionchange
positionchange
symbolchange
symbolchange
add
add
mousedown
mousedown
mouseup
mouseup
mousemove
mousemove
click
click
dblclick
dblclick
contextmenu
contextmenu
js
var point = new YY.Point(
[120.53207100578902, 31.407848582671903],
YY.Style.formatImage({
markerFile: "../../../../assets/icons/0001.png"
})
);
var text = new YY.Text([120.23757934570312, 31.063544373155793]);
var polyline = new YY.Polyline(
[
[120.62558, 31.30043],
[120.791015625, 31.310257642312564],
],
YY.Style.formatLine({
lineWidth: 10
})
);
var polygon = new YY.Polygon([
[120.6114, 31.27683],
[120.6666, 31.23761],
[120.57162, 31.21344],
]);
var rec = new YY.Rectangle(
[120.42091369628906, 31.119992647233545],
10000,
3000
);
var circle = new YY.Circle([120.80818176269531, 31.555156204332008], 6000);
var ellipse = new YY.Ellipse(
[120.35568237304688, 31.300870831588014],
20000,
10000
);
var sector = new YY.Sector(
[120.76766967773438, 31.0870685629383],
10000,
20,
180
);
var arcCurve = new YY.ArcCurve(
[
[120, 31],
[120, 31.1],
[120, 31.2],
],
YY.Style.formatLine({
lineColor: "red",
lineWidth: 8
})
);
var overlays = [
point,
text,
polyline,
polygon,
rec,
circle,
ellipse,
sector,
arcCurve,
];
vectorLayer.addOverlays(overlays);
point.on("click", function(e) {});
methods
getId()
- 获取 id
- 返回值:
String
setId(id)
- 设置 id
- 参数
- {Stirng}
id
:
- {Stirng}
- 返回值:
this
getProperties()
- 获取属性信息
- 返回值:
Object
setProperties(properties)
- 设置属性信息
- 参数
- {Object}
properties
:
- {Object}
- 返回值:
this
getType()
- 获取类别
- 返回值:
String
getStyle()
- 获取样式信息
- 返回值: YY. Style
setStyle(style)
- 设置 style 样式
- 参数
- {YY. Style}
style
:
- {YY. Style}
- 返回值:
this
js
var point = new YY.Point(
[120.53207100578902, 31.407848582671903],
YY.Style.formatImage({
markerFile: "../../../../assets/icons/0003.png"
})
);
vectorLayer.addOverlay(point);
setTimeout(() => {
let style = YY.Style.formatImage({
markerFile: "../../../../assets/icons/0001.png",
});
point.setStyle(style);
}, 1000);
updateStyle(style)
- 更新 style 样式
- 参数
- {YY. Style}
style
:
- {YY. Style}
- 返回值:
this
js
var point = new YY.Point(
[120.53207100578902, 31.407848582671903],
YY.Style.formatImage({
markerFile: "../../../../assets/icons/0003.png"
})
);
vectorLayer.addOverlay(point);
setTimeout(() => {
let style = YY.Style.formatImageAndText({
markerFile: "../../../../assets/icons/0001.png",
textName: "hello",
textDy: -30,
});
point.updateStyle(style);
}, 1000);
getCenter()
- 获取中心点
- 返回值: YY. LngLat
containsPoint(lnglat)
- 是否包含所给的经纬度坐标
- 参数
- {YY. LngLat}
lnglat
:
- {YY. LngLat}
- 返回值:
Boolean
show()
- 显示
- 返回值:
this
hide()
- 隐藏
- 返回值:
this
isVisible()
- 判断是否可见
- 返回值:
Boolean
getZIndex()
- 获取层级值
- 返回值:
Number
setZIndex(zIndex)
- 设置层级大小
- 参数
- {Number}
zIndex
:
- {Number}
- 返回值:
this
bindTooltip(content, [options])
- 绑定提示消息组件 demo
- 参数
- {String}
content
: - {Object}
options
:
- {String}
- 返回值:
this
js
var point = new YY.Point(
[120.53207100578902, 31.407848582671903],
YY.Style.formatImage({
markerFile: "../../../../assets/icons/0001.png"
})
);
var text = new YY.Text([120.23757934570312, 31.063544373155793]);
var polyline = new YY.Polyline(
[
[120.62558, 31.30043],
[120.791015625, 31.310257642312564],
],
YY.Style.formatLine({
lineWidth: 4
})
);
var polygon = new YY.Polygon([
[120.6114, 31.27683],
[120.6666, 31.23761],
[120.57162, 31.21344],
]);
var rectangle = new YY.Rectangle(
[120.42091369628906, 31.119992647233545],
10000,
3000
);
var circle = new YY.Circle([120.80818176269531, 31.555156204332008], 6000);
var ellipse = new YY.Ellipse(
[120.35568237304688, 31.300870831588014],
20000,
10000
);
var sector = new YY.Sector(
[120.76766967773438, 31.0870685629383],
10000,
20,
180
);
var arcCurve = new YY.ArcCurve(
[
[120, 31],
[120, 31.1],
[120, 31.2],
],
YY.Style.formatLine({
lineColor: "red",
lineWidth: 8
})
);
var overlays = [
point,
text,
polyline,
polygon,
rectangle,
circle,
ellipse,
sector,
arcCurve,
];
vectorLayer.addOverlays(overlays);
overlays.forEach((element) => {
element.bindTooltip(element.getType());
});
getTooltip()
- 获取 ToolTip
- 返回值: YY. Tooltip
openTooltip([lnglat])
- 打开 tooltip
- 参数
- {YY. LngLat}
lnglat
:
- {YY. LngLat}
- 返回值:
this
closeTooltip()
- 关闭 tooltip
- 返回值:
this
removeTooltip()
- 移除提示消息组件
- 返回值:
this
bindPopup(content, [options])
- 绑定消息弹出框组件 demo
- 参数
- {String}
content
: - {Object}
options
:
- {String}
- 返回值:
this
js
var point = new YY.Point(
[120.53207100578902, 31.407848582671903],
YY.Style.formatImage({
markerFile: "../../../../assets/icons/0001.png"
})
);
var text = new YY.Text([120.23757934570312, 31.063544373155793]);
var polyline = new YY.Polyline(
[
[120.62558, 31.30043],
[120.791015625, 31.310257642312564],
],
YY.Style.formatLine({
lineWidth: 4
})
);
var polygon = new YY.Polygon([
[120.6114, 31.27683],
[120.6666, 31.23761],
[120.57162, 31.21344],
]);
var rectangle = new YY.Rectangle(
[120.42091369628906, 31.119992647233545],
10000,
3000
);
var circle = new YY.Circle([120.80818176269531, 31.555156204332008], 6000);
var ellipse = new YY.Ellipse(
[120.35568237304688, 31.300870831588014],
20000,
10000
);
var sector = new YY.Sector(
[120.76766967773438, 31.0870685629383],
10000,
20,
180
);
var arcCurve = new YY.ArcCurve(
[
[120, 31],
[120, 31.1],
[120, 31.2],
],
YY.Style.formatLine({
lineColor: "red",
lineWidth: 8
})
);
var overlays = [
point,
text,
polyline,
polygon,
rectangle,
circle,
ellipse,
sector,
arcCurve,
];
vectorLayer.addOverlays(overlays);
overlays.forEach((element) => {
element.bindPopup(element.getType());
});
getPopup()
- 获取消息弹出框组件
- 返回值: YY. Popup
openPopup([lnglat])
- 打开消息弹出框组件
- 参数
- {YY. LngLat}
lnglat
:
- {YY. LngLat}
- 返回值:
this
closePopup()
- 关闭消息弹出框组件
- 返回值:
this
removePopup()
- 移除消息弹出框组件
- 返回值:
this
config(conf)
- 动态修改覆盖物的配置
- 参数
- {Object}
conf
:
- {Object}
- 返回值:
this
getBounds()
- 获取覆盖物的经纬度范围
- 返回值: YY. Envelope
getMap()
- 获取地图对象
- 返回值: YY. Map
getDistance()
- 获取覆盖物的长度/距离
- 返回值:
Number
getArea()
- 获取覆盖物的面积
- 返回值:
Number
clone()
- 自身克隆
- 返回值: YY. Overlay
animate(styleOptions, options, step)
- 动画函数,主要用于动态修改覆盖物的样式
- 参数
- {Object}
styleOptions
: 样式配置 - {Object}
options
: 动画配置 - {function}
step
: 动画回调函数
- {Object}
- 返回值:
this
js
let style = YY.Style.formatGraphical({
markerWidth: 50,
markerHeight: 30,
markerType: "bar",
markerFill: "red",
markerLineColor: "white",
});
let point = new YY.Point([120, 31], style);
vectorLayer.addOverlay(point);
point.animate({
markerHeight: 100,
markerWidth: 30,
}, {
duration: 1500,
});
setMenu(options)
- 设置右键菜单,上下文菜单
- 参数
- {Object}
options
- {Object}
- 返回值:
this
js
var options = {
custom: true,
items: '<ul class="custom_menu">' +
'<li onclick="clickItem(this);">Locate</li>' +
'<li onclick="clickItem(this);">Mark</li>' +
'<li onclick="clickItem(this);">Identify</li>' +
'<li onclick="clickItem(this);">About</li>' +
"</ul>",
};
overlay.setMenu(options);
removeMenu()
- 移除右键菜单,上下文菜单
- 返回值:
this
openMenu(lnglat)
- 打开右键菜单,上下文菜单
- 参数
- {YY. LngLat}
lnglat
- {YY. LngLat}
- 返回值:
this
closeMenu()
关闭右键菜单,上下文菜单
返回值:
this
split()
- 自身拆分,主要是用于将 multi 拆分成多个 overlay, 比如 MultiPoint 会被拆分成多个 Point
- 返回值:
Array[Overlay]
serialize()
- 序列化,将 Overlay 格式化成扁平的 json 对象,方便存储到数据库 demo
- 返回值:
Object
js
const overlays = [
point,
polyline,
polygon,
text,
lineString,
multiPoint,
multiLineString,
multiPolygon,
circle,
rectangle,
ellipse,
sector,
arcCurve,
connectorLine,
arcConnectorLine,
];
vectorLayer.addOverlay(overlays);
overlays.forEach((overlay) => {
//序列化,可以将其值直接存储到数据库
console.log(overlay.serialize());
});
on(events, handler, [context])
- 事件监听
- 参数
- {String}
events
:click, ...... - {function}
handler
: 处理函数 - {context}
context
: 上下文, 默认 this
- {String}
- 返回值:
this
once(events, handler, [context])
- 事件监听只有一次
- 参数
- {String}
events
:click, ...... - {function}
handler
: 处理函数 - {context}
context
: 上下文, 默认 this
- {String}
- 返回值:
this
off(events, handler, [context])
- 移除事件监听
- 参数
- {String}
events
:click, ...... - {function}
handler
: 处理函数 - {context}
context
: 上下文, 默认 this
- {String}
- 返回值:
this
fire(eventType, param)
- 派发事件
- 参数
- {String}
eventType
:click, ...... - {Object}
param
: 传递的参数
- {String}
- 返回值:
this