全部服务产品
开发者频道
定价
登录
绘制Marker点
下载开发文档
效果示例

Marker标记支持添加、移除、点击事件等。

添加移除Marker

Marker的 icon图标通过ImageEntity对象设置,碰撞策略通过枚举CollisionBehavior设置,锚点位置通过枚举Located设置。

let marker = new Marker({
position: new LatLng(39.904835, 116.403119),
icon: new ImageEntity("rawfile://marker.png"),
isJoinCollision: SysEnum.CollisionBehavior.NOT_COLLIDE,
located: SysEnum.Located.TOP
});
// 在地图上添加Marker,并显示
mapController?.addOverlay(marker);
// 移除Marker
mapController?.removeOverlay(marker);
点击事件
marker.addEventListener(OverlayEvent.CLICK, () => {
console.log('EVENT handleTouchSingle===click marker1 ')
});
添加信息框

有两种设置Marker信息框的方式:
一种是附加InfoWindow形式,一种是附加PopView的形式。
推荐使用第二种方式,PopView会逐渐完善能力,最终UI形式更加灵活,功能更加全面。

let infoWin = new InfoWindow({
anchorX: 0.5,
anchorY: 0,
content: new ImageEntity(pixmap,width,height)
})
infoWin.addEventListener(OverlayEvent.CLICK,()=>{
promptAction.showToast({
message: '信息框点击',
duration: 2000,
});
});
this.marker?.setInfoWindow(infoWin);
let popBgimage = new ImageEntity("rawfile://baidu/img/pages/pop_r.png");
/** PopView */
{
let label = new LabelUI();
label.setGravity(SysEnum.Gravity.GRAVITY_CENTER);
// 1.1.2版本暂不支持此设置,后续请关注版本升级内容,确认是否支持文字的设置
// label.setText("提示信息");
label.setBackground(popBgimage);
label.setWidth(260);
label.setHeight(64);
label.setPadding(20, 0, 0, 0);
label.setClickable(true);
label.addEventListener(CommonEvent.CLICK,(e:EventUIBundle)=>{
if(e.target){
let ui = (e.target as LabelUI);
// ui.setGravity(SysEnum.Gravity.GRAVITY_RIGHT);
}
})
let txtStyle = new TextStyle();
txtStyle.setTextColor(0xFFFFFFFF);
txtStyle.setTextSize(28);
txtStyle.setFontOption(SysEnum.FontOption.ITALIC);
label.setStyle(txtStyle);
let popView = this.popView = new PopView();
popView.setVisibility(SysEnum.Visibility.INVISIBLE);
popView.setView(label);
popView.setLocated(SysEnum.Located.LEFT);
popView.addEventListener(CommonEvent.CLICK,(e:EventUIBundle)=>{
// popView.setVisibility(SysEnum.Visibility.INVISIBLE);
})
// 附加PopView
marker?.setPopView(popView);
}

上一篇

事件交互

下一篇

绘制线

本篇文章对您是否有帮助?