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);// 移除MarkermapController?.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);})// 附加PopViewmarker?.setPopView(popView);}
上一篇
下一篇
本篇文章对您是否有帮助?